Problème avec 1 variable de session sur 2
Résolu/Fermé
caligan
Messages postés
6
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
28 janvier 2009
-
10 août 2007 à 14:14
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 12 août 2007 à 16:22
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 12 août 2007 à 16:22
A voir également:
- Problème avec 1 variable de session sur 2
- Word numéro de page 1/2 - Guide
- Whatsapp avec 2 cartes sim - Guide
- 2 ecran pc - Guide
- Comment brancher 2 tv sur un seul décodeur free sans payer ? ✓ - Forum TV & Vidéo
5 réponses
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
10 août 2007 à 20:32
10 août 2007 à 20:32
Salut,
Question toute bête : tu fais bien un session_start() quelque part dans ton code ?
PS : Je sais bien que tu es en phase de tets avec ton code mais un champ password devrait être de type "pawword" et non "text" ;-)
Question toute bête : tu fais bien un session_start() quelque part dans ton code ?
PS : Je sais bien que tu es en phase de tets avec ton code mais un champ password devrait être de type "pawword" et non "text" ;-)
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
11 août 2007 à 13:13
11 août 2007 à 13:13
Oups désolé j'ai posé une question inutile, j'ai zappé la lecture de la dernière ligne avant le début du code :$
En réalité je me perds dans ton code. Si ça se trouve ton problème se situe ailleurs, tu écris peut-être mal le nom d'une variable et comme le PHP est un langage qui n'oblige pas à déclarer les variables, la variable (sur les deux) qui n'est pas affichée est tout simplement une nouvelle variable indéfinie.
Concernant les variables sessions je pense que tu fais correctement les choses en mettant un session_start() au début de chaque page censée utiliser des variables session. Puis de toute façon s'il met correctement une variable, il n'y a pas de raisons pour qu'il ne fasse pas de même pour l'autre.
En réalité je me perds dans ton code. Si ça se trouve ton problème se situe ailleurs, tu écris peut-être mal le nom d'une variable et comme le PHP est un langage qui n'oblige pas à déclarer les variables, la variable (sur les deux) qui n'est pas affichée est tout simplement une nouvelle variable indéfinie.
Concernant les variables sessions je pense que tu fais correctement les choses en mettant un session_start() au début de chaque page censée utiliser des variables session. Puis de toute façon s'il met correctement une variable, il n'y a pas de raisons pour qu'il ne fasse pas de même pour l'autre.
caligan
Messages postés
6
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
28 janvier 2009
11 août 2007 à 16:37
11 août 2007 à 16:37
Je viens de faire de nouveaux essais et c'est à n'y rien comprendre ??
A la fin du script sur la page 2 les 2 variables ont la bonne valeur. (je remplace le header par 2 echos)
Si je remets le header, il y en a une qui saute sur la page 1.
Pourtant au 1er passage sur la page 1, les 2 variables ont les bonnes valeurs et c'est le même script qui lit les variables au second passage, donc à priori les variables sont bien définies ?
A moins qu'il y ait une incompatibilité entre header et session ? Mais alors pourquoi une variable subsiste ?
Avant de mettre des sessions j'avais le même script avec des cookies et ça marchait nickel.
Je comprends rien !!
En tout cas merci de te pencher sur mon cas.
A la fin du script sur la page 2 les 2 variables ont la bonne valeur. (je remplace le header par 2 echos)
Si je remets le header, il y en a une qui saute sur la page 1.
Pourtant au 1er passage sur la page 1, les 2 variables ont les bonnes valeurs et c'est le même script qui lit les variables au second passage, donc à priori les variables sont bien définies ?
A moins qu'il y ait une incompatibilité entre header et session ? Mais alors pourquoi une variable subsiste ?
Avant de mettre des sessions j'avais le même script avec des cookies et ça marchait nickel.
Je comprends rien !!
En tout cas merci de te pencher sur mon cas.
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
11 août 2007 à 19:38
11 août 2007 à 19:38
Re :)
Essaie une fois de mettre
Essaie une fois de mettre
session_write_close();juste avant l'appel du header. J'ai lu dans les commentaires anglais du manuel de php que parfois les informations de la session ne se mettaient pas correctement à jour si on changait de page via l'instruction header(). Ils ont aussi rajouté l'instruction exit() sur la ligne suivant le header mais je ne sais pas si il atteint cette fonction (c'est juste censé provoquer l'arrêt pur et simple du script de façon plus propre qu'en mettant uniquement le header - sait-on jamais que cette dernière soit ignorée pour une raison ou une autre -).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
caligan
Messages postés
6
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
28 janvier 2009
12 août 2007 à 14:30
12 août 2007 à 14:30
Soit béni des dieux !!
Bravo, c'était bien le problème, il fallait le trouver !
Encore merci, je n'aurais jamais trouver tout seul.
A+
Petit récapitulatif :
Dans la page de modification des login et mots de passe d'un membre, les variables de sessions sont mises à jour avec les nouvelles valeurs puis l'utilisateur est redirigé (avec un header) vers la page où sont affiché les paramètres.
Il y avait un conflit entre la session et le header et une variable était remise à zéro.
La solution consiste à écrire un session_write_close(); après la définition des variables de session et avant le header pour stabiliser la session.
Encore merci à Posotaz d'avoir trouvé la solution peu évidente pour un débutant comme moi.
Bravo, c'était bien le problème, il fallait le trouver !
Encore merci, je n'aurais jamais trouver tout seul.
A+
Petit récapitulatif :
Dans la page de modification des login et mots de passe d'un membre, les variables de sessions sont mises à jour avec les nouvelles valeurs puis l'utilisateur est redirigé (avec un header) vers la page où sont affiché les paramètres.
Il y avait un conflit entre la session et le header et une variable était remise à zéro.
La solution consiste à écrire un session_write_close(); après la définition des variables de session et avant le header pour stabiliser la session.
Encore merci à Posotaz d'avoir trouvé la solution peu évidente pour un débutant comme moi.
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
12 août 2007 à 16:22
12 août 2007 à 16:22
Au plaisir :-)
Tu vois je ne le savais même pas moi-même avant de me pencher sur ton problème ;-)
En fait tu m'as aidé à le résoudre ce problème et merci à toi de ta sympathie.
Vive CCM.net !
Tu vois je ne le savais même pas moi-même avant de me pencher sur ton problème ;-)
En fait tu m'as aidé à le résoudre ce problème et merci à toi de ta sympathie.
Vive CCM.net !
11 août 2007 à 09:48
Je fais un session_start() au début de chaque page, donc de la page1 et page2. Faut il en remettre un avant de redéfinir les variables ? J'ai aussi un session_destroy(), ça ne fait rien.
Le truc bizzarre c'est qu'une fois que j'ai redonné de nouvelles valeurs aux variables de sessions (sur la page2) et que je fais un echo, les 2 variables ont les bonnes valeurs, et une fois revenu sur la page1, il y en a une qui a sauté. Mystère ??
Merci pour le champs password je vais changer ça tout de suite