Variable de session qui disparaît mystérieusement
Posté : 18 avr. 2010, 14:31
Hi every one,
J'ai écrit le petit code que voici (il est inclus dans un autre fichier qui contient session_start(); !):
Mystère!
J'ai testé en attribuant une valeur à une autre variable de session via un formulaire en post, et là ça fonctionne normalement, ma variable de session demeure d'une page à l'autre...
Pourquoi, mais alors pourquoi, avec mon code ça foire? Merci bien par avance!
Les bras m'en tombent, j'ai cherché de tous les côtes mais je vois pas de quoi ça vient.
----------------------
EDIT:
en fait elle disparait pas, mais elle ne contient pas la bonne valeur!
Après appel de mon code elle contient ce que je lui ai demandé, par ex.background: #1A1A1A url('./img/bg_body2.jpg'); , mais en changeant de page elle contient background-color: #333333;
Ce qui me surprend grandement vu qu'à aucun moment mon code n'est censé attribué la seconde valeur à ma variable de session! Soit la variable est détruite soit elle contient une valeur sous cette forme background: #1A1A1A url('./img/bg_bodyX.jpg'); mais jamais background-color: #333333;
Le mystère s'épaissit...
J'ai écrit le petit code que voici (il est inclus dans un autre fichier qui contient session_start(); !):
<?php
// Switch Background
$bg = null;
$vid = array('0', '1', '2', '3', '4', '5', '6', '7');
if (isset($_GET['set_bg']) && is_numeric($_GET['set_bg']) && in_array($_GET['set_bg'], $vid)) {
if ($_GET['set_bg'] == 0) {
session_destroy();
}
else {
$_SESSION['bg'] = $_GET['set_bg'];
}
}
if (isset($_SESSION['bg'])) {
$bg = 'background: #1A1A1A url(\'./img/bg_body'.$_SESSION['bg'].'.jpg\');';
}
else {
$bg = 'background-color: #333333;';
}
?>
Pour utiliser ce code je fais simplement:
<a href="./index.php?set_bg=X">...</a>
<!-- Où "X" est une valeur de 0 à 7 -->
En local ça marche comme je veux, à savoir que la variable de session perdure d'une page à l'autre une fois qu'une valeur lui a été attribuée, mais dès que je passe en ligne ça ne marche plus... Au chargement de la page dont l'url contient la variable get la variable de session existe, mais si je change de page elle disparaît.Mystère!
J'ai testé en attribuant une valeur à une autre variable de session via un formulaire en post, et là ça fonctionne normalement, ma variable de session demeure d'une page à l'autre...
Pourquoi, mais alors pourquoi, avec mon code ça foire? Merci bien par avance!
Les bras m'en tombent, j'ai cherché de tous les côtes mais je vois pas de quoi ça vient.
----------------------
EDIT:
en fait elle disparait pas, mais elle ne contient pas la bonne valeur!
Après appel de mon code elle contient ce que je lui ai demandé, par ex.background: #1A1A1A url('./img/bg_body2.jpg'); , mais en changeant de page elle contient background-color: #333333;
Ce qui me surprend grandement vu qu'à aucun moment mon code n'est censé attribué la seconde valeur à ma variable de session! Soit la variable est détruite soit elle contient une valeur sous cette forme background: #1A1A1A url('./img/bg_bodyX.jpg'); mais jamais background-color: #333333;
Le mystère s'épaissit...