par
flexi2202 » 10 mai 2022, 21:56
bonjour a tous
voila mon système de confirmation par mail fonctionne
j'essaye a présent de refouler les utilisateurs lors de la connexion qui ne sont pas activer
j'essaye avec ce code mais cela ne fonctionne pas
j'ai cette erreur
Notice: Trying to access array offset on value of type bool in /home/u434600775/domains/pecheperle.be/public_html/phil/connexion.php on line 42
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;
//$referer = ($_SERVER['HTTP_REFERER']);
//echo $referer ;
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;
// $pseudo = htmlspecialchars($_POST['pseudo']);
//$password = htmlspecialchars($_POST['password']);
// $check = $bdd->prepare('SELECT pseudo, email,id, password FROM utilisateurs WHERE pseudo = ?');
//$check->execute(array( $pseudo ));
//$data = $check->fetch();
//$row = $check->rowCount();
//préparation de la requête et des variables
$sql = 'SELECT pseudo, email,id, password FROM utilisateurs WHERE pseudo = ?';
$datas = [$pseudo];
//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
if ($userexit['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']
);
$_SESSION['id'] = $data['id'];
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['email'] = $data['email'];
//on test la variable link si elle est vide on va vers index
if (empty($_SESSION['link']))
{
header('Location: index.php?pseudo=' . $_SESSION['pseudo']);
//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
{
echo"compte pas activer ";
}
}
?>`
bonjour a tous
voila mon système de confirmation par mail fonctionne
j'essaye a présent de refouler les utilisateurs lors de la connexion qui ne sont pas activer
j'essaye avec ce code mais cela ne fonctionne pas
j'ai cette erreur
Notice: Trying to access array offset on value of type bool in /home/u434600775/domains/pecheperle.be/public_html/phil/connexion.php on line 42
[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;
//$referer = ($_SERVER['HTTP_REFERER']);
//echo $referer ;
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;
// $pseudo = htmlspecialchars($_POST['pseudo']);
//$password = htmlspecialchars($_POST['password']);
// $check = $bdd->prepare('SELECT pseudo, email,id, password FROM utilisateurs WHERE pseudo = ?');
//$check->execute(array( $pseudo ));
//$data = $check->fetch();
//$row = $check->rowCount();
//préparation de la requête et des variables
$sql = 'SELECT pseudo, email,id, password FROM utilisateurs WHERE pseudo = ?';
$datas = [$pseudo];
//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
if ($userexit['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']
);
$_SESSION['id'] = $data['id'];
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['email'] = $data['email'];
//on test la variable link si elle est vide on va vers index
if (empty($_SESSION['link']))
{
header('Location: index.php?pseudo=' . $_SESSION['pseudo']);
//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
{
echo"compte pas activer ";
}
}
?>`[/code]