Besoin d une correction pour la page d inscription
Fermé
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
-
10 mars 2021 à 12:00
53pierre Messages postés 32 Date d'inscription mercredi 10 mars 2021 Statut Membre Dernière intervention 29 janvier 2023 - 10 mars 2021 à 22:50
53pierre Messages postés 32 Date d'inscription mercredi 10 mars 2021 Statut Membre Dernière intervention 29 janvier 2023 - 10 mars 2021 à 22:50
A voir également:
- Besoin d une correction pour la page d inscription
- Supprimer une page word - Guide
- Page d accueil google - Guide
- Comment traduire une page - Guide
- Instagram inscription gratuite - Guide
- Paypal rdc inscription - Guide
23 réponses
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 12:15
10 mars 2021 à 12:15
Bonjour,
Tu sembles utiliser PDO .. donc
- Commence par appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
- L'instruction rowCount, en PDO, ne doit jamais s'utiliser sur une requête SELECT...
A la place, fait un FETCHALL du résultat de ta requête et un COUNT dessus.
- L'instruction htmlspecialchars ne doit jamais s'utiliser pour l'insertion des données en BDD.. elle ne doit servir que pour l'affichage des données sur une page .
Et pour finir, je t'invite à appliquer également les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
Tu sembles utiliser PDO .. donc
- Commence par appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
- L'instruction rowCount, en PDO, ne doit jamais s'utiliser sur une requête SELECT...
A la place, fait un FETCHALL du résultat de ta requête et un COUNT dessus.
- L'instruction htmlspecialchars ne doit jamais s'utiliser pour l'insertion des données en BDD.. elle ne doit servir que pour l'affichage des données sur une page .
Et pour finir, je t'invite à appliquer également les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 12:29
10 mars 2021 à 12:29
bonjour
Merci pour la réponse
donc je dois insérer le code pour les erreurs dans mon fichier confi.sys
puisque la connexion a ma base ce trouve dans ce fichier
Merci pour la réponse
donc je dois insérer le code pour les erreurs dans mon fichier confi.sys
puisque la connexion a ma base ce trouve dans ce fichier
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 12:59
10 mars 2021 à 12:59
Oui mais pas que.
Il faudra également ajouter des try catch autour de chaque requête
Il faudra également ajouter des try catch autour de chaque requête
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 13:40
10 mars 2021 à 13:40
merci pour les renseignements de cette facon alors
try{ $check = $bdd->prepare('SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 14:02
10 mars 2021 à 14:02
Relis bien le contenu du lien que je t'ai donné.
d'une part tu dois activer les erreurs PDO dans la connexion à ta base de données.
Et d'autre part tu dois exécuter des requêtes chacune dans un bloc try catch
Si tu regardes les exemples de code qui se trouve dans le lien tu verras que ce que tu as écrit n'est pas la même chose...
d'une part tu dois activer les erreurs PDO dans la connexion à ta base de données.
Et d'autre part tu dois exécuter des requêtes chacune dans un bloc try catch
Si tu regardes les exemples de code qui se trouve dans le lien tu verras que ce que tu as écrit n'est pas la même chose...
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
Modifié le 10 mars 2021 à 14:24
Modifié le 10 mars 2021 à 14:24
merci pour le rappel
donc si je reprends l exemple
c est comme ceci
donc si je reprends l exemple
c est comme ceci
//Execution de la requete try{ //Execution de la requete try{ $check = $bdd->prepare('SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'); $check->execute(array($email)); $data = $check->fetch(); $row = $check->rowCount(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " email : " ; print_r($email); }
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 14:58
10 mars 2021 à 14:58
Toujours pas....
Essaye ça
A noter que le ROWCOUNT ne s'utilise PAS sur une requête SELECT !
En plus, vu que tu ne cherches à récupérer qu'une seule ligne.. ça serait, de toutes façons, inutile.
Si tu veux juste vérifier si ta requête a retournée un résultat, il suffit de regarder si $row n'est pas vide
Essaye ça
$sql = 'SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'; $datas = array($email); //Execution de la requete try{ $prep = $bdd->prepare($sql); $prep->execute($datas); $row = $check->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " datas : " ; print_r($datas); }
A noter que le ROWCOUNT ne s'utilise PAS sur une requête SELECT !
En plus, vu que tu ne cherches à récupérer qu'une seule ligne.. ça serait, de toutes façons, inutile.
Si tu veux juste vérifier si ta requête a retournée un résultat, il suffit de regarder si $row n'est pas vide
if(!empty($row)){ // ici.. $row contient les données issues de ta requête }else{ // ici.. ben.. ta requête n'a rien retourné }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
Modifié le 10 mars 2021 à 15:59
Modifié le 10 mars 2021 à 15:59
Merci pour la solution , je vais essayer le tout par la suite
je tente la deuxième requete
je tente la deuxième requete
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
Modifié le 10 mars 2021 à 16:04
Modifié le 10 mars 2021 à 16:04
Visiblement... tu vois presque bien... mais pas tout à fait ...
J'espère qu'avec les commentaires ça sera plus clair ....
// la requête SQL a executer : $sql = 'INSERT INTO utilisateurs (pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'; //les données qu'il faut passer en paramètres de la requêtes $datas = array( 'pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24)) ); // L'exécution de la requete DANS un try/catch try{ $prep = $bdd->prepare($sql); $prep->execute($datas); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les paramètres envoyés à la requete : " ; print_r($datas); }
J'espère qu'avec les commentaires ça sera plus clair ....
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 16:14
10 mars 2021 à 16:14
ouppsss
je venais juste de m apercevoir que j avais pas bon
j'ai été pris de court
j'étais en train de corriger
voici ce que je voulais poster
je venais juste de m apercevoir que j avais pas bon
j'ai été pris de court
j'étais en train de corriger
voici ce que je voulais poster
$sql = 'INSERT INTO utilisateurs(pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'; $datas = (array( 'pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24)) )); //Execution de la requete try{ $prep = $bdd -> prepare($sql) ; $prep->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 16:18
10 mars 2021 à 16:18
et donc sauf erreur le code ressemble a ceci au final
<?php require_once 'config.php'; if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $pseudo = ($_POST['pseudo']); $email = ($_POST['email']); $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); $sql = 'SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'; $datas = array($email); //Execution de la requete try { $prep = $bdd->prepare($sql); $prep->execute($datas); $row = $check->fetch(); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " datas : "; print_r($datas); } if ($row == 0) { if (strlen($pseudo) <= 100) { if (strlen($email) <= 100) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { $cost = ['cost' => 12]; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; // la requête SQL a executer : $sql = 'INSERT INTO utilisateurs (pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'; //les données qu'il faut passer en paramètres de la requêtes $datas = array('pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24))); // L'exécution de la requete DANS un try/catch try { $prep = $bdd->prepare($sql); $prep->execute($datas); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les paramètres envoyés à la requete : "; print_r($datas); } header('Location: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=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } }
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 16:20
10 mars 2021 à 16:20
ça ce n'est pas bon
Relis ce que je t'ai indiqué
if ($row == 0) {
Relis ce que je t'ai indiqué
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 16:26
10 mars 2021 à 16:26
ah oui j'avais oublie cela
j'en aurais appris des choses ce jour
donc voici alors
j'en aurais appris des choses ce jour
donc voici alors
<?php require_once 'config.php'; if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $pseudo = ($_POST['pseudo']); $email = ($_POST['email']); $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); $sql = 'SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'; $datas = array($email); //Execution de la requete try { $prep = $bdd->prepare($sql); $prep->execute($datas); $row = $check->fetch(); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " datas : "; print_r($datas); } if(!empty($row)) { if (strlen($pseudo) <= 100) { if (strlen($email) <= 100) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { $cost = ['cost' => 12]; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; // la requête SQL a executer : $sql = 'INSERT INTO utilisateurs (pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'; //les données qu'il faut passer en paramètres de la requêtes $datas = array('pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24))); // L'exécution de la requete DANS un try/catch try { $prep = $bdd->prepare($sql); $prep->execute($datas); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les paramètres envoyés à la requete : "; print_r($datas); } header('Location: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=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } }
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 16:32
10 mars 2021 à 16:32
je viens d'essayer ce nouveau code
mais j'ai une erreur qui est retournée
lors de la finalisation de l'inscription
Cette page ne fonctionne pasImpossible de traiter cette demande via accessible-preparat.000webhostapp.com à l'heure actuelle.
HTTP ERROR 500
mais j'ai une erreur qui est retournée
lors de la finalisation de l'inscription
Cette page ne fonctionne pasImpossible de traiter cette demande via accessible-preparat.000webhostapp.com à l'heure actuelle.
HTTP ERROR 500
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 16:34
10 mars 2021 à 16:34
Ligne 14. Erreur sur la variable utilisée
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
Modifié le 10 mars 2021 à 16:49
Modifié le 10 mars 2021 à 16:49
merci
$sql a la place de check
non ce n est pas ca ....
$sql a la place de check
non ce n est pas ca ....
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 16:59
10 mars 2021 à 16:59
$prep. A la place de check
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 17:10
10 mars 2021 à 17:10
ah ben oui ...
merci encore une fois
tiens c'est bizarre il y a une erreur lorsque je rentre un nouvel utilisateur qui n'est pas encore inscrit
il me dit qu'il existe déjà
pourtant je ne vois pas ce qui cloche
merci encore une fois
tiens c'est bizarre il y a une erreur lorsque je rentre un nouvel utilisateur qui n'est pas encore inscrit
il me dit qu'il existe déjà
pourtant je ne vois pas ce qui cloche
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 17:30
10 mars 2021 à 17:30
Fais un print_r( $row); avant le if et regarde ce qu'il t'affiche
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 17:41
10 mars 2021 à 17:41
merci pour l'astuce
voila j'en ai mis deux de cette façon
mais rien ne s'affiche
voila j'en ai mis deux de cette façon
mais rien ne s'affiche
<?php require_once 'config.php'; print_r( $row); if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $pseudo = ($_POST['pseudo']); $email = ($_POST['email']); $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); $sql = 'SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'; $datas = array($email); //Execution de la requete try { $prep = $bdd->prepare($sql); $prep->execute($datas); $row = $prep->fetch(); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " datas : "; print_r($datas); } print_r( $row); if(!empty($row)) { if (strlen($pseudo) <= 100) { if (strlen($email) <= 100) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { $cost = ['cost' => 12]; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; // la requête SQL a executer : $sql = 'INSERT INTO utilisateurs (pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'; //les données qu'il faut passer en paramètres de la requêtes $datas = array('pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24))); // L'exécution de la requete DANS un try/catch try { $prep = $bdd->prepare($sql); $prep->execute($datas); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les paramètres envoyés à la requete : "; print_r($datas); } header('Location: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=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } }
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 17:50
10 mars 2021 à 17:50
Alors déjà .. le premier il ne sert à rien.... vu que ta variable $row n'est crée qu'à partir de la ligne 15
Ensuite...pour voir quelque chose... il faudrait retirer les redirections...
Ensuite...pour voir quelque chose... il faudrait retirer les redirections...
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 17:55
10 mars 2021 à 17:55
oui je me doutais bien que le premier ne servait a rien mais bon
j enlève donc cette partie
j enlève donc cette partie
header('Location: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=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); }
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 17:57
10 mars 2021 à 17:57
Enlève rien il suffit de mettre en commentaire chaque ligne qui sert de redirection
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 18:01
10 mars 2021 à 18:01
merci
voila je viens de refaire l'essai
j'ai une page blanche a présent
voila je viens de refaire l'essai
j'ai une page blanche a présent
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 18:12
10 mars 2021 à 18:12
Je viens de voir ton erreur...
Je t'avais donné un code avec un IF et un ELSE....
Dans le cas qui te concerne tu dois vérifier que la variable Row est vide ....
La toi tu testes si elle n'est pas vide....
Comprends-tu le mot empty ?
Sais-tu à quoi sert le point d'exclamation ?
C'est un minimum à connaître quand on commence à coder en PHP...
Je t'avais donné un code avec un IF et un ELSE....
Dans le cas qui te concerne tu dois vérifier que la variable Row est vide ....
La toi tu testes si elle n'est pas vide....
Comprends-tu le mot empty ?
Sais-tu à quoi sert le point d'exclamation ?
C'est un minimum à connaître quand on commence à coder en PHP...
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
Modifié le 10 mars 2021 à 18:19
Modifié le 10 mars 2021 à 18:19
on vérifie si elle n est pas vide
ah mince c est le ! qui fout le bazar
ah mince c est le ! qui fout le bazar
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
Modifié le 10 mars 2021 à 19:38
Modifié le 10 mars 2021 à 19:38
ah ben voila cela a fonctionner
un grand merci
pour la connexion c'est pareil avec la gestion des erreurs
et donc est ok dans ce cas reste comme ca ou alors on fait cette fois un !empty
un grand merci
pour la connexion c'est pareil avec la gestion des erreurs
<?php session_start(); require_once 'config.php'; if(!empty($_POST['email']) && !empty($_POST['password'])) { $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $sql = 'SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'; $datas = array($email); //Execution de la requete try{ $prep = $bdd->prepare($sql); $prep->execute($datas); $row = $check->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " datas : " ; print_r($datas); } if($row == 1) { if(filter_var($email, FILTER_VALIDATE_EMAIL)) { if(password_verify($password, $data['password'])) { $_SESSION['user'] = $data['email']; header('Location: accueil-.php'); die(); }else{ header('Location: index.php?login_err=password'); die(); } }else{ header('Location: index.php?login_err=email'); die(); } }else{ header('Location: index.php?login_err=already'); die(); } }
et donc est ok dans ce cas reste comme ca ou alors on fait cette fois un !empty
if($row == 1)
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 19:41
10 mars 2021 à 19:41
Dans ma première réponse je t'ai indiqué
Tu as encore une erreur de variable à la ligne 17
A corriger par
Et pour ton if, là c'est
- L'instruction htmlspecialchars ne doit jamais s'utiliser pour l'insertion des données en BDD.. elle ne doit servir que pour l'affichage des données sur une page .
Tu as encore une erreur de variable à la ligne 17
A corriger par
$prep = $bdd->prepare($sql); $prep->execute($datas); $row = $prep->fetch();
Et pour ton if, là c'est
if(!empty($row ))
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 20:18
10 mars 2021 à 20:18
merci pour la correction
mais j'ai une erreur
il m'indique que le compte n existe pas
mais j'ai une erreur
il m'indique que le compte n existe pas
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 20:49
10 mars 2021 à 20:49
Montre ton code modifié...
Et vérifie bien dans la base de données que le compte existe
Et vérifie bien dans la base de données que le compte existe
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
Modifié le 10 mars 2021 à 20:55
Modifié le 10 mars 2021 à 20:55
merci de la réaction
oui le membre est bien inscrit
voici le code
oui le membre est bien inscrit
voici le code
<?php session_start(); require_once 'config.php'; if(!empty($_POST['email']) && !empty($_POST['password'])) { $email = ($_POST['email']); $password = $_POST['password']); $sql = 'SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'; $datas = array($email); //Execution de la requete try{ $prep = $bdd->prepare($sql); $prep->execute($datas); $row = $prep->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " datas : " ; print_r($datas); } if(!empty($row )) { if(filter_var($email, FILTER_VALIDATE_EMAIL)) { if(password_verify($password, $data['password'])) { $_SESSION['user'] = $data['email']; header('Location: accueil.php'); die(); }else{ header('Location: index.php?login_err=password'); die(); } }else{ header('Location: index.php?login_err=email'); die(); } }else{ header('Location: index.php?login_err=already'); die(); } }
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 21:00
10 mars 2021 à 21:00
Tu ne te relis pas assez....
Ce n'est pas data... mais row..
Si tu penses à activer les erreurs PHP au début de tes script et que tu mets en commentaire les redirection pour vérifier ce qui se passe quand ça ne fonctionne pas tu n'aurais pas besoin que je te relise ton code.
if(password_verify($password, $data['password']
Ce n'est pas data... mais row..
Si tu penses à activer les erreurs PHP au début de tes script et que tu mets en commentaire les redirection pour vérifier ce qui se passe quand ça ne fonctionne pas tu n'aurais pas besoin que je te relise ton code.
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 21:10
10 mars 2021 à 21:10
en effet c'est vrai que je ne me relis pas assez
pourtant c est de la logique
faut absolument que je comprenne ces choses toutes simple
pour protéger mes pages de mon espace membre seul ceci suffit alors
pourtant c est de la logique
faut absolument que je comprenne ces choses toutes simple
pour protéger mes pages de mon espace membre seul ceci suffit alors
<?php session_start(); if(!isset($_SESSION['user'])){ header('Location:test.php'); die(); } ?>
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 21:30
10 mars 2021 à 21:30
Oui
53pierre
Messages postés
32
Date d'inscription
mercredi 10 mars 2021
Statut
Membre
Dernière intervention
29 janvier 2023
1
10 mars 2021 à 21:45
10 mars 2021 à 21:45
merci
car sur un forum j avais vu cela
car sur un forum j avais vu cela
<?php session_start(); if(!empty($_SESSION['id']) AND !empty($_SESSION['pseudo']) OR !empty($_COOKIE['passe']) AND !empty($_COOKIE['pseudo'])) { } else { header('Location: index.php'); exit(); } ?>
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
10 mars 2021 à 21:48
10 mars 2021 à 21:48
Avoir un IF vide pour n'utiliser que le else n'a aucun intérêt ça a encore été coder par un branque...