par
electralite » 27 août 2018, 10:53
Salut, j'ai un gros soucis, mes variables de session se perdent quand j'actualise ma page, les session_start sont bien présentes sur toutes le pages mais rien n'y fait, je me connecte sur mon site, pour le moment tout fonctionne, puis des que j'actualise ca me fais l'effet d'une session_destroy qui est nulle part dans mon code... De plus les cookies quand je met avec setcookies ne se créent même pas..
J'ai vraiment besoin d'aide sir ce coup la ...
Mon code :
<?php
session_start();
$path = $_SERVER['PHP_SELF'];
$page = basename ($path);
$host_name = 'db*********************';
$database = 'db************';
$user_name = 'db*********';
$password = '**********';
$dbcomptes = null;
try {
$dbcomptes = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password);
} catch (PDOException $e) {
echo "Erreur!: " . $e->getMessage() . "<br/>";
// die();
}
$MessageLogIn = '';
$MessageRegister = '';
if(!empty($_POST['EmailLogin']) && !empty($_POST['PasswordLogin']))
{
$login = $dbcomptes->prepare('SELECT * FROM comptes WHERE email = ?');
$login->execute(array($_POST['EmailLogin']));
$donnees = $login->fetch();
$password = $_POST['PasswordLogin'];
$isPasswordCorrect = password_verify($password, $donnees['password']);
if ($isPasswordCorrect)
{
$_SESSION['Prenom'] = $donnees['prenom'];
$_SESSION['Nom'] = $donnees['nom'];
$_SESSION['id'] = $donnees['id'];
$_SESSION['Email'] = $donnees['email'];
$_SESSION['Connected'] = 1;
setcookie('email', $donnees['email'], time() + 2*3600, null, null, false, true);
setcookie('id', $donnees['id'], time() + 2*3600, null, null, false, true);
setcookie('prenom', $donnees['prenom'], time() + 2*3600, null, null, false, true);
setcookie('nom', $donnees['nom'], time() + 2*3600, null, null, false, true);
setcookie('pass', $donnees['password'], time() + 2*3600, null, null, false, true);
setcookie('connect', 1, time() + 2*3600, null, null, false, true);
$MessageLogIn = 'Vous étes bien connécté ! Bienvenue ' . $_SESSION['Prenom'] . '!';
}
else
{
$MessageLogIn = 'Le couple mot de passse / E-Mail ne correspond pas !';
}
}
}
elseif (!empty($_POST['Prenom']) && !empty($_POST['Nom']) && !empty($_POST['Email']) && !empty($_POST['Password']) && !empty($_POST['PasswordRepeat']))
{
$prenom = $_POST['Prenom'];
$nom = $_POST['Nom'];
$email = $_POST['Email'];
$passwd = $_POST['Password'];
$passwdRepeat = $_POST['PasswordRepeat'];
$register = $dbcomptes->prepare('SELECT EXISTS (SELECT * FROM comptes WHERE email= ?)');
$register->execute(array($email));
$resultat = $register->fetchColumn();
if($resultat == 1)
{
$MessageRegister = 'L\'e-mail est déjà utilisé !';
}
else
{
if ($passwd == $passwdRepeat){
$password = password_hash($passwd, PASSWORD_DEFAULT);
$req = $dbcomptes->prepare('INSERT INTO comptes(password, email, prenom, nom, perm_lvl) VALUES(:password, :email, :prenom, :nom, :perm_lvl)');
$req->execute(array(
'password' => $password,
'email' => $email,
'prenom' => $prenom,
'nom' => $nom,
'perm_lvl' => 1
));
$MessageRegister = 'Votre compte est bien crée !';
}
else {
$MessageRegister = 'Les deux mots de passe ne correspondent pas !';
}
}
}
elseif (!empty($_POST['Prenom']) || !empty($_POST['Nom']) || !empty($_POST['Email']) || !empty($_POST['Password']) || !empty($_POST['EmailLogin']) || !empty($_POST['PasswordLogin']))
{
$MessageLogIn = 'Veuillez entrer tout les parametres !';
$MessageRegister = $MessageLogIn;
}
?>
je l'utilise ici pour mes boutons déconnexion ect. à savoir que la page logout.php n'est jamais sollicitée sauf si on appuie sur déconnexion..
<?php
if (!empty($_SESSION['id']))
{
$nom = $_SESSION['Nom'];
$prenom = $_SESSION['Prenom'];
$id = $_SESSION['id'];
$email = $_SESSION['Email'];
echo '<li><a style="border-radius: 6px; background-color: red;" href="logout" class="play-icon">Logout</a></li>';
echo '<li><a style="border-radius: 6px; background-color: orange;" href="panel/index" data-toggle="modal" class="play-icon">Gestion</a></li>';
echo '<li><a style="border-radius: 6px; background-color: grey; border: 1px solid black;" href="#" data-toggle="modal" class="play-icon">' . $prenom . '</a></li>';
}
else
{
echo '<li><a href="#myModal2" data-toggle="modal" class="play-icon">Connexion</a></li>';
}
?>
Merci d'avance !
Salut, j'ai un gros soucis, mes variables de session se perdent quand j'actualise ma page, les session_start sont bien présentes sur toutes le pages mais rien n'y fait, je me connecte sur mon site, pour le moment tout fonctionne, puis des que j'actualise ca me fais l'effet d'une session_destroy qui est nulle part dans mon code... De plus les cookies quand je met avec setcookies ne se créent même pas..
J'ai vraiment besoin d'aide sir ce coup la ...
Mon code :
[PHP]
<?php
session_start();
$path = $_SERVER['PHP_SELF'];
$page = basename ($path);
$host_name = 'db*********************';
$database = 'db************';
$user_name = 'db*********';
$password = '**********';
$dbcomptes = null;
try {
$dbcomptes = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password);
} catch (PDOException $e) {
echo "Erreur!: " . $e->getMessage() . "<br/>";
// die();
}
$MessageLogIn = '';
$MessageRegister = '';
if(!empty($_POST['EmailLogin']) && !empty($_POST['PasswordLogin']))
{
$login = $dbcomptes->prepare('SELECT * FROM comptes WHERE email = ?');
$login->execute(array($_POST['EmailLogin']));
$donnees = $login->fetch();
$password = $_POST['PasswordLogin'];
$isPasswordCorrect = password_verify($password, $donnees['password']);
if ($isPasswordCorrect)
{
$_SESSION['Prenom'] = $donnees['prenom'];
$_SESSION['Nom'] = $donnees['nom'];
$_SESSION['id'] = $donnees['id'];
$_SESSION['Email'] = $donnees['email'];
$_SESSION['Connected'] = 1;
setcookie('email', $donnees['email'], time() + 2*3600, null, null, false, true);
setcookie('id', $donnees['id'], time() + 2*3600, null, null, false, true);
setcookie('prenom', $donnees['prenom'], time() + 2*3600, null, null, false, true);
setcookie('nom', $donnees['nom'], time() + 2*3600, null, null, false, true);
setcookie('pass', $donnees['password'], time() + 2*3600, null, null, false, true);
setcookie('connect', 1, time() + 2*3600, null, null, false, true);
$MessageLogIn = 'Vous étes bien connécté ! Bienvenue ' . $_SESSION['Prenom'] . '!';
}
else
{
$MessageLogIn = 'Le couple mot de passse / E-Mail ne correspond pas !';
}
}
}
elseif (!empty($_POST['Prenom']) && !empty($_POST['Nom']) && !empty($_POST['Email']) && !empty($_POST['Password']) && !empty($_POST['PasswordRepeat']))
{
$prenom = $_POST['Prenom'];
$nom = $_POST['Nom'];
$email = $_POST['Email'];
$passwd = $_POST['Password'];
$passwdRepeat = $_POST['PasswordRepeat'];
$register = $dbcomptes->prepare('SELECT EXISTS (SELECT * FROM comptes WHERE email= ?)');
$register->execute(array($email));
$resultat = $register->fetchColumn();
if($resultat == 1)
{
$MessageRegister = 'L\'e-mail est déjà utilisé !';
}
else
{
if ($passwd == $passwdRepeat){
$password = password_hash($passwd, PASSWORD_DEFAULT);
$req = $dbcomptes->prepare('INSERT INTO comptes(password, email, prenom, nom, perm_lvl) VALUES(:password, :email, :prenom, :nom, :perm_lvl)');
$req->execute(array(
'password' => $password,
'email' => $email,
'prenom' => $prenom,
'nom' => $nom,
'perm_lvl' => 1
));
$MessageRegister = 'Votre compte est bien crée !';
}
else {
$MessageRegister = 'Les deux mots de passe ne correspondent pas !';
}
}
}
elseif (!empty($_POST['Prenom']) || !empty($_POST['Nom']) || !empty($_POST['Email']) || !empty($_POST['Password']) || !empty($_POST['EmailLogin']) || !empty($_POST['PasswordLogin']))
{
$MessageLogIn = 'Veuillez entrer tout les parametres !';
$MessageRegister = $MessageLogIn;
}
?>
[/PHP]
je l'utilise ici pour mes boutons déconnexion ect. à savoir que la page logout.php n'est jamais sollicitée sauf si on appuie sur déconnexion..
[PHP]
<?php
if (!empty($_SESSION['id']))
{
$nom = $_SESSION['Nom'];
$prenom = $_SESSION['Prenom'];
$id = $_SESSION['id'];
$email = $_SESSION['Email'];
echo '<li><a style="border-radius: 6px; background-color: red;" href="logout" class="play-icon">Logout</a></li>';
echo '<li><a style="border-radius: 6px; background-color: orange;" href="panel/index" data-toggle="modal" class="play-icon">Gestion</a></li>';
echo '<li><a style="border-radius: 6px; background-color: grey; border: 1px solid black;" href="#" data-toggle="modal" class="play-icon">' . $prenom . '</a></li>';
}
else
{
echo '<li><a href="#myModal2" data-toggle="modal" class="play-icon">Connexion</a></li>';
}
?>
[/PHP]
Merci d'avance !