|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Bonjour,
j'ai un comportement bizarre lors de l'utilisation d'une session dans laquelle je place un tableau de valeur... Je m'explique : Ma page appelé effectue le code suivant : (je passe les parties ininteressantes) Code :
Ma page erreur.php qui est appelée est la suivante : Code :
Il me retourne d'autres valeurs que j'ai du avoir lors d'une erreur précédente lors de tests sur d'autres parties de mon application. Quelqu'un voit-il d'où vient le problème ?! Merci d'avance. Bizoo |
||||
|
10
|
|
|
#2 |
|
Membre chevronné
![]() Étudiant Inscription : mai 2011 Messages : 122 ![]() |
Quand tu decommente
dans la premiere page ca marche ou pas? |
|
|
20
|
|
|
#3 |
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
|
|
10
|
|
|
#4 |
|
Membre chevronné
![]() Étudiant Inscription : mai 2011 Messages : 122 ![]() |
Est ce que les valeurs qui sont bonnes s'affichent sur la premiere ou deuxieme page, essaye d'etre plus clair
|
|
|
20
|
|
|
#5 |
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Tout est dans le premier post :
1er écran : code => variables session OK appelle du deuxième écran 2ème écran : code => variables session KO Je vois pas comment être plus clair que dans mon premier post, désolé ... |
|
10
|
|
|
#6 | ||||||||
|
Membre chevronné
![]() Étudiant Inscription : mai 2011 Messages : 122 ![]() |
La tu as ete plus clair.
Quand tu met sur le premier ecran Code :
Mais dans le 2eme, tu fais le contraire, c'est la session que tu affectes au tableau. Code :
1ere: afficher directement la session avec comme parametre le tableau: Code :
session_start(); Code :
!
|
||||||||
|
|
20
|
|
|
#7 |
|
Membre régulier
![]() Pierrot Développeur Web Inscription : novembre 2010 Messages : 79 ![]() |
Justement, je ne trouve pas ton 1er post très clair.
Ton premier script supprime et créé la SESSION. Puis la redirection enchaine sur ton deuxième script qui effectue son affichage. |
|
|
20
|
|
|
#8 |
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
hmimoud, je ne vois pas en quoi tes 2 propositions entre dans un autre cas de test que ce que je fais moi.
Pour expliquer avec un exemple concret : - j'arrive sur ma page 1 - session_start() A ce moment là, $_SESSION["tab_erreur"] == tableauX (qui correspond à une précédente erreur) - j'unset $_SESSION["tab_erreur"] pour supprimer toutes trâce d'une précédente erreur - [...code...] - une erreur survient, j'initialise un tableauY dans ma page avec les codes de l'erreur qui vient de se produire - j'affecte à $_SESSION["tab_erreur"] le nouveau tableauY ($_SESSION["tab_erreur"] = tableauY) A ce moment là, $_SESSION["tab_erreur"] == tableauY Ce que je vérifie bien avec le print_r($_SESSION["tab_erreur"]) qui m'affiche bien tableauY - j'appelle ma page 2 qui est ma page d'erreur - j'arrive sur ma page 2 - session_start() - je récupère ma variable $_SESSION["tab_erreur"] Normalement, vous êtes d'accord avec moi qu'il devrait tjrs y avoir tableauY dans cette variable ?! Et ben lorsque je fait un print_r($_SESSION["tab_erreur"]) ce n'est pas tableauY mais tableauX qui s'affiche !!!.... Et je comprends vraiment pas ... PAGE 1 : suppression variable de session V1 initialisation variable locale V2 mise en session de la variable locale V2 dans la variable de session V1 appelle PAGE 2 PAGE 2 : affichage de la variable de session V1 => Pas la bonne je suis hors de moi de rencontrer un problème sur un mécanisme comme celui-ci ...... |
|
10
|
|
|
#9 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Si on laisse de côté le code en lui-même (et sa logique) : vous ne travaillez pas avec les register_globals à On ? Sait-on jamais, la session est bien la même (ie même identifiant propagé) ?
|
|
|
20
|
|
|
#10 | |
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Citation:
Oui, l'identifiant de la session est le même des 2 côtés Quand tu parle du code et de sa logique, je sens que tu as des remarques dessus ! En passant, pourrais-tu m'en faire part stp ?! Je ne suis jamais contre quelques conseil et quelques corrections de mon code pour améliorer ma façon de développer !!! |
|
|
10
|
|
|
#11 |
|
Membre chevronné
![]() Étudiant Inscription : mai 2011 Messages : 122 ![]() |
J'ai tout a fait compris,
Mes 2 propositions sont à essayés dans la 2eme page. Essaye de les tester et de les lire attentivement, ca explique bien la logique du probleme. Sinon, essaye de laisser ton code de la 2eme page comme tu as fais au debut, et affiche les variables ou tu recupere les elements du tableaux un a un ! A+ ![]() [Résolu] |
|
|
21
|
|
|
#12 | |
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Citation:
Et comme je le pensais, aucun changement.... [Non résolu] |
|
|
20
|
|
|
#13 | ||
|
Membre régulier
![]() Pierrot Développeur Web Inscription : novembre 2010 Messages : 79 ![]() |
Très étrange tont problème...
Essaye d'écraser ta session avant de la détruire. Code :
|
||
|
|
10
|
|
|
#14 | |||
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Citation:
Mais le problème reste le même ... damned ! |
|||
|
10
|
|
|
#15 | |||
|
Membre régulier
![]() Pierrot Développeur Web Inscription : novembre 2010 Messages : 79 ![]() |
Citation:
Code :
|
|||
|
|
10
|
|
|
#16 | |||
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Citation:
|
|||
|
10
|
|
|
#17 |
|
Membre régulier
![]() Pierrot Développeur Web Inscription : novembre 2010 Messages : 79 ![]() |
De plus en plus étrange... je dirais même louche.
Si tu n'as pas d'autre variables de SESSION, essaye un : Edit : n'oublie pas de remettre un session_start(); après. |
|
|
10
|
|
|
#18 | |
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Citation:
Par contre à l'affichage de mon erreur, c'est tjrs une autre erreur qui s'affiche ! Là j'y comprend plus rien .... Je crois que je vais tout redemarrer.... |
|
|
10
|
|
|
#19 | ||
|
Membre régulier
![]() Pierrot Développeur Web Inscription : novembre 2010 Messages : 79 ![]() |
Juste pour voir, essaye d'attribuer une valeur à ta SESSION avant ton unset() :
Code :
|
||
|
|
10
|
|
|
#20 |
|
Membre régulier
![]() Yoann BianchinDéveloppeur informatique Inscription : avril 2007 Messages : 158 ![]() |
Stooopp ! On arrête tout j'ai trouvé ....
En fait dans ma page 1 un j'ai des séries de tests avec des header(location si il rencontre des erreurs et en fin de page 1 j'ai un autre header(location qui redirige vers une page 3. (dans le cas où la page n'ait pas été redirigé avant) Et ben ce qu'il se passe c'est que même si au milieu de ma page 1, lorsque une erreur survient et donc que j'appelle ma page 2 et ben en arrière plan le code de la page 1 continue à s'executer jusqu'à la fin et donc appelle quand même la page 3 et c'est cette page qui retourne l'erreur. Le temps que ma page d'erreur s'affiche, c'est ma page 3 qui change mes variables de session ! Je ne savais pas que le header('location... fonctionnait de la sorte ! Je pensais que ça appellait la page souhaité point barre ! Pas que le code continuait à s'executer en arrière plan .... Solution, après mes header(location mettre un die; pour terminer l'execution de la page appellante .... J'ai été clair ou pas ? Parceque en me relisant j'ai pas trop l'impression .... désolé... |
|
20
|
Copyright © 2000-2012 - www.developpez.com