Session en php
deb
-
deb -
deb -
salut,
je voudrais inclure les sesions dans mon site mais j'ai encore un peut de mal.
en fait, qd une personne entrera sur mon site, il devra remplir une fenetre de connexion ( il sera soit admin soit client)
il sera redirigé vers sa page en fonction de son statut.... là j'arrive à voir, mais c'est aores, comment on fait pour savoir sur les autres pages si c'est un client ou un administrateur ???
merci !
je voudrais inclure les sesions dans mon site mais j'ai encore un peut de mal.
en fait, qd une personne entrera sur mon site, il devra remplir une fenetre de connexion ( il sera soit admin soit client)
il sera redirigé vers sa page en fonction de son statut.... là j'arrive à voir, mais c'est aores, comment on fait pour savoir sur les autres pages si c'est un client ou un administrateur ???
merci !
A voir également:
- Session en 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
52 réponses
et ben, ça ne me renvoie sur aucune page, ça me réaffiche la page de cnx avec " login ou mot de passe incorrects ! "
Et est-ce que ton Login et Passwd sont corrects ?
Ta table est-elle rempli ?
Parce que là, la requête s'exécute bien (enfin, si tu as copié soignesement mon code) mais il ne trouve pas d'utilisateur avec $login et $pass.
Affiche ta requête pour vérifier si elle est bonne :
print $query;
si $login et/ou $pass sont vides c'est que tu as mal récupéré tes variables.
Ta table est-elle rempli ?
Parce que là, la requête s'exécute bien (enfin, si tu as copié soignesement mon code) mais il ne trouve pas d'utilisateur avec $login et $pass.
Affiche ta requête pour vérifier si elle est bonne :
print $query;
si $login et/ou $pass sont vides c'est que tu as mal récupéré tes variables.
et voila t'avé raison, maintenant, je rentre mais voila ce que j'ai .... un msg d'erreur !!! (ça t'étonne !)
Warning: Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp\www\suivi courrier\connexion.php:9) in c:\program files\easyphp\www\suivi courrier\connexion.php on line 17
Warning: Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp\www\suivi courrier\connexion.php:9) in c:\program files\easyphp\www\suivi courrier\connexion.php on line 17
Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\suivi courrier\connexion.php:9) in c:\program files\easyphp\www\suivi courrier\connexion.php on line 25
Warning: Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp\www\suivi courrier\connexion.php:9) in c:\program files\easyphp\www\suivi courrier\connexion.php on line 17
Warning: Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp\www\suivi courrier\connexion.php:9) in c:\program files\easyphp\www\suivi courrier\connexion.php on line 17
Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\suivi courrier\connexion.php:9) in c:\program files\easyphp\www\suivi courrier\connexion.php on line 25
non, non !!! chui trop con !! en fait c'est parce que j'avait fait un print avant les header !!! du coup maintenant, il ne me reste plus qu'a faire les bouts de scripts pour les sessions des autres pages !!! ah !!! merci bcp !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon et ben, c'était une fausse joie .... en fait, quand je me logue en admin, je devrait tomber sur la page administrateur.... et bien non !!! je tombe sur la page client !
en fait dans ma bd, j'ai une table utilisateurs avec :
- loginuti
- nomuti
- passworduti
- droituti
et droituti, j'ai mis soit client soit admin
- loginuti
- nomuti
- passworduti
- droituti
et droituti, j'ai mis soit client soit admin
j'ai essayer de faire autre chose mais ça ne marche pas, y'a juste une page blanche qui s'affiche !
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne['droituti'];
if ($_SESSION['compte'] == 'admin')
{
header("location:page_adming.php");
}
else
{
if ($_SESSION['compte'] == 'client')
{
header("location:page_clientg.php");
}
}
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne['droituti'];
if ($_SESSION['compte'] == 'admin')
{
header("location:page_adming.php");
}
else
{
if ($_SESSION['compte'] == 'client')
{
header("location:page_clientg.php");
}
}
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
et ça :
Puis dans tes autres pages (page_adming.php et page_clientg.php) fais :
<?php
session_start();
if ($_SESSION['compte'] == 'admin')
{
// Action pour un Admin
}
else
{
// Action pour un client
}
il faut le mettre au tout debut du code ( meme html ???) ou ça n'a pas d'importance ???
Puis dans tes autres pages (page_adming.php et page_clientg.php) fais :
<?php
session_start();
if ($_SESSION['compte'] == 'admin')
{
// Action pour un Admin
}
else
{
// Action pour un client
}
il faut le mettre au tout debut du code ( meme html ???) ou ça n'a pas d'importance ???
la sessions_start(), comme les header doivent etre envoye avant toute autre affichage. donc a mettre imperativement avant le html.
Pour débugguer, fait des PRINT/ECHO de tes variables pour savoir ce qu'elles contiennent et trouver ce qui est anormal.
echo $ligne['droituti'];
echo $_SESSION['compte'];
...
Je ne pourrais plus t'aider, je pars pendant une semaine...
echo $ligne['droituti'];
echo $_SESSION['compte'];
...
Je ne pourrais plus t'aider, je pars pendant une semaine...
mais je croyait qu'on ne pouvait pas avec les header !!!
ce que je ne comprends pas c'est pourquoi quand je me logue en admin (dans ma table utilisateur , j'ai un champs droituti qui contient admin ou client) il me renvoie sur la page client ?
ce que je ne comprends pas c'est pourquoi quand je me logue en admin (dans ma table utilisateur , j'ai un champs droituti qui contient admin ou client) il me renvoie sur la page client ?
Effectivement.
Si tu print, le HEADER() ne s'effectuera pas et un warning s'affichera pour le dire.
Mais ceci est pour debugguer, donc provisoire.
Tu affiches, tu vois ce que contiennent tes variables, si ça te convient, tu enlève les PRINT et tu essai de nouveau en trouvant qu'est-ce qui cloche d'autre.
Si tu print, le HEADER() ne s'effectuera pas et un warning s'affichera pour le dire.
Mais ceci est pour debugguer, donc provisoire.
Tu affiches, tu vois ce que contiennent tes variables, si ça te convient, tu enlève les PRINT et tu essai de nouveau en trouvant qu'est-ce qui cloche d'autre.
j'ai affiché une par une les variables et ya qqchose qui me chagrine ... $exist est à 1 ! c'est normal ou pas ? et apres on met
if ($exist==1){
if ($exist==1){
Non, d'après le code que tu montres le 20/02/2003 à 15:49 , l'indentation est correcte :
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne['droituti'];
if ($_SESSION['compte'] == 'admin')
{
header("location:page_adming.php");
}
else
{
if ($_SESSION['compte'] == 'client')
{
header("location:page_clientg.php");
}
}
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne['droituti'];
if ($_SESSION['compte'] == 'admin')
{
header("location:page_adming.php");
}
else
{
if ($_SESSION['compte'] == 'client')
{
header("location:page_clientg.php");
}
}
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
dis-moi ce qui est affiche chez toi avec ca:
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne['droituti'];
echo "query = ".$query."<br>";
echo "variable de session = " . $_SESSION['compte']:
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
ton $_SESSION['compte'] ne vaut ni admin ni client. cela vient soit de la requete, soit du champ entre dans ta db (majuscule, espace)
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne['droituti'];
echo "query = ".$query."<br>";
echo "variable de session = " . $_SESSION['compte']:
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
ton $_SESSION['compte'] ne vaut ni admin ni client. cela vient soit de la requete, soit du champ entre dans ta db (majuscule, espace)