|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : août 2005 Messages : 59 ![]() |
Bonjour à toutes et tous,
J'ai un problème avec un formulaire que j'essaie d'envoyer par email, avec les données des champs que je place dans des variables de session mais qui se vident mystérieusement à la fin! Voici mon code, composé d'une page (index.php) contenant un formulaire, d'une page (coordonnees.php) contenant les coordonnées de l'internaute et enfin, d'une page (envoi.php) qui sert a envoyer le mail: index.php Code :
coordonnees.php Code :
envoi.php Code :
Voila mon code, et je ne comprends pas pourquoi mes variables $_SESSION["variable1_".$i."_".$j] sont remplies et s'affichent en haut de ma page coordonnees.php mais sont vides en arrivant dans envoi.php ? SI vous avez de quelconques informations, cela m'aiderait enormement! merci |
||||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Je viens d'avoir un problème similaire, j'ai pas approfondi ton code, mais personnellement mon problème venait du fait que j'avais dans la page des variables ayant le même nom que celle de la session, qui était aussi mystérieusement effacée.
Par exemple $_SESSION['pseudo'] récupérée à l'identification disparaissait après avoir visité la page commentaire, où chaque commentaire comprend justement un pseudo récupéré après une requête sql en faisant $pseudo=$resultat_de_la_requete[champ_pseudo]. Du coup ma variable de session nommée pseudo disparaissait. Si ça peut t'aider...
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() |
je suis du meme avis que psychoBob
j'avais déjà fait un post sur ce probleme, et dans une des page j,utilisais une variable $user mais le trouble est que j'en avait déjà une $_session['user']...la variable session prennait meme une autre valeur! vérifie ca
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être! La position des Développeurs de developpez avec les explications |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2005 Messages : 59 ![]() |
alors, je n'ai pas remis mes "session_start" car j'ai condensé mais je les avais mis dans mes vraies pages et j'ai donc changé les noms pour avoir le nom de ma variable de formulaire différent de celui de la variable de session!
mais rien n'y fait! à ma page coordonnees.php, mon test fonctionne et mes variables s'affichent bien avec le "echo", mais dans la troisième page envoi.php, le test ne fonctionne plus puisque mon "echo" n'affiche plus rien ! du coup, mon email ne contient pas non plus les données des variables de sessions pusiqu'elles se vident entre la deuxieme et troisieme page! |
|
|
00
|
|
|
#5 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Pour que ce soit plus lisible pense au balise code
|
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
Le probleme soulevé par psychoBob et ozzmax vient de notre chere option "variables globales" à on.
Si cette option est activée, pour php, $_SESSION['toto'] est une référence sur $toto. Donc si on modifie $toto, $_SESSION['toto'] ramasse aussi. Oui PHP est un petit peu c** avec cette option à on |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() |
Penses aussi a appeler la fonction session_write_close() a la fin de ta page, pour que la session soit enregistree avant le redirect de page. Mais je crois que le probleme vient de REGISTER_GLOBALS a ON. J'ai déja eu ce problème.
|
|
|
00
|
|
|
#8 | |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Citation:
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : août 2005 Messages : 59 ![]() |
merci a tous, mais comment sait-on si cette option "variable globale" est a ON ou OFF et comment la changer?
|
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() |
cé dans le php.ini que tu modifie la variable de register_globals = off;
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être! La position des Développeurs de developpez avec les explications |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : août 2005 Messages : 59 ![]() |
merci bien, mais helas, je n'ai pas acces a ce ficher car j'ai un serveur mutualisé et mon hebergeur ne me donne pas cette possibilite! et a priori, cette valeur est bien a ON en plus!!!
|
|
|
00
|
|
|
#12 |
|
Membre émérite
![]() |
ouais dommage
mais je ne sais pas si par défaut il met cette valeur a ON Bref je ne peux pas vraiment t'aider si c'est le cas
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être! La position des Développeurs de developpez avec les explications |
|
|
00
|
|
|
#13 |
|
Membre régulier
![]() |
session_write_close() sert à enregistrer la session et la fermer. Lorsqu'on redirige le client sur une autre page, on doit toujours enregistrer la session pour etre sur de ne pas perdre les valeurs.
Par exemple: avant un Header("Location: ../index.php?login=success"); , on devrait mettre ceci: session_write_close(); Header("Location: ../index.php?login=success"); Aussi, pour le nom de tes variables session, n'utilise pas les noms qui sont passés par URL ou en POST pour déclarer tes variables sessions, car avec REGISTER_GLOBALS à ON, si tu as par exemple un POST d'un formulaire contenant un champs appelé "nom" et que dans ta session tu utilise $_SESSION["nom"], $_SESSION["nom"] prendra la valeur du champs "nom" de ton formulaire. Bonne chance ! |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : août 2005 Messages : 59 ![]() |
merci beaucoup a vous tous!
je vais donc essayer differemment car je ne vois toujours pas pourquoi en passant de coordonnees.php a envoi.php mes variables de sessions se vident apparemment alors que mon formulaire de coordonnees.php ne contient pas de champs avec le meme nom que mes variables! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com