Page 1 sur 1
Variable de session
Posté : 16 févr. 2007, 11:07
par berserv
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.
Posté : 16 févr. 2007, 11:20
par charabia
Des bouts de code seraient utiles...
Et quelles sont les erreurs indiquées ?
Posté : 16 févr. 2007, 12:04
par Invité
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]
Posté : 16 févr. 2007, 12:25
par charabia
Quelle est l'erreur ?
Posté : 16 févr. 2007, 12:36
par Invité
erreur sur la page ou page inconnue
Posté : 16 févr. 2007, 12:46
par Ajoloca
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.
Posté : 16 févr. 2007, 13:10
par Invité
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 ?
Posté : 16 févr. 2007, 13:20
par Ajoloca
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.
Posté : 16 févr. 2007, 13:41
par Invité
Merci beaucoup de tes explications.