par
flexi2202 » 09 nov. 2022, 18:52
Bonjour a tous
pour 'instant j'a un formulaire de connexion qui me permet de me connecter a mon site
avec le mot de passe et le pseudo
Mais j'auais aimer laisser le choix a l'utilisateur afin qu'il puisse se connecter soit avec son pseudo ou alors son adresse email
j'ai essaye plusieurs choses
Mais rien ne fonctionne
Je vous donne mon code
Code : Tout sélectionner
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
//on recupere le lien link pour la redirection vers les autres pages
$link = !empty($_GET['link']) ? $_GET['link'] : NULL;
require_once 'base.php';
if (!empty($_POST['pseudo']) && !empty($_POST['password']))
{
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL;
$password = !empty($_POST['password']) ? $_POST['password'] : NULL;
$email = !empty($_POST['email']) ? $_POST['email'] : NULL;
//préparation de la requête et des variables
//$sql = 'SELECT pseudo, email,id,confirme, password,confirmkey FROM utilisateurs WHERE pseudo = ?';
$sql = 'SELECT pseudo, email,id,confirme, password,confirmkey FROM utilisateurs WHERE pseudo = ? OR email = ?';
$datas = [$pseudo];
//$datas = array($pseudo,$email);
//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();
$row = $requete->rowCount();
$userexit=$requete->fetch();
//si le peusdo est bien dans la base alors on continue sinon on sort
//$datasmail = [$email];
//exécution de la requête
//try{
//$stmt = $bdd->prepare($sql);
//$stmt->execute($datasmail);
//$user = $stmt->fetch();
//}catch(Exception $e){
// en cas d'erreur :
//echo " Erreur ! ".$e->getMessage();
//echo " Les datas : " ;
//print_r($datasmail);
//}
//if (empty($user))
//{header('Location: connexion-site.php?login_err=divers3');
// die();}
if ($data['confirme'] !=1 and $row == 0 )//pseusdo pas bon
{header('Location: connexion-site.php?login_err=divers2');
die();}
//else if
//($data['confirme'] !=0 and $row == 1)//psuedo bon
//{header('Location: connexion-site.php?login_err=divers3');
// die();}
if ($data['confirme'] !=0)
{
if ($row == 1)
{
//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']);
//header('Location: index.php?pseudo=' . $_SESSION['email']);
//sinon on va faire la derniere page visitee
}
else
{
header('location: ' . $_SESSION['link']);
}
die();
}
else
{
header('Location: connexion-site.php?login_err=password');
die();
}
}
else
{
header('Location: connexion-site.php?login_err=already');
die();
}
}
else
{
header('Location: connexion-site.php?login_err=divers');
die();
}
}
?>
Bonjour a tous
pour 'instant j'a un formulaire de connexion qui me permet de me connecter a mon site
avec le mot de passe et le pseudo
Mais j'auais aimer laisser le choix a l'utilisateur afin qu'il puisse se connecter soit avec son pseudo ou alors son adresse email
j'ai essaye plusieurs choses
Mais rien ne fonctionne
Je vous donne mon code
[code]<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
//on recupere le lien link pour la redirection vers les autres pages
$link = !empty($_GET['link']) ? $_GET['link'] : NULL;
require_once 'base.php';
if (!empty($_POST['pseudo']) && !empty($_POST['password']))
{
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL;
$password = !empty($_POST['password']) ? $_POST['password'] : NULL;
$email = !empty($_POST['email']) ? $_POST['email'] : NULL;
//préparation de la requête et des variables
//$sql = 'SELECT pseudo, email,id,confirme, password,confirmkey FROM utilisateurs WHERE pseudo = ?';
$sql = 'SELECT pseudo, email,id,confirme, password,confirmkey FROM utilisateurs WHERE pseudo = ? OR email = ?';
$datas = [$pseudo];
//$datas = array($pseudo,$email);
//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();
$row = $requete->rowCount();
$userexit=$requete->fetch();
//si le peusdo est bien dans la base alors on continue sinon on sort
//$datasmail = [$email];
//exécution de la requête
//try{
//$stmt = $bdd->prepare($sql);
//$stmt->execute($datasmail);
//$user = $stmt->fetch();
//}catch(Exception $e){
// en cas d'erreur :
//echo " Erreur ! ".$e->getMessage();
//echo " Les datas : " ;
//print_r($datasmail);
//}
//if (empty($user))
//{header('Location: connexion-site.php?login_err=divers3');
// die();}
if ($data['confirme'] !=1 and $row == 0 )//pseusdo pas bon
{header('Location: connexion-site.php?login_err=divers2');
die();}
//else if
//($data['confirme'] !=0 and $row == 1)//psuedo bon
//{header('Location: connexion-site.php?login_err=divers3');
// die();}
if ($data['confirme'] !=0)
{
if ($row == 1)
{
//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']);
//header('Location: index.php?pseudo=' . $_SESSION['email']);
//sinon on va faire la derniere page visitee
}
else
{
header('location: ' . $_SESSION['link']);
}
die();
}
else
{
header('Location: connexion-site.php?login_err=password');
die();
}
}
else
{
header('Location: connexion-site.php?login_err=already');
die();
}
}
else
{
header('Location: connexion-site.php?login_err=divers');
die();
}
}
?>
[/code]