Variable de session

berserv
Invité n'ayant pas de compte PHPfrance

16 févr. 2007, 11:07

J'utilise des variables de session et donc la commande session_start().
Lorsque j'utilise les fléches (page précédente et page suivante de mon navigateur internet explorer), si j'arrive sur la page contenant session_start(), le navigateur m'affiche un message d'erreur sur la page.
Pourtant session_start() est bien placé avant tout code html.

Merci de bien vouloir me dire le pourquoi de ce problème.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 févr. 2007, 11:20

Des bouts de code seraient utiles...

Et quelles sont les erreurs indiquées ?

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2007, 12:04

Code : Tout sélectionner

<? //Démarrage de la session //----------------------- session_start(); ?> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <? //Création des variables de session //********************************* session_is_registered("nom") echo..... ?> </body> </html>
[/php]

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 févr. 2007, 12:25

Quelle est l'erreur ?

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2007, 12:36

erreur sur la page ou page inconnue

ViPHP
ViPHP | 1961 Messages

16 févr. 2007, 12:46

Bonjour,

Tu ne devrais pas utiliser les "short_tag" pour PHP, tu riques d'avaoir des surprises sur certains serveurs et à tous les coups si tu utilises XML ou XHTML.

Tu ne devrais pas utiliser session_is_registered(), il est préférable d'utiliser isset($_SESSION['variable']) pour des raisons semblables aux précédentes.

En reprenant ton code
<?
//Création des variables de session
//*********************************

session_is_registered("nom")

echo.....

?>
Tu demandes si nom est définit dans la session, mais tu ne traites pas le résultat.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2007, 13:10

Qu'est ce qu'un short_tag ? Il faut quand même faire démarrer la session avec session_start() en début de code ?

ViPHP
ViPHP | 1961 Messages

16 févr. 2007, 13:20

Re,

"Short-tag" (Balisage court)
Quand tu veux signaler au serveur que ce qui suit est à interpréter par le parseur PHP, toi tu utilises comme balise d'ouverture "<?" mais cette même balise sert aussi à ouvrir du code XML.

Si dans ton source tu as les deux (XML et PHP), il ne sais pas à qui tu t'adresses et il prend la solution radicale. Il "t'éjecte".

Certains serveurs (comme ça devrait être le cas de tous) ne permettent pas l'utilisation des "sort_tags", une directive dans les fichiers d'initialisation permet de le faire.

Donc pour "écrire propre" tu dois spécifier le langage à utiliser après la balise ouvrante, dans ton cas PHP et ça te donnerait "<?php" (pour le xml - <?xml ...)

Tu me dis qu'il faut démarrer la session, bien sur qu'il faut démarrer la session par session_start(), mais ça n'a rien à voir avec le fait de tester si une variable de session est déclarée ou pas, ni avec le fait de d'utiliser le résultat de ce tes. C'était ça mon propos.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2007, 13:41

Merci beaucoup de tes explications.