Pb session php

Résolu/Fermé
Laetitia - 9 déc. 2009 à 16:08
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 9 déc. 2009 à 16:44
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>

6 réponses

Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34
9 déc. 2009 à 16:15
Est-ce que ta variable de session "nom" est bien définie au moment de l'identification ?
0
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
9 déc. 2009 à 16:15
Bonjour

Quel est le code sur la page index.php ?
Ou declare tu $_SESSION['nom'] lors de l'identification ?
0
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
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > Laetitia
9 déc. 2009 à 16:32
Bonjour,

Pas de session_start() sur identificationbis.php ?

Xavier
0
Babou-_-linet
9 déc. 2009 à 16:17
fait un
echo $_SESSION['nom'];
dans les pages ou tu est censée devoir etre connecté. pitetre ya un ob avant cette page
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
9 déc. 2009 à 16:26
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
0
comment ça initialisé ma variable de session? désolé mais je commence avec les sessions et la je suis un peu embrouillée :s
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > Laetitia
9 déc. 2009 à 16:44
Pas de panique, je parle d'un cas très particulier qui n'apparaît pas dans une installation par défaut de php ^^
C'est une piste à investiguer si rien d'autre ne fonctionne...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
9 déc. 2009 à 16:31
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
0
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 !
0
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71 > Laetitia
9 déc. 2009 à 16:34
Met le au debut de cette page alors

Tu initialise ta variable $_SESSION['nom'] dans le vide la

Il faut que

1/ tu ouvre une session
2/ tu initialise des variables dans ta session

La tu n'a aucun session ouverte.
0
Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34 > Laetitia
9 déc. 2009 à 16:35
Un simple session_start() suffit.

Ta page ne peut pas créer de variable de session si tu le lui précises pas dès le début qu'elle doit ouvrir une session : )
0
Laetitia > Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013
9 déc. 2009 à 16:38
merci beaucoup Pillow et Impli, ça fonctionne enfin !
ça fait depuis hier que j'étais bloquée sur ce problème
Merci beaucoup pour votre aide =)
0
Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34 > Laetitia
9 déc. 2009 à 16:41
Ravi d'avoir pu t'aider.

N'oubli pas noter le topic comme résolu ; )
0
Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34
9 déc. 2009 à 16:34
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.
0