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
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
A voir également:
- Pb session php
- Easy php - Télécharger - Divers Web & Internet
- Facebook session expirée ✓ - Forum Facebook
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Jeux vidéo
- Estelle vient de verrouiller sa session d’ordinateur. que peut-on dire ? ✓ - Forum Windows
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
9 déc. 2009 à 16:15
Est-ce que ta variable de session "nom" est bien définie au moment de l'identification ?
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
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 ?
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
<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
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
9 déc. 2009 à 16:32
Bonjour,
Pas de session_start() sur identificationbis.php ?
Xavier
Pas de session_start() sur identificationbis.php ?
Xavier
fait un
echo $_SESSION['nom'];dans les pages ou tu est censée devoir etre connecté. pitetre ya un ob avant cette page
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
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
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
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
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...
C'est une piste à investiguer si rien d'autre ne fonctionne...
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
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
Alors que tu n'a pas fais session_start() avant c'est pas top je crois
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 !
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 !
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
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.
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.
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
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 : )
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 : )
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
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 =)
ça fait depuis hier que j'étais bloquée sur ce problème
Merci beaucoup pour votre aide =)
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
9 déc. 2009 à 16:41
Ravi d'avoir pu t'aider.
N'oubli pas noter le topic comme résolu ; )
N'oubli pas noter le topic comme résolu ; )
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
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.
@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.