Session en php

Fermé
deb - 19 févr. 2003 à 11:44
 deb - 24 févr. 2003 à 15:12
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 !

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 ! "
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
20 févr. 2003 à 12:28
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.
0
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
0
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 !!!
0

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 !
0
en fait dans ma bd, j'ai une table utilisateurs avec :
- loginuti
- nomuti
- passworduti
- droituti

et droituti, j'ai mis soit client soit admin
0
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");
}
0
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 ???
0
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
21 févr. 2003 à 03:08
la sessions_start(), comme les header doivent etre envoye avant toute autre affichage. donc a mettre imperativement avant le html.
0
et pourquoi est ce que je n'arrive qu'a me loguer en client et pas en admin ??
0
yoo hou, vous etes là ???
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
21 févr. 2003 à 11:30
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...
0
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 ?
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
21 févr. 2003 à 11:45
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.
0
et ça peut pas etre parce que j'ai deux else a la suite ???
0
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){
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
21 févr. 2003 à 11:58
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");
}
0
bon, alors j'ai essayé mais j'ai une page blanche ... pourquoi ???
0
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
21 févr. 2003 à 12:21
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)
0
et ben ça me met ça :
query = SELECT * FROM utilisateurs WHERE loginuti = 'admin' AND passworduti = 'admin'
variable de session =

apparement ya rien dans la variable de session...
et pourtant, je peux "rentrer" en tant que client !
0