Bonjour,
Voila je rencontre un petit problème avec mon code.
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>
Je voudrai que l'utilisateur se connecte
il me dit que j'utilise le mauvais mot de passe alors que j'utilise le bon .
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.
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 ;)