Pb session php
Résolu
Laetitia
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
après avoir faire plusieurs recherches sur les sessions, mon code ne fonctionne toujours pas !
J'ai fais session_start() sur chaque début de page (comme ci-après), mon code fonctionne quand je ne suis pas connectée mais une fois connectée, ça me met que je ne suis pas connectée! que dois-je faire?
Merci pour votre aide !
Voici une de mes page :
<?php
session_start();
//si la session n'existe pas, redirection vers index.php
if (!isset($_SESSION['nom']))
{
echo '<a href="index.php" >Veuillez vous connectez !</a>';
}
//on affiche la page voulue
else
{
?>
<HTML>
<HEAD>
<TITLE>Ajout robots</TITLE>
<link rel="stylesheet" href="include/style.css">
</HEAD>
<BODY>
<?php
include ("/var/www/function.php");
require_once ("/var/www/include/auth.inc");
$mysqlLink = connexion(HOST,USER,PWD,BDD);
$nom=$_POST['nom'];
$sql="INSERT INTO robot VALUES ('','".$nom."');";
$jeu=@mysql_query($sql,$mysqlLink);
echo '<div id="ecriture1">';
if ($jeu==true)
{
echo 'Ajout pris en compte<br/><br/>';
}
else
{
echo 'Ajout impossible <br/><br/>';
}
echo '</div>';
}
?>
</BODY>
</HTML>
après avoir faire plusieurs recherches sur les sessions, mon code ne fonctionne toujours pas !
J'ai fais session_start() sur chaque début de page (comme ci-après), mon code fonctionne quand je ne suis pas connectée mais une fois connectée, ça me met que je ne suis pas connectée! que dois-je faire?
Merci pour votre aide !
Voici une de mes page :
<?php
session_start();
//si la session n'existe pas, redirection vers index.php
if (!isset($_SESSION['nom']))
{
echo '<a href="index.php" >Veuillez vous connectez !</a>';
}
//on affiche la page voulue
else
{
?>
<HTML>
<HEAD>
<TITLE>Ajout robots</TITLE>
<link rel="stylesheet" href="include/style.css">
</HEAD>
<BODY>
<?php
include ("/var/www/function.php");
require_once ("/var/www/include/auth.inc");
$mysqlLink = connexion(HOST,USER,PWD,BDD);
$nom=$_POST['nom'];
$sql="INSERT INTO robot VALUES ('','".$nom."');";
$jeu=@mysql_query($sql,$mysqlLink);
echo '<div id="ecriture1">';
if ($jeu==true)
{
echo 'Ajout pris en compte<br/><br/>';
}
else
{
echo 'Ajout impossible <br/><br/>';
}
echo '</div>';
}
?>
</BODY>
</HTML>
6 réponses
-
Est-ce que ta variable de session "nom" est bien définie au moment de l'identification ?
-
Bonjour
Quel est le code sur la page index.php ?
Ou declare tu $_SESSION['nom'] lors de l'identification ?-
ma page index sert à l'utilisateur d'entrer son nom d'utilisateur et son mot de passe, cette identification m'envoie sur identificationbis.php et c'est dans cette page que j'ai déclaré $_
<HTML>
<HEAD>
<TITLE>Menu et Planning</TITLE>
<link rel="stylesheet" href="include/style.css">
</HEAD>
<BODY>
<?php
/* On vérifie si le nom d'utilisateur et le mot de passe entrés
* dans "index.php" correspondent à quelqu'un dans la base. */
include ("/var/www/function.php");
require_once ("/var/www/include/auth.inc");
$mysqlLink = connexion(HOST,USER,PWD,BDD);
if (isset ($_session['nom']))
{
$nom=$_session['nom'];
}
if ($_POST['nom']!=NULL and $_POST['mdp']!=NULL)
{
$nom=$_POST['nom'];
$mdp=$_POST['mdp'];
$sql= "select * from user;";
$jeu=@mysql_query($sql,$mysqlLink);
while ($champ=@mysql_fetch_array($jeu))
{
if ($nom==$champ[2] and $mdp==$champ[3])
{
$_SESSION['nom']=$champ[2];
if (isset ($_SESSION['nom']))
{
$conn=1;
echo '<table>';
echo '<tr>';
echo '<td width="50"> <a href="stb.php" target="_blank">STB</a> </td>';
echo '<td width="50"> <a href="user.php" target="_blank">Utilisateurs</a> </td>';
echo '<td width="50"> <a href="firmware.php" target="_blank">Firmware</a> </td>';
echo '<td width="50"> <a href="acces.php" target="_blank">Accès</a> </td>';
echo '</tr>';
echo '<tr>';
echo '<td width="50"> <a href="robot.php" target="_blank">Robots</a> </td>';
echo '<td width="50"> <a href="typetest.php" target="_blank">Type de test</a> </td>';
echo '<td width="50"> <a href="reservation.php" target="_blank">Réservation</a> </td>';
echo '<td width="50"> <a href="campagne.php" target="_blank">Campagne</a> </td>';
echo '</tr>';
echo '</table>';
include ("/var/www/planning.php");
}
else
{
echo 'problème de connexion';
}
}
}
if (@$conn!=1)
{
echo '<div id="ecriture1">';
echo 'Identifiant ou mot de passe incorrects !<br/><br/>';
echo '</div>';
}
}
else
{
echo 'problème de session';
}
deconnexion($mysqlLink);
?>
</BODY>
</HTML>SESSION
-
-
fait un
echo $_SESSION['nom'];
dans les pages ou tu est censée devoir etre connecté. pitetre ya un ob avant cette page -
Bonjour,
Si la piste de Impli n'est pas la bonne, il faut aussi vérifier l'état de ton php.ini, et plus précisément de session.auto_start.
C'est assez piégeux : si session_autostart vaut 1, alors la session est débutée automatiquement quand la page est appelée, sans attendre ton session_start().
Le problème ? C'est que lancer session_start() alors qu'une session est déjà ouverte va écraser la session en cours, et les variables qui vont avec.
Mais honnêtement, je pense comme Impli que le problème vient plutôt du moment où tu initialises ta variable de session "nom" ; moment qui n'apparaît pas dans le code que tu donnes.
Xavier -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Dans ta page identificationbis.php, le session_start est inclu par les fichier auth ou fonction ou alors il n'y en a pas ?
Car si tu met$_SESSION['nom'] = 'toto'
Alors que tu n'a pas fais session_start() avant c'est pas top je crois-
j'en ai pas mis,
je met juste un session_start() ou je mets
<?php
session_start();
//si la session n'existe pas, redirection vers index.php
if (!isset($_SESSION['nom']))
{
echo '<a href="index.php" >Veuillez vous connectez !</a>';
}
//on affiche la page voulue
else
{
pcq j'ai essayé la deuxième solution et ça ne voulait plus offrir mon menu !
-
-
Effectivement, il manque le session_start() sur ta page d'identification.
@Pilow : Même si le session_start() est inclus par les fichiers, ce n'est pas correct car cette fonction doit être appelée avant tout code HTML et PHP.