OVH Cloud OVH Cloud

Sessions et formulaire, Une cohabitation difficile ?

2 réponses
Avatar
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 ???
?>

<html>
<head></head>
<body>
<form action="ThisSameFile.php">
<input type="text" name="Foo">
<input type="submit">
</form>
</body>
</html>
---------------------------------

Je vous remercie vraiment, parce que ça fait trois jours que je suis
bloque a cause de ca !

2 réponses

Avatar
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

Avatar
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