Une variable de session qui change toute seule ! Je m'arrache les chvx - PHP - Programmation
Marsh Posté le 13-01-2005 à 12:01:51
Ben si tu fais un str_replace de ';' par '\r\n' c normal hein ^^
Marsh Posté le 13-01-2005 à 12:02:07
Tu devrais plutot te demander pourquoi il a pas disparu dans mail_dest
Marsh Posté le 13-01-2005 à 12:03:25
Oui voila ca c'est bizarre ^^
Edit: je dois etre pas bien réveillé encore mais la réponse est simple.
Tu fais $titre = machin, mais $titre c'est ta variable de session ! Donc c'est normal que ca change ^^
Et si ca change pas pour mail_dest, c'est paske tu fais $mail = machin, et pas $mail_dest ...
M'enfin ca arrive ^^
rah et je suis vraiment crevé moi ...
Marsh Posté le 13-01-2005 à 14:45:18
esox_ch a écrit : Tu devrais plutot te demander pourquoi il a pas disparu dans mail_dest |
Il n'y a pas de raison : str_replace ne change pas la chaine d'origine.
Marsh Posté le 13-01-2005 à 14:47:24
Dj YeLL a écrit : J'éspère que quelqu'un va pouvoir m'aider, car là je ne comprends rien du tout !
|
C'est parce que tu dois être configuré en Register_globals à On.
Passe le à Off (si tu peux) car ça fait un bout de temps (au moins 2 ans) que c'est à Off par défaut pour des raisons de sécurité.
Marsh Posté le 13-01-2005 à 14:49:11
Dj YeLL a écrit : J'éspère que quelqu'un va pouvoir m'aider, car là je ne comprends rien du tout !
|
Ton PHP a très certainement register_globals à on, et du coup $titre correspond à exactement la même variable que $_SESSION['titre'].
A partir de là, tu dois comprendre ce qui cloche.
Edit: bon ben on va dire que je confirme.
Marsh Posté le 13-01-2005 à 15:27:37
Ok merci à tous, bon ben je vais me demerder autrement, alors.
Ca doit surement etre ça, vu que le serveur se fait vieux et qu'il est rarement mis à jour. Mais vu qu'il y a une appli importante qui tourne dessus, qui ne m'appartient pas, je vais eviter de changer ça, des fois que je fouterais le truc en l'air
Encore merci en tout cas.
++
Marsh Posté le 13-01-2005 à 16:56:22
Tu peux le changer localement pour ton appli :
Code :
|
Sauf si la fonction ini_set a été désactivée sur le serveur.
Marsh Posté le 13-01-2005 à 18:44:45
ah mais non renomme juste $titre en autre chose.
/me a l'impression que son post est passé inapercu ...
Marsh Posté le 13-01-2005 à 18:55:44
plainsofpain a écrit : ah mais non renomme juste $titre en autre chose. |
Non non, ton post n'est pas passé inaperçu lol C'est bien ce que j'ai fais, j'ai simplement renommé la variable $titre
Encore merci.
Ratibus> En effet, je n'ai pas pensé à utiliser ini_set()... surtout que je l'ai utilisé dans ce même script mais pour autre chose
Merci à tous
++
Marsh Posté le 14-01-2005 à 19:36:56
ouf j'ai eu peur que tu te lances dans un autre moyen alors que c'était un peu bête ^^
Quand tu bosses avec les sessions, fais attention aux noms des variable dedans, on a tendance a les oublier, et à nommer d'autres variable avec le meme nom
Marsh Posté le 14-01-2005 à 20:13:03
suffit d'avoir qques règles et c'est bon:
- mes variables d'un formulaire se nomment $F_nomvariable
- mes variables de session se nomment $S_nomvariable
...etc...
Marsh Posté le 14-01-2005 à 21:10:41
Personnellement je passe par une classe (que j'ai faite) qui gere les sessions.
Les variables de sessions se trouvent dans un objet $session.
Il y a un tableau $session->data qui contient toutes les vars de session. Comme ca c'est facile, de plus il suffit d'ajouter une "valeur" au tableau pour que ca soit automatiquement sauve dans la session.
De plus cette methode me permet de faire un petit
"print_r($session->data)" pour voir qu'est-ce qu'il y a de stocke dedans.
(Bon ok, on peut aussi le faire en passant par $_SESSION ... )
Marsh Posté le 14-01-2005 à 21:25:33
merci pour toutes ces recommandations
Marsh Posté le 13-01-2005 à 11:55:46
J'éspère que quelqu'un va pouvoir m'aider, car là je ne comprends rien du tout !
Tout d'abord voici le code. Je l'ai allegé à l'extrême pour plus de clareté :
$_SESSION['mail_dest'] = "aaa;bbb";
$_SESSION['titre'] = "aaa;bbb";
print_r($_SESSION);
echo '<br/>';
echo $mail = str_replace(';',"\r\n",$_SESSION['mail_dest']);
echo '<br/>';
echo $titre = str_replace(';',"\r\n",$_SESSION['titre']);
echo '<br/>';
print_r($_SESSION);
Et voici le resultat :
Array ( [mail_dest] => aaa;bbb [titre] => aaa;bbb )
aaa bbb
aaa bbb
Array ( [mail_dest] => aaa;bbb [titre] => aaa bbb )
Comme vous pouvez le voir, le ";" a disparu de la variable de session "titre" dans le 2ème affichage ...
Je ne comprend pas pourquoi
Merci