Pb session php
Résolu
Laetitia
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
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>
A voir également:
- Pb session php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
- Session invalide ou obsolète ✓ - Forum finances
6 réponses
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
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
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
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 !