Probleme connection

Par Layp, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Je voudrai faire un systeme de connection

connection.php partie connection :

if (!empty($_POST['connection'])) { if (!empty($_POST['passwordcon']) AND !empty($_POST['emailcon'])) { $passwordcon = sha1($_POST['passwordcon']); $emailcon = htmlspecialchars($_POST['emailcon']); if (filter_var($emailcon, FILTER_VALIDATE_EMAIL)) { $requser = $bdd->prepare('SELECT * FROM users WHERE email = ? AND password = ?'); $requser->execute([$emailcon,$passwordcon]); $userexist = $requser->rowCount(); if ($userexist == 1) { $userinfo = $requser->fetch(); if ($userinfo['is_verify'] == 1) { $_SESSION['id'] = $userinfo['id']; $_SESSION['pseudo'] = $userinfo['pseudo']; $success = "Vous etes connecté <a href='/user/profil/".$_SESSION['id']."' class='alert-link'>Acceder a votre profil</a>"; }else{ $error = "Votre compte n'est pas confirmé <a href='user/send/activation'>Envoyer le mail de confiamtion</a>"; } }else{ $error = "Email ou Mot de Passe mauvais"; } }else{ $error = "L'adresse email est fausse"; } }else{ $error = "Veuiller remplir tous les champs de formulaires de connection"; } }

formulaires :

<form method="POST"> <div class="form-group"> <label for="email">Email</label> <input type="email" name="emailcon" id="email" class="form-control"> </div> <div class="form-group"> <label for="password">Mot de Passe</label> <input type="password" name="passwordcon" id="password" class="form-control"> </div> <div class="form-group"> <input type="submit" name="connection" value="Se connecter" class="btn btn-info"> <br><a href="/DevInput/users/password">Mot de Passe oublié</a> </div> </form>

Ce que je veux

Je voudrai que l'utilisateur se connecte

Ce que j'obtiens

il me dit que j'utilise le mauvais mot de passe alors que j'utilise le bon .

5 réponses

kwik, il y a 9 ans

Bonjour,

Est-ce que le mot de passe de l'utilisateur est bien hasher via sha1() dans ta base de donnée ?

D'ailleurs aujourd'hui le sha1() n'est plus vraiment conseillé pour les mot de passe tu devrais plutot utiliser la fonction password_hash()

Il y a peut etre une erreur dans ton code mais je laisse les autres répondre, je suis sur téléphone et c'est pas évident ;)

Layp, il y a 9 ans

Oui il est bien sha1 dans ma base donnée

Lartak, il y a 9 ans

Bonsoir.

Oui il est bien sha1 dans ma base donnée

Est-ce que le champ correspondant en base de données fait bien 40 caractères ?
Pour t'assurer qu'il n'y a pas de problème en base de données, dans ton code ajoutes :

die($passwordcon);

Et vérifies que le mot de passe correspond bien à celui que tu as en base de données.

Layp, il y a 9 ans

Je vais essayer vous dit apres

Layp, il y a 9 ans

C'est bon sa marche merci