Probleme de session

Signaler
Messages postés
163
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
27 janvier 2016
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
hello all;

j'ai un vrai probleme avec les sessions, j'ai trouvé au forum la même question que la mienne mais malhereusement pas de réponse.

Warning: Cannot send session cache limiter - headers already sent (output started at c:\site_ispat\m\identification.php:1) in c:\Projet\verif_identification.php on line 2

mon code est le suivant:

<?
session_start();
//verif si le pseudo ou le login est vide::::,,,

if
( empty($login)or empty($pass))
{
echo "un des champs est vide, veuillez remplir les deux " ;
exit();
}
else
{
echo "les deux champs ne sont pas vides" ;

//ici si ce code fonctionne je dois mettre session_register("login");
//et le reste de mon code mais...

}

?>

c'est le plus simple des codes, pleeease help me..

@ -:)

Zebra

6 réponses

Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

c'es très simple:
tu ne peux pas faire appel à des fonctions tels que session_* après un "echo" (ou tout autre envoi vers le navigateur...)!!!
En clair: tu doit gérer tes inscriptions dans le tableau $_SESSIOn AVANT tout de demander l'affichage de quelque chose!
Ou sinon tu peux appeler la fonction ob_start au début (pour commencer à stocker dans un buffer), puis ton code tel que tu le montre sur ce forum (tu peux faire appel à la fonciton echo dans ce cas-là!), puis ob_flush pour envoyer le buffer vers le navigateur...

Autre chose: je te conseille d'utiliser $_SESSION[] plutot que session_register(): perso,j'ai souvent eu des pb avec cette dernière...

Que la Force soit avec toi, Jeune Padawan!!!
Messages postés
163
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
27 janvier 2016

mon probleme est que je n'est pas encore fais de session_register mais uniquement session_start();

session_register je l'ajoute dans le cas où ce petit code fonctionne.....

@ -:)

Zebra
Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

ouai mais ton session_register se retrouve dans le 'if'? et meme il se retrouve après "echo" donc pb!!
Les 2 seules solutions sont:
_ Pas de echo
_ utilisation des fonctions ob_start et ob_flush

Moi j'ai eu recours à un système qui en fait était le principe du ob_start/ob_flush: je créai une variable '$tabfinal' dans laquelle j'ajoutai le résultat de mon code au fur et à mesure de son exécution, puis j'affichai $tabfinal à la fin de mon code... Seulement je ne connaissai pas l'existence de ob_start, c'est pour ca que j'ai utilisé ce système...

Que la Force soit avec toi, Jeune Padawan!!!
Messages postés
163
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
27 janvier 2016

je crois que j'ai mal exposé mon pb,,

mon programme et le suivant:
<?
session_start();
//verif si le pseudo ou le login est vide::::,,,

if
( empty($login)or empty($pass))
{
echo "un des champs est vide, veuillez remplir les deux " ;
exit();
}
else
{
echo "les deux champs ne sont pas vides" ;

}

?>

ce petit morceau ne fonctionne pas........?????
le suite je n'est pas encore faite, si cela ne fonctionne pas je ne peux pas continuer, je crois que cette fois c'est clair.....

@ -:)

Zebra
Messages postés
144
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
4 janvier 2010

Salut

Perso, je ne vois pas ou est le problème. En théorie ton code fonctionne parfaitement.

Juste un test peut-être :

<?
session_start();
?>

Fonctionne t-il tout seul ?

Sinon ça vient peut être de l'hébergement : Chez toi ? ou chez free/ multimania ou autre ?

Pasque chez free, il faut un rep sessions...

Mais je ne crois pas que cela vienne de la... mais c'est quand même à vérifier...

Voila

Florian
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut ;-)

Remplace
mon programme et le suivant:
<?
session_start();
//verif si le pseudo ou le login est vide::::,,,

if
( empty($login)or empty($pass))
{
echo "un des champs est vide, veuillez remplir les deux " ;
exit();
}
else
{
echo "les deux champs ne sont pas vides" ;

}

?>



par ça :

mon programme et le suivant:
<?
ob_start();
session_start();
//verif si le pseudo ou le login est vide::::,,,

if
( empty($login)or empty($pass))
{
echo "un des champs est vide, veuillez remplir les deux " ;
ob_end_flush();
exit;
}
else
{
echo "les deux champs ne sont pas vides" ;

}
ob_end_flush();
?>



a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique