Problème avec une variable de session
Résolu/Fermé
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
-
11 mai 2022 à 22:03
flexi2202 Messages postés 3803 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 février 2025 - 12 mai 2022 à 17:36
flexi2202 Messages postés 3803 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 février 2025 - 12 mai 2022 à 17:36
A voir également:
- Problème avec une variable de session
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Www.yahoomail.com ouverture de session ✓ - Forum Yahoo mail
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? - Forum Windows
17 réponses
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
11 mai 2022 à 22:26
11 mai 2022 à 22:26
Bonjour,
Pour commencer ... tu as bien supprimé toutes les variables de session qui existaient déjà et que tu as certainement alimenté pendant tes tests ???
A la limite, tu peux tester en navigation privée ou depuis un autre navigateur pour voir si le souci persiste ..
Ensuite...
A quel endroit récupères tu ta variable $id ?
Je suppose que tu veux récupérer l'id auto généré lors de l'insert en base ....
Dans ce cas, penche toi sur la fonction lastInsertId de PDO..
Et puis, découper ton code en fonctions le rendrait vachement plus lisible et maintenable ... là c'est un peu le bazard..
Et à mon avis.. il considère qu'il est déjà logué à cause de ces lignes
Pour le savoir . ce n'est pas au niveau du code d'inscription qu'il faut regarder .. mais plutôt au niveau de la vérification de la connexion sur tes autres pages...
Enfin bon,
ton code, histoire d'être un peu plus organisé pourrait ressembler à minima à ça
( c'est marrant .. j'ai l'impression que ça fait déjà plusieurs fois que je te réécris ton code... et je ne sais pas pourquoi.. tu retournes toujours sur un truc sale... )
Pour commencer ... tu as bien supprimé toutes les variables de session qui existaient déjà et que tu as certainement alimenté pendant tes tests ???
A la limite, tu peux tester en navigation privée ou depuis un autre navigateur pour voir si le souci persiste ..
Ensuite...
A quel endroit récupères tu ta variable $id ?
Je suppose que tu veux récupérer l'id auto généré lors de l'insert en base ....
Dans ce cas, penche toi sur la fonction lastInsertId de PDO..
Et puis, découper ton code en fonctions le rendrait vachement plus lisible et maintenable ... là c'est un peu le bazard..
Et à mon avis.. il considère qu'il est déjà logué à cause de ces lignes
$_SESSION['user'] = array( 'id' =>$id, );
Pour le savoir . ce n'est pas au niveau du code d'inscription qu'il faut regarder .. mais plutôt au niveau de la vérification de la connexion sur tes autres pages...
Enfin bon,
ton code, histoire d'être un peu plus organisé pourrait ressembler à minima à ça
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); // je me connecte a la base de donnee require_once 'base.php'; function query($sql, $datas = null ){ global $bdd; //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); return $requete; } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } } function getLastId(){ global $bdd; return $bdd->lastInsertId();//on retourne l'id qui est créé } function getUserByMail($email){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE email = ?"; $datas = [$email]; $res = query($sql, $datas); return $requete->fetch(); } function getUserByPseudo($pseudo){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE pseudo = ?"; $datas = [$pseudo]; $res = query($sql, $datas); return $requete->fetch(); } function addUser($pseudo, $email, $password, $ip, $key, $confirme){ $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $sql ='INSERT INTO utilisateurs(pseudo, email, password, ip, token ,confirmkey,confirme) VALUES(:pseudo, :email, :password, :ip, :token ,:confirmkey,:confirme)'; $datas = array('pseudo' => $pseudo,'email' => $email,'password' => $password,'ip' => $ip,'token' => bin2hex(openssl_random_pseudo_bytes(24)),'confirmkey' => $key ,'confirme' => $confirme); $res = query($sql, $datas ); return getLastId(); //on retourne l'id créé par l'insert. } //si tous est ok alors on passe a l inscription if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); //preparation des variables propres $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $row = getUserByMail($email) if (empty($row) { $row2 = getUserByPseudo($pseudo); //on verifie que le pseudo n est pas present if (empty($row2)){ //on verifie que le pseudo fais moins de 40 caractere if (strlen($pseudo) <= 30) { //on verifie que le email fais moins de 40 caractere if (strlen($email) <= 35) { //on verifie les caracteres if(preg_match('/^[a-z_\-0-9]+$/i', $pseudo)){ //on verifie que c est bien une email if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { //on verifie que le pasword retape correpond bien au passord $cost = ['cost' => 12]; //on cree la confirmkey $longueurkey =12; $key=""; for($i=1;$i<$longueurkey;$i++) $key .=mt_rand(0,9); //$confirmkey =$key; //on mets a 0 la colonne confirme $confirme=0; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme); //on definit et on cree les variables sessions $_SESSION['idinscription'] = $id;
( c'est marrant .. j'ai l'impression que ça fait déjà plusieurs fois que je te réécris ton code... et je ne sais pas pourquoi.. tu retournes toujours sur un truc sale... )
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
11 mai 2022 à 22:44
11 mai 2022 à 22:44
bonjour Jordane
Merci pour la réponse et la correction
oui oui bien sur comme toujours je vide bien le navigateur et même plusieurs fois
question d'être sur et certain ...
j'ai essaye aussi avec un autre navigateur le soucis demeure
oui voila je veux récupérer l'id qui est inséré des l'inscription et bien entendu la clé pour envoyer le mail pour que l'utilisateur puisse valider son compte
Pourtant je t'assure que je n'ai plus jamais bouger a ce code depuis que tu as fais la correction il y a de cela deja plusieurs mois
Il y a déjà ces functions ...et des nouveautés
Je viens de tester le code mais il y a une erreur a la ligne 72 avec le if et je ne vois pas de quoi il pourrait s'agir
Merci pour la réponse et la correction
oui oui bien sur comme toujours je vide bien le navigateur et même plusieurs fois
question d'être sur et certain ...
j'ai essaye aussi avec un autre navigateur le soucis demeure
oui voila je veux récupérer l'id qui est inséré des l'inscription et bien entendu la clé pour envoyer le mail pour que l'utilisateur puisse valider son compte
Pourtant je t'assure que je n'ai plus jamais bouger a ce code depuis que tu as fais la correction il y a de cela deja plusieurs mois
Il y a déjà ces functions ...et des nouveautés
Je viens de tester le code mais il y a une erreur a la ligne 72 avec le if et je ne vois pas de quoi il pourrait s'agir
if (empty($row) {
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); // je me connecte a la base de donnee require_once 'base.php'; function query($sql, $datas = null ){ global $bdd; //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); return $requete; } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } } function getLastId(){ global $bdd; return $bdd->lastInsertId();//on retourne l'id qui est créé } function getUserByMail($email){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE email = ?"; $datas = [$email]; $res = query($sql, $datas); return $requete->fetch(); } function getUserByPseudo($pseudo){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE pseudo = ?"; $datas = [$pseudo]; $res = query($sql, $datas); return $requete->fetch(); } function addUser($pseudo, $email, $password, $ip, $key, $confirme){ $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $sql ='INSERT INTO utilisateurs(pseudo, email, password, ip, token ,confirmkey,confirme) VALUES(:pseudo, :email, :password, :ip, :token ,:confirmkey,:confirme)'; $datas = array('pseudo' => $pseudo,'email' => $email,'password' => $password,'ip' => $ip,'token' => bin2hex(openssl_random_pseudo_bytes(24)),'confirmkey' => $key ,'confirme' => $confirme); $res = query($sql, $datas ); return getLastId(); //on retourne l'id créé par l'insert. } //si tous est ok alors on passe a l inscription if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); //preparation des variables propres $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $row = getUserByMail($email) if (empty($row) { $row2 = getUserByPseudo($pseudo); //on verifie que le pseudo n est pas present if (empty($row2)){ //on verifie que le pseudo fais moins de 40 caractere if (strlen($pseudo) <= 30) { //on verifie que le email fais moins de 40 caractere if (strlen($email) <= 35) { //on verifie les caracteres if(preg_match('/^[a-z_\-0-9]+$/i', $pseudo)){ //on verifie que c est bien une email if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { //on verifie que le pasword retape correpond bien au passord $cost = ['cost' => 12]; //on cree la confirmkey $longueurkey =12; $key=""; for($i=1;$i<$longueurkey;$i++) $key .=mt_rand(0,9); //$confirmkey =$key; //on mets a 0 la colonne confirme $confirme=0; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme); //on definit et on cree les variables sessions $_SESSION['idinscription'] = $id; //traitement de l envois par mail setlocale (LC_TIME, 'fr_FR.utf8','fra'); date_default_timezone_set('Europe/Brussels'); $date1 = date('d-m-Y H:i:s'); // Date du jour // on entre un destinataires $to = $email; // notez la virgule // Sujet $subject= "votre confirmation"; // message $message = ' <html> <head> <title>Votre confirmation </title> </head> <body> <table> <tr> <td>ton pseudo est </td><td>'.$pseudo .' <a href="https://phil.pecheperle.be/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'">Confirmez votre compte !</a> </td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers[] = 'MIME-Version: 1.0'; $headers[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to, $subject, $message, implode("\r\n", $headers))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } // on entre un ou Plusieurs destinataires $to1 = 'perroquet666@hotmail.com'; // notez la virgule // Sujet $subject1= "UN NOUVEL INSCRIT "; // message $message1 = ' <html> <head> <title>un nouveau membre vient de s inscrire </title> </head> <body> <table> <tr> <td>son pseudo est </td><td>'.$pseudo .'</td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers1[] = 'MIME-Version: 1.0'; $headers1[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers1[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers1[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to1, $subject1, $message1, implode("\r\n", $headers1))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } header('Location:redirection-inscription.php?reg_err=success'); die(); } else { header('Location: inscription.php?reg_err=password'); die(); } } else { header('Location: inscription.php?reg_err=email'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_caractere'); die(); } } else { header('Location: inscription.php?reg_err=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } }
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
11 mai 2022 à 22:52
11 mai 2022 à 22:52
Ligne 72 il manque une)
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
11 mai 2022 à 22:53
11 mai 2022 à 22:53
oui j'avais essayer
Mais l'erreur reste
Mais l'erreur reste
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
11 mai 2022 à 23:07
11 mai 2022 à 23:07
Si tu donnais le message d'erreur ça pourrait peut-être aider non ??
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
>
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
11 mai 2022 à 23:08
11 mai 2022 à 23:08
Et si tu regarde bien le code, à la ligne 71, il manque un point virgule
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
>
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
11 mai 2022 à 23:09
11 mai 2022 à 23:09
oui juste jordane désolé


flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
11 mai 2022 à 23:20
11 mai 2022 à 23:20
oh misère fallait le voir celui la
je me laisse encore trop souvent attrapé
Merci Jordane
Voila l'erreur est passée mais j'ai une autre
Notice: Undefined variable: requete in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 36
Fatal error: Uncaught Error: Call to a member function fetch() on null in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php:36 Stack trace: #0 /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php(71): getUserByMail('talonaiguille.b...') #1 {main} thrown in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 36
qui correspond a cette partie
j'ai tente de comparer avec le morceau suivant qui traite le pseudo mais je vois pas ce qu'il coche
apparemment c'est une variable non définie
je me laisse encore trop souvent attrapé
Merci Jordane
Voila l'erreur est passée mais j'ai une autre
Notice: Undefined variable: requete in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 36
Fatal error: Uncaught Error: Call to a member function fetch() on null in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php:36 Stack trace: #0 /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php(71): getUserByMail('talonaiguille.b...') #1 {main} thrown in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 36
qui correspond a cette partie
function getUserByMail($email){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE email = ?"; $datas = [$email]; $res = query($sql, $datas); return $requete->fetch(); }
j'ai tente de comparer avec le morceau suivant qui traite le pseudo mais je vois pas ce qu'il coche
apparemment c'est une variable non définie
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 07:18
12 mai 2022 à 07:18
Il faut mettre res a la place de requête
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 11:28
12 mai 2022 à 11:28
bonjour jordane
Merci pour le code et la correction
plus aucune erreur
Mais sauf erreur de ma part rien ne vient s'inscrire dans la base de donnée alors que je reçois bien les mails de l'inscription
et que le processus a l'air de s'être bien déroulé
puisque l'écran retourne bien la page de l'inscription réussie
J'ai fouillé toute la base de donnée aucune trace de l'utilisateur enregistré
je te donne le code corrige
Merci pour le code et la correction
plus aucune erreur
Mais sauf erreur de ma part rien ne vient s'inscrire dans la base de donnée alors que je reçois bien les mails de l'inscription
et que le processus a l'air de s'être bien déroulé
puisque l'écran retourne bien la page de l'inscription réussie
J'ai fouillé toute la base de donnée aucune trace de l'utilisateur enregistré
je te donne le code corrige
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); // je me connecte a la base de donnee require_once 'base.php'; function query($sql, $datas = null ){ global $bdd; //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); return $requete; } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } } function getLastId(){ global $bdd; return $bdd->lastInsertId();//on retourne l'id qui est créé } function getUserByMail($email){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE email = ?"; $datas = [$email]; $res = query($sql, $datas); return $res->fetch(); } function getUserByPseudo($pseudo){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE pseudo = ?"; $datas = [$pseudo]; $res = query($sql, $datas); return $res->fetch(); } function addUser($pseudo, $email, $password, $ip, $key, $confirme){ $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $sql ='INSERT INTO utilisateurs(pseudo, email, password, ip, token ,confirmkey,confirme) VALUES(:pseudo, :email, :password, :ip, :token ,:confirmkey,:confirme)'; $datas = array('pseudo' => $pseudo,'email' => $email,'password' => $password,'ip' => $ip,'token' => bin2hex(openssl_random_pseudo_bytes(24)),'confirmkey' => $key ,'confirme' => $confirme); $res = query($sql, $datas ); return getLastId(); //on retourne l'id créé par l'insert. } //si tous est ok alors on passe a l inscription if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); //preparation des variables propres $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $row = getUserByMail($email); if (empty($row)) { $row2 = getUserByPseudo($pseudo); //on verifie que le pseudo n est pas present if (empty($row2)){ //on verifie que le pseudo fais moins de 40 caractere if (strlen($pseudo) <= 30) { //on verifie que le email fais moins de 40 caractere if (strlen($email) <= 35) { //on verifie les caracteres if(preg_match('/^[a-z_\-0-9]+$/i', $pseudo)){ //on verifie que c est bien une email if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { //on verifie que le pasword retape correpond bien au passord $cost = ['cost' => 12]; //on cree la confirmkey $longueurkey =12; $key=""; for($i=1;$i<$longueurkey;$i++) $key .=mt_rand(0,9); //$confirmkey =$key; //on mets a 0 la colonne confirme $confirme=0; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme); //on definit et on cree les variables sessions $_SESSION['idinscription'] = $id; // on entre un destinataires $to = $email; // notez la virgule // Sujet $subject= "votre confirmation"; // message $message = ' <html> <head> <title>Votre confirmation </title> </head> <body> <table> <tr> <td>ton pseudo est </td><td>'.$pseudo .' <a href="https://phil.pecheperle.be/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'">Confirmez votre compte !</a> </td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers[] = 'MIME-Version: 1.0'; $headers[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to, $subject, $message, implode("\r\n", $headers))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } // on entre un ou Plusieurs destinataires $to1 = 'perroquet666@hotmail.com'; // notez la virgule // Sujet $subject1= "UN NOUVEL INSCRIT "; // message $message1 = ' <html> <head> <title>un nouveau membre vient de s inscrire </title> </head> <body> <table> <tr> <td>son pseudo est </td><td>'.$pseudo .'</td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers1[] = 'MIME-Version: 1.0'; $headers1[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers1[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers1[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to1, $subject1, $message1, implode("\r\n", $headers1))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } header('Location:redirection-inscription.php?reg_err=success'); die(); } else { header('Location: inscription.php?reg_err=password'); die(); } } else { header('Location: inscription.php?reg_err=email'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_caractere'); die(); } } else { header('Location: inscription.php?reg_err=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } }
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 11:31
12 mai 2022 à 11:31
Là c'est juste le formulaire d'inscription ... pas le code de validation suite au clic sur le mail ...
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 11:34
12 mai 2022 à 11:34
oui d'accord jordane mais je devrais au moins voir dans ma base de donnée l'utilisateur inscris avec un token en attende de validation
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 12:02
12 mai 2022 à 12:02
Pourtant le processus est correct sauf que rien ne vient s'inscrire dans ma base de donnée
au minimum je devrais voir l'utilisateur avec un token et en attende de validation
comme avec mon ancien code
au minimum je devrais voir l'utilisateur avec un token et en attende de validation
comme avec mon ancien code
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 12:33
12 mai 2022 à 12:33
il me semble que ce bloc est trop haut dans le code
function addUser($pseudo, $email, $password, $ip, $key, $confirme){ $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $sql ='INSERT INTO utilisateurs(pseudo, email, password, ip, token ,confirmkey,confirme) VALUES(:pseudo, :email, :password, :ip, :token ,:confirmkey,:confirme)'; $datas = array('pseudo' => $pseudo,'email' => $email,'password' => $password,'ip' => $ip,'token' => bin2hex(openssl_random_pseudo_bytes(24)),'confirmkey' => $key ,'confirme' => $confirme); $res = query($sql, $datas ); return getLastId(); //on retourne l'id créé par l'insert. }
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 13:06
12 mai 2022 à 13:06
C'est juste cette partie là qui devrait se trouver avant l'appel de la fonction
//on mets a 0 la colonne confirme $confirme=0; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme);
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 13:15
12 mai 2022 à 13:15
cette fois ci cela me retourne une page blanche après l'enregistrement avec ce changement
je te donne le code modifie
je te donne le code modifie
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); // je me connecte a la base de donnee require_once 'base.php'; function query($sql, $datas = null ){ global $bdd; //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); return $requete; } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } } function getLastId(){ global $bdd; return $bdd->lastInsertId();//on retourne l'id qui est créé } function getUserByMail($email){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE email = ?"; $datas = [$email]; $res = query($sql, $datas); return $res->fetch(); } function getUserByPseudo($pseudo){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE pseudo = ?"; $datas = [$pseudo]; $res = query($sql, $datas); return $res->fetch(); } //si tous est ok alors on passe a l inscription if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); //preparation des variables propres $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $row = getUserByMail($email); if (empty($row)) { $row2 = getUserByPseudo($pseudo); //on verifie que le pseudo n est pas present if (empty($row2)){ //on verifie que le pseudo fais moins de 40 caractere if (strlen($pseudo) <= 30) { //on verifie que le email fais moins de 40 caractere if (strlen($email) <= 35) { //on verifie les caracteres if(preg_match('/^[a-z_\-0-9]+$/i', $pseudo)){ //on verifie que c est bien une email if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { //on verifie que le pasword retape correpond bien au passord $cost = ['cost' => 12]; //on cree la confirmkey $longueurkey =12; $key=""; for($i=1;$i<$longueurkey;$i++) $key .=mt_rand(0,9); //$confirmkey =$key; function addUser($pseudo, $email, $password, $ip, $key, $confirme){ $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $sql ='INSERT INTO utilisateurs(pseudo, email, password, ip, token ,confirmkey,confirme) VALUES(:pseudo, :email, :password, :ip, :token ,:confirmkey,:confirme)'; $datas = array('pseudo' => $pseudo,'email' => $email,'password' => $password,'ip' => $ip,'token' => bin2hex(openssl_random_pseudo_bytes(24)),'confirmkey' => $key ,'confirme' => $confirme); $res = query($sql, $datas ); return getLastId(); //on retourne l'id créé par l'insert. } //on mets a 0 la colonne confirme $confirme=0; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme); //on definit et on cree les variables sessions $_SESSION['idinscription'] = $id; // on entre un destinataires $to = $email; // notez la virgule // Sujet $subject= "votre confirmation"; // message $message = ' <html> <head> <title>Votre confirmation </title> </head> <body> <table> <tr> <td>ton pseudo est </td><td>'.$pseudo .' <a href="https://phil.pecheperle.be/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'">Confirmez votre compte !</a> </td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers[] = 'MIME-Version: 1.0'; $headers[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to, $subject, $message, implode("\r\n", $headers))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } // on entre un ou Plusieurs destinataires $to1 = 'perroquet666@hotmail.com'; // notez la virgule // Sujet $subject1= "UN NOUVEL INSCRIT "; // message $message1 = ' <html> <head> <title>un nouveau membre vient de s inscrire </title> </head> <body> <table> <tr> <td>son pseudo est </td><td>'.$pseudo .'</td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers1[] = 'MIME-Version: 1.0'; $headers1[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers1[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers1[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to1, $subject1, $message1, implode("\r\n", $headers1))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } header('Location:redirection-inscription.php?reg_err=success'); die(); } else { header('Location: inscription.php?reg_err=password'); die(); } } else { header('Location: inscription.php?reg_err=email'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_caractere'); die(); } } else { header('Location: inscription.php?reg_err=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); }
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 13:18
12 mai 2022 à 13:18
mais non !!!!
Faut pas déplacer la fonction !!!!!
Les fonctions .. on les créé ( au début du fichier en général )
puis on les appel là où on en a besoin !
Tu n'as pas regardé le code que je t'ai donné !!
Faut pas déplacer la fonction !!!!!
Les fonctions .. on les créé ( au début du fichier en général )
puis on les appel là où on en a besoin !
Tu n'as pas regardé le code que je t'ai donné !!
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 13:18
12 mai 2022 à 13:18
fausse alerte
c'est le serveur de hostinger qui n'a pas mis a jour assez vite
c'est le serveur de hostinger qui n'a pas mis a jour assez vite
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 13:23
12 mai 2022 à 13:23
voila j'ai refais la modification jordane
Merci
Mais cela n'enregistre toujours pas l'utilisateur dans la base de donnée
Merci
Mais cela n'enregistre toujours pas l'utilisateur dans la base de donnée
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); // je me connecte a la base de donnee require_once 'base.php'; function query($sql, $datas = null ){ global $bdd; //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); return $requete; } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } } function getLastId(){ global $bdd; return $bdd->lastInsertId();//on retourne l'id qui est créé } function getUserByMail($email){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE email = ?"; $datas = [$email]; $res = query($sql, $datas); return $res->fetch(); } function getUserByPseudo($pseudo){ //préparation de la requête et des variables afin de verifier si l email est present dans la table $sql = "SELECT pseudo, email, password FROM utilisateurs WHERE pseudo = ?"; $datas = [$pseudo]; $res = query($sql, $datas); return $res->fetch(); } //on mets a 0 la colonne confirme $confirme=0; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme); function addUser($pseudo, $email, $password, $ip, $key, $confirme){ $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $sql ='INSERT INTO utilisateurs(pseudo, email, password, ip, token ,confirmkey,confirme) VALUES(:pseudo, :email, :password, :ip, :token ,:confirmkey,:confirme)'; $datas = array('pseudo' => $pseudo,'email' => $email,'password' => $password,'ip' => $ip,'token' => bin2hex(openssl_random_pseudo_bytes(24)),'confirmkey' => $key ,'confirme' => $confirme); $res = query($sql, $datas ); return getLastId(); //on retourne l'id créé par l'insert. } //si tous est ok alors on passe a l inscription if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); //preparation des variables propres $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $row = getUserByMail($email); if (empty($row)) { $row2 = getUserByPseudo($pseudo); //on verifie que le pseudo n est pas present if (empty($row2)){ //on verifie que le pseudo fais moins de 40 caractere if (strlen($pseudo) <= 30) { //on verifie que le email fais moins de 40 caractere if (strlen($email) <= 35) { //on verifie les caracteres if(preg_match('/^[a-z_\-0-9]+$/i', $pseudo)){ //on verifie que c est bien une email if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { //on verifie que le pasword retape correpond bien au passord $cost = ['cost' => 12]; //on cree la confirmkey $longueurkey =12; $key=""; for($i=1;$i<$longueurkey;$i++) $key .=mt_rand(0,9); //$confirmkey =$key; //on definit et on cree les variables sessions $_SESSION['idinscription'] = $id; // on entre un destinataires $to = $email; // notez la virgule // Sujet $subject= "votre confirmation"; // message $message = ' <html> <head> <title>Votre confirmation </title> </head> <body> <table> <tr> <td>ton pseudo est </td><td>'.$pseudo .' <a href="https://phil.pecheperle.be/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'">Confirmez votre compte !</a> </td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers[] = 'MIME-Version: 1.0'; $headers[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to, $subject, $message, implode("\r\n", $headers))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } // on entre un ou Plusieurs destinataires $to1 = 'perroquet666@hotmail.com'; // notez la virgule // Sujet $subject1= "UN NOUVEL INSCRIT "; // message $message1 = ' <html> <head> <title>un nouveau membre vient de s inscrire </title> </head> <body> <table> <tr> <td>son pseudo est </td><td>'.$pseudo .'</td></br> </tr> <tr> <td>l adresse mail </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers1[] = 'MIME-Version: 1.0'; $headers1[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers1[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers1[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to1, $subject1, $message1, implode("\r\n", $headers1))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } header('Location:redirection-inscription.php?reg_err=success'); die(); } else { header('Location: inscription.php?reg_err=password'); die(); } } else { header('Location: inscription.php?reg_err=email'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_caractere'); die(); } } else { header('Location: inscription.php?reg_err=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } }
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 14:08
12 mai 2022 à 14:08
Et ça n'affiche pas d'erreur ?
ça te redirige sur une autre page ?
Il faudrait désactiver les redirections si tu veux pouvoir voir les éventuelles erreurs...
N'hésites pas non plus à ajouter quelques var_dump des différentes variables pour voir ce qu'elles valent aux différentes étapes de ton script et ainsi voir si il rentre bien dans tous tes if ... et toutes les fonctions..
ça te redirige sur une autre page ?
Il faudrait désactiver les redirections si tu veux pouvoir voir les éventuelles erreurs...
N'hésites pas non plus à ajouter quelques var_dump des différentes variables pour voir ce qu'elles valent aux différentes étapes de ton script et ainsi voir si il rentre bien dans tous tes if ... et toutes les fonctions..
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 15:07
12 mai 2022 à 15:07
Merci pour ton aide jordane
Non aucune erreur , l'enregistrement se fait normalement je revois bien le mail qui me dit qu'un nouvel utilisateur est inscrit
ce qui vuex dire que le process s'effectue bien
Mais rien dans la base de donnée il n'y a rien
j'ai donc mis en commentaire les redirections et effectuer un premier var_dump
a cet endroit
voici les messages d'erreur retournes
Notice: Undefined variable: pseudo in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: email in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: password in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: ip in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: key in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: cost in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 58
Warning: password_hash() expects parameter 3 to be array, null given in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 58
Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pseudo' cannot be null Les datas : Array ( [pseudo] => [email] => [password] => [ip] => 212..133 [token] => 966e172da08120e4204ba8cc129768ee0cd5e46f3 [confirmkey] => [confirme] => 0 )
Notice: Undefined variable: date1 in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 128
Notice: Undefined variable: name in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 139
Notice: Undefined variable: date1 in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 172
Notice: Undefined variable: name in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 183
Non aucune erreur , l'enregistrement se fait normalement je revois bien le mail qui me dit qu'un nouvel utilisateur est inscrit
ce qui vuex dire que le process s'effectue bien
Mais rien dans la base de donnée il n'y a rien
j'ai donc mis en commentaire les redirections et effectuer un premier var_dump
a cet endroit
//on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme); var_dump ($id);
voici les messages d'erreur retournes
Notice: Undefined variable: pseudo in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: email in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: password in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: ip in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: key in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 53
Notice: Undefined variable: cost in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 58
Warning: password_hash() expects parameter 3 to be array, null given in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 58
Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pseudo' cannot be null Les datas : Array ( [pseudo] => [email] => [password] => [ip] => 212..133 [token] => 966e172da08120e4204ba8cc129768ee0cd5e46f3 [confirmkey] => [confirme] => 0 )
Notice: Undefined variable: date1 in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 128
Notice: Undefined variable: name in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 139
Notice: Undefined variable: date1 in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 172
Notice: Undefined variable: name in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 183
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 15:10
12 mai 2022 à 15:10
mais;.. qu'est-ce que tu as été me déplacer le code d'ajout de l'utilsiateur ??
La fonction, elle, doit se trouver au début du code tel que je te l'avais donné.
Ensuite, dans tes IF, ( là ou je l'avais mis au départ), tu dois avoir l'appel à cette fonction...
donc les lignes de code
Code à remettre, donc, juste avant l'envoi des mails !
La fonction, elle, doit se trouver au début du code tel que je te l'avais donné.
Ensuite, dans tes IF, ( là ou je l'avais mis au départ), tu dois avoir l'appel à cette fonction...
donc les lignes de code
//on mets a 0 la colonne confirme $confirme=0; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme);
Code à remettre, donc, juste avant l'envoi des mails !
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 15:26
12 mai 2022 à 15:26
Jordane j'ai fait exactement ce que tu m'as dit les functions début du code
dans le post 15 tu me dis de déplacer
ce morceau de code juste avant l'appel de la function
ah je pense comprendre le soucis je l'ai déplacé avant la création de la function
car lorsque je laisse le morceau de code comme a l'origine cela ne fonctionne pas non plus
tu vas me prendre pour un âne mais je m'embrouille les pinceaux cette fois
dans le post 15 tu me dis de déplacer
ce morceau de code juste avant l'appel de la function
//on mets a 0 la colonne confirme $confirme=0; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme);
ah je pense comprendre le soucis je l'ai déplacé avant la création de la function
car lorsque je laisse le morceau de code comme a l'origine cela ne fonctionne pas non plus
tu vas me prendre pour un âne mais je m'embrouille les pinceaux cette fois
$row2 = getUserByPseudo($pseudo); //on verifie que le pseudo n est pas present if (empty($row2)){ //on verifie que le pseudo fais moins de 40 caractere if (strlen($pseudo) <= 30) { //on verifie que le email fais moins de 40 caractere if (strlen($email) <= 35) { //on verifie les caracteres if(preg_match('/^[a-z_\-0-9]+$/i', $pseudo)){ //on verifie que c est bien une email if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { //on verifie que le pasword retape correpond bien au passord $cost = ['cost' => 12]; //on cree la confirmkey $longueurkey =12; $key=""; for($i=1;$i<$longueurkey;$i++) $key .=mt_rand(0,9); //$confirmkey =$key; //on mets a 0 la colonne confirme $confirme=0; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme); var_dump ($id);
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 16:29
12 mai 2022 à 16:29
Lignes 21 à 25 .. à remplacer par :
et RETIRER DANS la fonction addUSer
les lignes
ce n'est pas compliqué pourtant...
//on mets a 0 la colonne confirme $confirme=0; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; //on créé le user $id = addUser($pseudo, $email, $password, $ip, $key, $confirme);
et RETIRER DANS la fonction addUSer
les lignes
$password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR'];
ce n'est pas compliqué pourtant...
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
>
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
12 mai 2022 à 17:03
12 mai 2022 à 17:03
Merci Jordane
voila cette fois nous y sommes
Merci pour ta patience et ta compréhension
l'utilisateur est bien dans la base de donnée
voyons a présent pour cette variable de session
voila cette fois nous y sommes
Merci pour ta patience et ta compréhension
l'utilisateur est bien dans la base de donnée
voyons a présent pour cette variable de session
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
Modifié le 12 mai 2022 à 15:39
Modifié le 12 mai 2022 à 15:39
Lorsque je remets comme le code d'origine que tu m'as donne en désactivant les rediections voici les messages d erreur
Notice: Undefined variable: ip in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 100
Notice: Undefined variable: cost in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 52
Warning: password_hash() expects parameter 3 to be array, null given in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 52
Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'password' cannot be null Les datas : Array ( [pseudo] => talon [email] => talonaiguille.be@gmail.com [password] => [ip] => 212.2233 [token] => 4b714d583b052b18758501f085ec8b9c0667e5 [confirmkey] => 81248209 [confirme] => 0 )
Notice: Undefined variable: ip in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 100
Notice: Undefined variable: cost in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 52
Warning: password_hash() expects parameter 3 to be array, null given in /home/u434600775/domains/pecheperle.be/public_html/phil/inscription_traitement.php on line 52
Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'password' cannot be null Les datas : Array ( [pseudo] => talon [email] => talonaiguille.be@gmail.com [password] => [ip] => 212.2233 [token] => 4b714d583b052b18758501f085ec8b9c0667e5 [confirmkey] => 81248209 [confirme] => 0 )
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 15:52
12 mai 2022 à 15:52
le problème vient surement du code du password car rien n'est retourne dans le tableau
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 17:10
12 mai 2022 à 17:10
un tout très grand merci a jordane pour sa patience
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 17:21
12 mai 2022 à 17:21
Pour ta variable de session, si tu as toujours le souci d'avoir l'utilisateur connecté aussitôt qu'il a créé son compte, il faut nous montrer le code de vérification que tu fais sur tes autres pages...
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 17:26
12 mai 2022 à 17:26
non jordane le défaut est disparu
C'était un problème lorsque je mettais la variable de session dans mon code
Mais avec ton code cela a disparu
C'était un problème lorsque je mettais la variable de session dans mon code
Mais avec ton code cela a disparu
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
12 mai 2022 à 17:32
12 mai 2022 à 17:32
Donc sujet à mettre en RESOLU
flexi2202
Messages postés
3803
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
1 février 2025
187
12 mai 2022 à 17:36
12 mai 2022 à 17:36
oui et encore mille fois merci