Pb HTTP_SESSION_VARS et php 4.0.6

gkuhmel Messages postés 4 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 25 janvier 2006 - 2 août 2004 à 17:35
gkuhmel Messages postés 4 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 25 janvier 2006 - 3 août 2004 à 12:17
bonjour à tous,

je DOIS développer sous php 4.0.6
Je veux me servir des sessions, donc je dois passer par HTTP_SESSION_VARS

Le petit bout de code suivant:

<?php
session_start();

if ( !isset($HTTP_SESSION_VARS["pseudo"]) )
{
echo "au revoir";
$HTTP_SESSION_VARS["pseudo"]="toto";
}
else
echo "bonjour";
?>

ne marche pas ("au revoir" tjrs affiché!) quand je reload la page.
j'ai essayé de mettre la directive global $HTTP_SESSION_VARS avant le if, mais rien ne change.

Avez vous une idée?

D'avance merci,

Guillaume.

6 réponses

aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
2 août 2004 à 21:55
je viens de tester ton code et au premier refresh de la page cela m'a affiché bonjour...
Donc le code est bon... ptit conseil enfin histoire que ce soit plus "propre"... meme pour une seule instruction dans la partie if ou else tu peux le mettre entre accolades pour éviter une mauves compréhension...

enfin c juste un conseil et ça ne change pas son sens...

donc ben apparemment ça vient de la gestion des sessions sur ton poste...

si je peux fér qqch ... hésite pas
0
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
2 août 2004 à 22:07
encore moins finalement je pense avoir trouvé...
quand j'ai testé j'ai fait un copier coller du code direct donc ça marche nickel..
mais en essayant de mettre le code dans une fonction, là j'avais toujours au revoir...

un ptit tour sur la doc PHP et qu'est ce que je trouve :
$HTTP_SESSION_VARS contient les mêmes informations, mais n'est pas autoglobale.

Donc si tu utilise la variable HTTP_SESSION_VARS dans une fonction, il faut d'abord que tu la déclare comme globale (global $HTTP_SESSION_VARS; au début de ta fonction suffit)

et hop ton code marche nickel quand il est appelé dans une fonction...

donc normalement tu devrais plus avoir de problème

... A noter pour info que à partir de la version 4.1.0 de php la variable $_SESSION contient les mêmes infos que $HTTP_SESSION_VARS sauf que la $_SESSION est superglobale donc pas besoin de la ptite ligne de code en +...

bonne soirée
bon codage
0
gkuhmel Messages postés 4 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 25 janvier 2006
2 août 2004 à 22:13
yep, le pb est que je ne veux pas utiliser $HTTP_SESSION_VARS dans une fonction mais direct ds le script

quand je fais par ex:
<?php
global $HTTP_SESSION_VARS
session_start();

if ( !isset($HTTP_SESSION_VARS["pseudo"]) )
{
echo "au revoir";
$HTTP_SESSION_VARS["pseudo"]="toto";
}
else
echo "bonjour";
?>

et bien cela ne marche pas...
pr le moment je contourne le pb avec:
session_register("pseudo") //cela marche...

mais ça m'embete de ne pas comprendre l'origine du problème...
0
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
2 août 2004 à 22:39
ah oué.. ben je sais pas c space si dans le code direct (en dehors d'une fonction) ça te le récupère pas... (dans ce cas si c en dehors d'une fonction et de le script direct, pas besoin de déclarer ta variable globale)..

ben écoute si tu as la solution prévient moi car moi aussi je voudré bien savoir
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Urukai1 Messages postés 42 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 14 mars 2008
3 août 2004 à 12:14
il faut que tu passes par la variables superglobales $_SESSION
meme pour inserer une varibale $_SESSION['pseudo'] = "toto"

je pense que comme ca ca passe :

<?php
session_start();

if ( !isset($_SESSION["pseudo"]) )
{
echo "au revoir";
$_SESSION["pseudo"]="toto";
}
else {echo "bonjour";}
?>


Souvent on dit : "On n'a que l'embarras du choix", moi je dis on a le choix de l'embarras.
0
gkuhmel Messages postés 4 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 25 janvier 2006
3 août 2004 à 12:17
ok, mais le pb justement c'est que sous 4.0.6, $_SESSION n'existe pas!!!

donc je dois passer par $HTTP_SESSION_VARS !!

(qui ne marche pas!)
0
Rejoignez-nous