Sessions et formulaire, Une cohabitation difficile ?
2 réponses
troismille
Salut à tous,
Mon problème parait simple, mais j'ai beau fouiner dans les FAQS, je
n'ai pas trouve : comment se fait-il que lorsque dans l'exemple
ci-dessous, lorsque je renvoie à la meme page avec mon formulaire, il
n'arrive pas à stocker ma variable Foo dans la session ?
---------------------------------
<?
session_start();
session_register("Foo");
echo $Foo; // Pourquoi c'est toujours vide ???
?>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel BONZI
Bonjour, La variable $Foo enregistrée en session à priorité sur la variable $Foo transmise par le formulaire (par GET si tu ne spécifie pas method="POST"). Personnellement, je n'utilise pas 2 fois le même nom de variable. Exemple : <? session_start(); session_register("Foo_session"); if($op=='E'){ $Foo_session=$Foo; } echo $Foo_session; // Qui ne doit plus être vide après la validation du formulaire?>
<html> <head></head> <body> <form action="ThisSameFile.php"> <input type="hidden" name="op" value="E"> // pour contrôler la mise à jour du formulaire <input type="text" name="Foo"> <input type="submit"> </form> </body> </html> -- Salutations --- Michel BONZI
Bonjour,
La variable $Foo enregistrée en session à priorité sur la variable $Foo
transmise par le formulaire (par GET si tu ne spécifie pas method="POST").
Personnellement, je n'utilise pas 2 fois le même nom de variable.
Exemple :
<?
session_start();
session_register("Foo_session");
if($op=='E'){
$Foo_session=$Foo;
}
echo $Foo_session; // Qui ne doit plus être vide après la validation du
formulaire?>
<html>
<head></head>
<body>
<form action="ThisSameFile.php">
<input type="hidden" name="op" value="E"> // pour contrôler la mise
à jour du formulaire
<input type="text" name="Foo">
<input type="submit">
</form>
</body>
</html>
--
Salutations
---
Michel BONZI
mbonzi@diagram-info.com
Bonjour, La variable $Foo enregistrée en session à priorité sur la variable $Foo transmise par le formulaire (par GET si tu ne spécifie pas method="POST"). Personnellement, je n'utilise pas 2 fois le même nom de variable. Exemple : <? session_start(); session_register("Foo_session"); if($op=='E'){ $Foo_session=$Foo; } echo $Foo_session; // Qui ne doit plus être vide après la validation du formulaire?>
<html> <head></head> <body> <form action="ThisSameFile.php"> <input type="hidden" name="op" value="E"> // pour contrôler la mise à jour du formulaire <input type="text" name="Foo"> <input type="submit"> </form> </body> </html> -- Salutations --- Michel BONZI
KEvin
un supplement par rapport aux autres reponses : si register_globals est a off (par defaut depuis la 4.2, tu peux le voir avec un phpinfo() ou echo ini_get('register_globals');) tu dois preciser $_POST ou $_SESSION quand tu accede a une variable qui vient respectivement d'un formulaire soumis en post et d'une session (idem pour _GET et COOKIE).
-- KEvin
un supplement par rapport aux autres reponses : si register_globals est
a off (par defaut depuis la 4.2, tu peux le voir avec un phpinfo() ou
echo ini_get('register_globals');) tu dois preciser $_POST ou $_SESSION
quand tu accede a une variable qui vient respectivement d'un formulaire
soumis en post et d'une session (idem pour _GET et COOKIE).
un supplement par rapport aux autres reponses : si register_globals est a off (par defaut depuis la 4.2, tu peux le voir avec un phpinfo() ou echo ini_get('register_globals');) tu dois preciser $_POST ou $_SESSION quand tu accede a une variable qui vient respectivement d'un formulaire soumis en post et d'une session (idem pour _GET et COOKIE).