PHP: Variable session dans une condition

Fermé
Signaler
-
 Psyka92 -
Bonjour,

Je suis débutant en php et j'ai un petit problème, j'essaye de faire un site sur lequel on peu se connecter avec un compte, préalablement enregistrer sur une base de donnée.
j'ai une première page index qui envoi d'abord sur un petit fichier php qui met la variable a 0 et qui renvoi sur la base du site (tous se passe sur la base).

le petit fichier php :

<?php
session_start();
$_SESSION['loguer'] = "0";
header('Location: base.php');
?>

rien de sorcier.
ensuite voici les commande importantes de la base pour mon problème :

<?php
if($_SESSION['loguer'] = 1)
{
include "affichInfo.php";
echo '<BR>';
echo $_SESSION['loguer'];
}
elseif ($_SESSION['loguer'] = 0)
{
include "login.html";
echo '<BR>';
echo $_SESSION['loguer'];
}
else
{
echo "Une erreur est survenus veuillez recommencer s'il vous plais.";
}
?>

ici je veut que s'affiche, soit la parti affichinfo si je suis déjà connecter, soit login si je ne me suis pas encore connecter. Le problème vient du fait que la variable se met automatiquement sur ma première condition, ici sa affichera toujours affichinfo.php
et si j'inverse l'ordre de mes conditions comme sa :

<?php
if($_SESSION['loguer'] = 0)
{
include "login.html";
echo '<BR>';
echo $_SESSION['loguer'];
}
elseif ($_SESSION['loguer'] = 1
{
include "affichInfo.php";
echo '<BR>';
echo $_SESSION['loguer'];
}
else
{
echo "Une erreur est survenus veuillez recommencer s'il vous plais.";
}
?>

Cela affichera login.php uniquement pourtant dans le fichier login.php j'ai une commande qui met la variable à 1 si le pseudo existe bien sur la table mysql,
en gros quelque soit ma première condition elle se valide automatiquement ............

aidez moi pls

2 réponses

Messages postés
571
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
18 avril 2018
61
Salut c'est un double "==" pour cette condition:
f($_SESSION['loguer'] == 0) 
0
lol oki merci ^^ mais bon enfaite sa ne résous que la moitié du problème ^^
maintenant ma condition marche mais elle ne passe jamais a 1 ^^ pourtant dans le fichier que j'ai fait qui vérifie le login et le mdp j'ai rajouté :

$_SESSION['loguer'] = "1";

sa donne sa :

<?php
// On démarre la session
session_start();
$loginOK = false;
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {
extract($_POST); // je vous renvoie à la doc de cette fonction
// On va chercher le mot de passe afférent à ce login
include('comysql.php');
$sql = "SELECT * FROM clients_ogame2 WHERE login = '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);
// On vérifie que son mot de passe est correct
if ($password == $data['mdp']) {
$loginOK = true;
$_SESSION['loguer'] = "1";
}
}
}
// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['age'] = $data['age'];
$_SESSION['sexe'] = $data['sexe'];
header('Location: base.php');
}
else {
echo "<font face=arial size=4 color=black>Une Erreur est survenus veuillez cliquez <a href=base.php>ici</a> pour réesseyer.";
}

?>

si quelqu'un peu m'aider je le remercie d'avance :)
0