Login mail et pseudonyme
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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-
-
Bonjour,
A priori, ça veut dire que dans ton ->execute tu ne passes pas un tableau de taille 2 ?
Remontre ton code ?
Xavier$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;- Bonjour;
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
-