Discussion:
Des variables de session qui ne s'ecrasent pas
(trop ancien pour répondre)
Jeremie
2008-01-15 14:04:41 UTC
Permalink
Bonjour à tous,

Je suis confronté à un problème que je n'ai jamais eu :
lorsque j'enregistre une variable de session

$_SESSION['foo'] = $foo;

cela se passe sans problème.
Le hic, c'est que lorsque je tente de remodifier cette variable de
session via

$_SESSION['foo'] = $new_foo;

PHP l'enregistre comme si j'avais fait

$_SESSION['foo'] .= $new_foo;

du coup un objet serialisé est reconnu comme tel à sa première
désérialisation, mais à la seconde, ça ne marche plus car on récupère
une chaîne :-/

Merci de votre aide,

Jérémie
Paul
2008-01-15 23:07:28 UTC
Permalink
Post by Jeremie
Bonjour à tous,
...
Post by Jeremie
du coup un objet serialisé est reconnu comme tel à sa première
désérialisation, mais à la seconde, ça ne marche plus car on récupère
une chaîne :-/
Ton résumé doit cacher la réalité : $foo et $new_foo ne sont ils pas de
deux types différents ?
Post by Jeremie
Merci de votre aide,
De nada
Post by Jeremie
Jérémie
Jeremie
2008-01-16 00:24:06 UTC
Permalink
Post by Paul
Post by Jeremie
Bonjour à tous,
...
Post by Jeremie
du coup un objet serialisé est reconnu comme tel à sa première
désérialisation, mais à la seconde, ça ne marche plus car on récupère
une chaîne :-/
Ton résumé doit cacher la réalité : $foo et $new_foo ne sont ils pas de
deux types différents ?
Non, ce sont bien deux objets qui ont été sérialisés via la fonction
serialize().
Post by Paul
Post by Jeremie
Merci de votre aide,
De nada
Post by Jeremie
Jérémie
Paul
2008-01-16 10:21:25 UTC
Permalink
Post by Jeremie
Bonjour à tous,
lorsque j'enregistre une variable de session
$_SESSION['foo'] = $foo;
cela se passe sans problème.
Le hic, c'est que lorsque je tente de remodifier cette variable de
session via
$_SESSION['foo'] = $new_foo;
PHP l'enregistre comme si j'avais fait
$_SESSION['foo'] .= $new_foo;
Trouvé ça dans www.php.net chapitre SESSIONS :
The session variable is still lost when navigating even if I change
$setting or $_SESSION['setting']. If you assign a session subscript/key
to the same name as a variable, the session variable will be volatile
and lost upon navigating. For example, if passing a setting that you
want in $_SESSION, don't do this:

<?
$setting = $_REQUEST['setting'];
if (!empty($setting))
$_SESSION['setting'] = $setting;
?>

Instead, rename $setting or $_SESSION['setting'].

Ca ressemble bien à ton cas...

Continuer la lecture sur narkive:
Loading...