Login mail et pseudonyme
Résolu
Bonjour,
Voila je voudrai pouvoir me connecter soit en mettant mon email ou bien mon pseudo, actuellement je le fais qu'avec mon pseudo mais je n'arrive pas à incruster la connexion avec le mail en supplément.
Voila je voudrai pouvoir me connecter soit en mettant mon email ou bien mon pseudo, actuellement je le fais qu'avec mon pseudo mais je n'arrive pas à incruster la connexion avec le mail en supplément.
$pseudoconnect = !empty($_POST['pseudoconnect']) ? $_POST['pseudoconnect'] : NULL;
$passconnect = !empty($_POST['passconnect']) ? hash("sha512",($_POST['passconnect'])) : NULL;
if(isset($_POST['form_connexion']))
{
$sql = "SELECT * FROM membres WHERE pseudo = ? AND pass = ?";
$datas = array($pseudoconnect,$passconnect);
try{
$prep= $bdd->prepare($sql);
$prep->execute($datas);
$a_result = $prep->fetchAll();
$nbResult = !empty($a_result) ? count($a_result) : 0;
}catch(Exception $e){
echo " Erreur : " . $e->getMessage();
}
$userexist = $nbResult;
if($userexist == 1)
{
$userinfo = $a_result[0];
$id = $userinfo['id'];
$confirme = $userinfo['confirme'];
$ban = $userinfo['ban'];
$mail = $userinfo['mail'];
$language = $userinfo['language'];
<form method="POST" action=""> <h1> Connexion </h1> <p> <label for="pseudoconnect" class="uname" data-icon="u" > Pseudo : </label> <input id="pseudoconnect" autocomplete="off" name="pseudoconnect" required="Pseudo Requis /!\" type="text" placeholder="Pseudo"></input> </p> <p> <label for="password" class="youpasswd" data-icon="p"> Mot de passe : </label> <input id="password" autocomplete="off" name="passconnect" required="Mot de passe Requis /!\" type="password" placeholder="Mot de passe"></input> </p> <p class="login button"> <input type="submit" name="form_connexion" value="Se connecter"></input> </p> <p class="change_link">Pas encore inscrit ? <a href="create_account.php" rel="nofollow noopener noreferrer" target="_blank" class="to_register">Inscrit toi !</a><a href="recup.php" rel="nofollow noopener noreferrer" target="_blank" class="to_register">Mot de passe oublié ?</a> </p> </form>
1 réponse
-
Bonjour,
Remplace juste ta requête par celle-ci :$sql = "SELECT * FROM membres WHERE ? IN (pseudo, mail) AND pass = ?";
Xavier-
-
-
@Reivax962
$pseudoconnect = htmlspecialchars(!empty($_POST['pseudoconnect']) ? $_POST['pseudoconnect'] : NULL); $passconnect = htmlspecialchars(!empty($_POST['passconnect']) ? hash("sha512",($_POST['passconnect'])) : NULL); $mailconnect = htmlspecialchars(!empty($_POST['pseudoconnect']) ? $_POST['pseudoconnect'] : NULL); $sql = "SELECT * FROM membres WHERE ? IN (pseudo, mail) AND pass = ?"; $datas = array($pseudoconnect,$mailconnect,$passconnect); try{ $prep= $bdd->prepare($sql); $prep->execute($datas); $a_result = $prep->fetchAll(); $nbResult = !empty($a_result) ? count($a_result) : 0; }catch(Exception $e){ echo " Erreur : " . $e->getMessage(); } $userexist = $nbResult; -
@Utilisateur anonymeBonjour;
Tu n'as pas besoin de redéfinir $mailconnect qui est identique à $pseudoconnect.
Essaie ça :$pseudoconnect = htmlspecialchars(!empty($_POST['pseudoconnect']) ? $_POST['pseudoconnect'] : NULL); $passconnect = htmlspecialchars(!empty($_POST['passconnect']) ? hash("sha512", ($_POST['passconnect'])) : NULL); $sql = "SELECT * FROM membres WHERE ? IN (pseudo, mail) AND pass = ?"; $datas = array($pseudoconnect, $passconnect);
Xavier -
@Reivax962C'est tout bon merci bien :-)
-