Probleme de connexion avec mon site en php
Résolu/Ferméflexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 4 oct. 2023 à 22:11
- Probleme de connexion avec mon site en php
- Site de telechargement - Accueil - Outils
- Gmail connexion - Guide
- Site de vente en ligne particulier - Guide
- Site comme coco - Accueil - Réseaux sociaux
- Site inaccessible n'autorise pas la connexion - Guide
5 réponses
4 oct. 2023 à 18:29
Bonjour
Vide totalement le cache de ton navigateur avant de réessayer. Il se peut simplement que tu aies conservé en session les valeurs de tes précédents tests.
À la limite, essaie directement en navigation privée.
Si le souci persiste, n'hésite pas à placer des échos dans ton code pour voir si tu rentres bien dans les différentes conditions que tu testes...
Au passage, j'aurais directement intégré la condition qui permet de vérifier qu'il n'est pas banni dans la requête SQL qui te permet de récupérer l'utilisateur.....
Modifié le 4 oct. 2023 à 19:32
Bonjour Jordane,
Merci pour la réponse.
C'est bien ce que je fais à chaque fois, vider le cache de mon navigateur, même sur 3 navigateurs différents, mais le résultat reste le même.
En fait, dans mon code, tout se passe bien et toutes les conditions fonctionnent, sauf celle où, malgré que l'utilisateur a un jeton confirmé à 0, il parvient à se connecter.
C'est vrai que j'aurais pu le mettre dans la requête, mais j'ai besoin des variables même s'il n'est pas confirmé
si je realise un var_dump dans le code ci dessous j'obtiens bien "0" de la valeur confirme
//erreur si compte pas active case 'ComptePasActive': ?> <div style="color: #f2071d;background-color: #fde30c;border-color: #f90a23;font-weight: bold; margin-bottom: 10px; padding: 15px;margin-top: 15px;"> <strong>Erreur</strong>Ton compte n'est pas activé , Regarde bien dans tes spams <?php var_dump($_SESSION["confirme"] ); ?> <form action='https://phil.pecheperle.be/zone-membre/ActivationInscriptionSite.php' method='post'> <button style=" display: block;margin-left: auto;margin-right: auto;" type='submit' name='renvoyer'>Reçois a nouveau le lien pour activer ton compte </button> </form> </div> <?php break;
4 oct. 2023 à 19:37
C'est à la ligne 37 de ton premier code que tu devrais ajouter du debug histoire de voir ce que te retourne exactement ta requête et si par la suite les conditions que tu penses tester après sont les bonnes
4 oct. 2023 à 19:59
Merci Jordane je viens d'essayer de cette façon mais rien n'est retourné
$sql = "SELECT pseudo, email,id,confirme, liste_noire,password,confirmkey FROM utilisateurs WHERE pseudo = ? OR email = ?"; $datas = [$pseudo, $pseudo]; // Debug pour vérifier les valeurs dans $datas echo "Datas: "; var_dump($datas); //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); } catch (Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } $data = $requete->fetch(); // Debug pour vérifier le contenu de $data echo "Data: "; var_dump($data);
4 oct. 2023 à 20:40
Place un exit apres ta ligne 23
Si tu ne vois toujours rien..... c'est que tu ne passes pas par ce fichier
4 oct. 2023 à 20:59
Merci jordane
Cela fonctionne
et tout est ok au niveau des valeurs
et comme prévu la valeur de confirme est bien de "0"
Je comprends de moins en moins ce qui se passe avec ce code
Datas: array(2) { [0]=> string(3) "san" [1]=> string(3) "san" } Data: array(7) { ["pseudo"]=> string(3) "san" ["email"]=> string(21) "sanphi@gmail.com" ["id"]=> string(3) "543" ["confirme"]=> string(1) "0" ["liste_noire"]=> string(1) "0" ["password"]=> string(60) "$2y$12$S0unm9Q2y0JSlKTgGX2OHe" ["confirmkey"]=> string(11) "5659897" }
4 oct. 2023 à 21:04
Dans le code initial que tu nous as montré, tu testes la valeur de confirme après avoir rempli les valeurs de session...... Normal donc, qu'il considère que tu es bien connecté
Modifié le 4 oct. 2023 à 21:09
oui d'accord sur ce point mais alors comment je pourrais faire pour recupérer les variable de session si je teste la confirmation avant le remplissage des valeurs de sessions
Modifié le 4 oct. 2023 à 21:42
Je ne vois pas où se trouve le problème, tu fais toutes tes vérifications et si tout est ok tu charges les variables de session avec les valeurs désirées... cqfd
4 oct. 2023 à 21:55
Merci pour la reponse
je viens de refaire mon code mais une des premieres chose que je verifie a present c'est que confirme est "0" mais lorsque c'est le cas je suis envoyé vers ma page d'erreur mais sans mes variables de session puisque pas encore définie
//je teste si le pseudo ou l'email sont bon
if (empty($data))
{
header('Location: /zone-membre/connexion-site.php?login_err=MailPseusdoMauvais');
die();
}
//je teste pour savoir si ils sont bien confirme
if ($data['confirme'] != '1')
{
header('Location: /zone-membre/connexion-site.php?login_err=ComptePasActive');
die();
}
//je teste pour savoir si ils sont pas sur la liste noire
if ($data['liste_noire'] != '0')
{
header('Location: /zone-membre/connexion-site.php?login_err=listenoire');
die();
}
// vérifie si la valeur associée à la clé confirme n'est pas égale à zéro. Si c'est le cas, la condition sera évaluée comme vraie.
//dans ce cas je realise d'autre verification
if ($data['confirme'] != "0")
{
//si l 'email ou le pseusdo sont bons on continue
if (!empty($data))
{
//on verifie le pawword si il est ok on continue , sinon sortie
if (password_verify($password, $data['password']))
{
//on definit et on cree les variables sessions
$_SESSION['user'] = array(
'id' => $data['id'],
'pseudo' => $data['pseudo'],
'email' => $data['email'],
'confirmkey' => $data['confirmkey']
);
$_SESSION['id'] = $data['id'];
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['email'] = $data['email'];
$_SESSION['confirmkey'] = $data['confirmkey'];
//on test la variable link si elle est vide on va vers index
if (empty($_SESSION['link']))
{
header('Location: ../index.php?pseudo=' . $_SESSION['pseudo']);
//sinon on va faire la derniere page visitee
}
else
{
header('location: ' . $_SESSION['link']);
}
die();
}
else
{//mot de passe incorrect
header('Location: /zone-membre/connexion-site.php?login_err=password');
die();
}
}
else
{
//compte non existant
header('Location: /zone-membre/connexion-site.php?login_err=already');
die();
}
}
else
{//compte pas confirme
header('Location: /zone-membre/connexion-site.php?login_err=ComptePasActive');
die();
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question4 oct. 2023 à 22:11
j'ai fini par trouver voici ce que je realise
if ($data['confirme'] != '1') { $email = $data['email']; // Récupérez l'adresse e-mail de $data // Redirigez vers la page d'erreur en incluant l'adresse e-mail comme paramètre header('Location: /zone-membre/connexion-site.php?login_err=ComptePasActive&email=' . urlencode($email)); die(); }