Bonjours ;
Voilà j'ai un problème de redirection vers la page d'index sur mon site dans le cas d'une inscription je rempli le formulaire et je valide ensuite je fait une redirection vers la page connexion.php afin que l'utilisateur puisse se connecter alors je faire une redirection header('Location: connexion.php); malheureusement j'ai un message genre :
Impossible de modifier les informations d'en-tête - les en-têtes ont déjà été envoyés par (la sortie a commencé à /home/aftskmbx/public_html/_db/connexionDB.php:1) dans /home/aftskmbx/public_html/_class/inscription.php à la ligne 33
j'ai tout essayer sans résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 <?php class Inscription { private $valid; private $er_pseudo; private $er_mail; private $er_password; public function verification_inscription($pseudo, $mail, $confmail, $password, $confpassword) { global $DB; $pseudo = (string) ucfirst(trim($pseudo)); $mail = (string) trim($mail); $confmail = (string) trim($confmail); $password = (string) trim($password); $confpassword = (string) trim($confpassword); $this->er_pseudo = (string) ''; $this->er_mail = (string) ''; $this->er_password = (string) ''; $this->valid = (boolean) true; $this->verification_pseudo($pseudo); $this->verification_mail($mail, $confmail); $this->verification_password($password, $confpassword); if($this->valid){ $crypt_password=password_hash($password, PASSWORD_ARGON2ID); $date_creation=date('Y-m-d H:i:s'); $role = 0; $req= $DB->prepare("INSERT INTO utilisateur(pseudo, mail, mdp, date_creation, date_connexion, role) VALUES (?, ?, ?, ?, ?, ?)"); $req->execute(array($pseudo, $mail, $crypt_password, $date_creation, $date_creation, $role)); //header('Location: /connexion.php'); header('Location: https://yacinesoft.com/connexion.php'); exit; } return [$this->er_pseudo, $this->er_mail, $this->er_password]; } private function verification_pseudo($pseudo){ global $DB; if(empty($pseudo)){ $this->valid = false; $this->er_pseudo ="Ce champ ne peut pas être vide"; }elseif(strlen($pseudo) < 4){ $this->valid= false; $this->er_pseudo="Le Pseudo doit faire plus de 3 caractères"; }elseif(strlen($pseudo) > 25){ $this->valid= false; $this->er_pseudo="Le Pseudo doit faire moins de 26 caractères (" . strlen($pseudo) . "/25)"; }else{ $req = $DB->prepare("SELECT id FROM utilisateur WHERE pseudo = ?"); $req->execute(array($pseudo)); $req = $req->fetch(); if(isset($req['id'])){ $this->valid = false; $this->er_pseudo = "Ce pseudo est déjà pris"; } } } private function verification_mail($mail, $confmail){ global $DB; if(empty($mail)){ $this->valid = false; $this->er_mail="Ce champ ne peut pas être vide"; }elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){ $this->valid = false; $this->er_mail="Format invalide pour ce Mail"; }elseif($mail <> $confmail){ $this->valid = false; $this->er_mail="Le mail est différent de la confirmation"; }else{ $req=$DB->prepare("SELECT id FROM utilisateur WHERE mail = ?"); $req->execute(array($mail)); $req = $req->fetch(); if(isset($req['id'])){ $this->valid = false; $this->er_mail = "Ce Mail est déjà pris"; } } } private function verification_password($password, $confpassword){ global $DB; if(empty($password)){ $this->valid= false; $this->er_password="Ce Champ ne peut pas être vide"; }elseif($password <> $confpassword){ $this->valid = false; $this->er_password="Le mot de passe est différent de la confirmation"; } } } ?>je vous propose mon code afin que quelqu'un puisse trouver la faille ou l'erreur que je ne vois pas le premier fichier inscription.php c'est le lancer de l'action il dans la racine il appel a un autre fichier inscription.php qui se trouve dans le répertoire /_class contenant les classes inscription / vérification / validation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <?php if(isset($_SESSSION['id'])){ header('Location: https://yacinesoft.com/index.php'); exit; } require_once('include.php'); if(!empty($_POST)){ extract($_POST); if(isset($_POST['inscription'])){ [$er_pseudo, $er_mail, $er_password] = $_Inscription->verification_inscription($pseudo, $mail, $confmail, $password, $confpassword); } } ?> <!doctype html> <html lang="fr"> <head> <?php require_once('_head/meta.php'); require_once('_head/link.php'); require_once('_head/script.php'); ?> <title>Inscription</title> </head> <body> <?php require_once('_menu/menu.php'); ?> <div class="container"> <div class="row"> <div class="col-3"></div> <div class="col-6"> <h1>Inscription</h1> <form method="post"> <div class="mb-3"> <?php if(isset($er_pseudo)){ echo '<div>' . $er_pseudo . '</div>';}?> <label class="form-label">Pseudo</label> <input class="form-control" type="text" name="pseudo" value="<?php if(isset($pseudo)){ echo $pseudo;}?>" placeholder="Pseudo"> </div> <div class="mb-3"> <?php if(isset($er_mail)){ echo '<div>' . $er_mail . '</div>';}?> <label class="form-label">Mail</label> <input class="form-control" type="email" name="mail" value="<?php if(isset($mail)){ echo $mail;}?>" placeholder="Mail"> </div> <div class="mb-3"> <label class="form-label">Confirmer le Mail</label> <input class="form-control" type="email" name="confmail" value="<?php if(isset($confmail)){ echo $confmail;}?>" placeholder="Confirmation Mail"> </div> <div class="mb-3"> <?php if(isset($er_password)){ echo '<div>' . $er_password . '</div>';}?> <label class="form-label">Mot de Passe</label> <input class="form-control" type="password" name="password" value="<?php if(isset($password)){ echo $password;}?>" placeholder="Mot de Passe"> </div> <div class="mb-3"> <label class="form-label">Confirmer Mot de Passe</label> <input class="form-control" type="password" name="confpassword" value="" placeholder="Confirmer Mot Passe"> </div> <div class="mb-3"> <button type="submit" name="inscription" class="btn btn-primary">Inscription</button> </div> </form> </div> </div> </div> <?php require_once('_footer/footer.php'); ?> <div class="bg-image" style="background-image: url('img/im_fond.jpg');height: 100vh"></div> </body> </html>
merci d'avance
@+
Partager