Problème de PHPSESSID "mal implanté"

Petit nouveau ! | 9 Messages

24 sept. 2009, 17:34

Bonjour à tous !

Voilà, j'ai un petit souci que je ne m'explique pas #-o : j'utilise la transmission du PHPSESSID via l'url, cela me permet d'avoir plusieurs fenêtres ouvertes de la même application sur le même navigateur et de manipuler des données différentes sur les 2 fenêtres. Tout se passe correctement, sauf que, de temps à autre, et sans que je n'arrive à trouver une logique à cela, le PHPSESSID "s'implante" mal dans le href d'un lien hypertexte, par exemple :
<ul>
<li><a href="page1.php?date=2009-06-30&PHPSESSID=5e3s0lgt4lrhre3ts2r12s26e0">Page1</a></li>
<li><a href="page2.php?date=2009-06-30" ?phpsessid="5e3s0lgt4lrhre3ts2r12s26e0">Page2</a></li>
<li><a href="page3.php?date=2009-06-30&PHPSESSID=5e3s0lgt4lrhre3ts2r12s26e0">Page3</a></li>
</ul>
Impossible d'en connaître la raison... quelqu'un a une idée ?

Merci d'avance !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 sept. 2009, 18:47

Bonjour,

Sans avoir le code PHP qui génère ces liens, on ne peut rien dire de plus que "effectivement, il y a un problème" ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

25 sept. 2009, 08:50

Bonjour,

Euh, c'est-à-dire que ce code n'est pas généré par php à proprement parler :P le lien est en dur et je rajoute le paramètre date en php, c'est tout,

Code : Tout sélectionner

<a href="mapage.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>">MaPage</a>
le PHPSESSID étant géré seul par php, je ne veux pas m'amuser à rajouter à chaque lien

Code : Tout sélectionner

<a href="mapage.php?date=<?php echo substr($_SESSION["sess_date"],0,10)."&".SID; ?>">MaPage</a>
le plus étrange c'est que ce code est dans un fichier d'include (donc c'est le même sur chaque page de mon appli), et que, imaginons que le problème intervienne avec le lien de la page 2, et bien le problème peut survenir quand on se trouve sur la page 1 mais pas la page 2 ou 3 elle-même par exemple. Le plus fou, mais là j'imagine que les plus septiques d'entre vous me prendre juste pour un barge :roll: c'est que si j'intervertis l'order des liens 1 et 2, le problème se reporte alors sur le lien 1 qui est maintenant en 2ème position.... De là j'en avais déduis que le problème n'était pas lié à mon code php (c'est pourquoi je l'ai pas plus détaillé) mais bien du moteur de php qui fait des siennes.

J'invite quiconque qui a déjà eu un problème similaire à témoigner, histoire que je sois pas le seul à passer pour un fou :lol:

Merci à ceux qui auront une idée !

Mammouth du PHP | 991 Messages

25 sept. 2009, 12:23

Une solution passé par les cookies (transmettre l'id) et non par l'url !

Bye Hawk :D

(réponse sommaire , je débauche :D)
DevOps, Symfony4, Hoa

Mammouth du PHP | 985 Messages

25 sept. 2009, 13:55

Copie et colle le code exact des 3 liens stp, sinon personne ne peut le deviner.
Au minimum cela :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 9 Messages

25 sept. 2009, 14:14

Bon puisque apparemment je me fais mal comprendre je vous mets tout le code tel quel, mais à mon sens le problème ne vient pas du code en lui même.
<ul id="liste">
<li class="<?php echo ($_SESSION["sess_etat_RValide"] ? "complete" : "incomplete");?><?php if ($_SESSION["sess_r_type"] == 1) echo " invisible";?>" id="li_r"><a href="r.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "r.php" ? "bold" : ""); ?>">R</a></li>
<li class="<?php echo ($_SESSION["sess_etat_EValide"] ? "complete" : "incomplete");?>" id="li_e"><a href="e.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "e.php" ? "bold" : ""); ?>">E</a></li>
<li class="<?php echo ($_SESSION["sess_etat_IValide"] ? "complete" : "incomplete");?>" id="li_i"><a href="i.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "i.php" ? "bold" : ""); ?>">I</a></li>
<li class="<?php echo ($_SESSION["sess_etat_STValide"] ? "complete" : "incomplete");?>" id="li_st"><a href="st.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "s.php" ? "bold" : ""); ?>">ST</a></li>
<li class="<?php echo ($_SESSION["sess_etat_FValide"] ? "complete" : "incomplete");?>" id="li_f"><a href="f.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "f.php" ? "bold" : ""); ?>">F</a></li>
<li class="<?php echo ($_SESSION["sess_etat_CValide"] ? "complete" : "incomplete");?>" id="li_c"><a href="c.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "c.php" ? "bold" : ""); ?>">C</a></li>
<li class="<?php echo ($_SESSION["sess_etat_SValide"] ? "complete" : "incomplete");?>" id="li_s"><a href="s.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "s.php" ? "bold" : ""); ?>">S</a></li>
<li class="<?php echo ($_SESSION["sess_etat_UValide"] ? "complete" : "incomplete");?>" id="li_o"><a href="o.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "o.php" ? "bold" : ""); ?>">O</a></li>
</ul>
Hawk merci pour ta réponse, mais je ne veux pas passer par les cookies sinon je ne serais plus capable d'identifier correctement la session et donc d'avoir plusieurs onglet de l'application dans le même navigateur sans que les données s'écrasent entre elles.

J'espère qu'avec le code ça vous parlera plus...

Eléphant du PHP | 369 Messages

25 sept. 2009, 14:26

Salut,
Bonjour,
Euh, c'est-à-dire que ce code n'est pas généré par php à proprement parler :P le lien est en dur et je rajoute le paramètre date en php, c'est tout,

Code : Tout sélectionner

<a href="mapage.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>">MaPage</a>
Ce qui me gène dans ta ligne c'est tout le fatra balises et php fusionné. Essaie ca on sait jamais:
<?php
$date = substr($_SESSION["sess_date"],0,10);
echo "<a href=\"mapage.php?date=\".$date.">MaPage</a>\n";
?>
le PHPSESSID étant géré seul par php, je ne veux pas m'amuser à rajouter à chaque lien

Code : Tout sélectionner

<a href="mapage.php?date=<?php echo substr($_SESSION["sess_date"],0,10)."&".SID; ?>">MaPage</a>
le plus étrange c'est que ce code est dans un fichier d'include (donc c'est le même sur chaque page de mon appli), et que, imaginons que le problème intervienne avec le lien de la page 2, et bien le problème peut survenir quand on se trouve sur la page 1 mais pas la page 2 ou 3 elle-même par exemple. Le plus fou, mais là j'imagine que les plus septiques d'entre vous me prendre juste pour un barge :roll: c'est que si j'intervertis l'order des liens 1 et 2, le problème se reporte alors sur le lien 1 qui est maintenant en 2ème position.... De là j'en avais déduis que le problème n'était pas lié à mon code php (c'est pourquoi je l'ai pas plus détaillé) mais bien du moteur de php qui fait des siennes.
Merci à ceux qui auront une idée !
Si ca marche le problème venait de la collusion php/html... Mais je peux me tromper ;)
J'invite quiconque qui a déjà eu un problème similaire à témoigner, histoire que je sois pas le seul à passer pour un fou :lol:
Ca m'est jamais arrivé Doc, je le jure ! lol

EDIT: Suite à ton dernier post: Outch... Désolé mais j'essaie pas de lire, trop confus...
Une soupe de balises html mélangée à un série de tags php c'est trop pour moi. Ceci dit je
remets pas ton code en jeu hein, c'est pas le propos donc no offense, c'est juste que je perds
pieds dès la 3ieme ligne. @+ ;)

Mammouth du PHP | 985 Messages

25 sept. 2009, 14:36

Ce ne serait pas ce lien qui pose problème?
<li class="<?php echo ($_SESSION["sess_etat_STValide"] ? "complete" : "incomplete");?>" id="li_st"><a href="st.php?date=<?php echo substr($_SESSION["sess_date"],0,10); ?>" class="<?php echo ($decomposeduri[0] == "s.php" ? "bold" : ""); ?>">ST</a></li>
Modifié en dernier par Dr@ke le 25 sept. 2009, 14:48, modifié 2 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 9 Messages

25 sept. 2009, 14:46

L'idée est simple, mais peut suffire ! :D
Effectivement, l'entrelacement d'html et de php peut peut-être finir par embrouiller php.
Je vais essayé ça !
Sinon si quelqu'un a une explication malgré tout..

Mammouth du PHP | 985 Messages

25 sept. 2009, 14:49

Il me semble, mais je me trompe très souvent, que décomposer s.php alors que le fichier est st.php semble louche :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 9 Messages

25 sept. 2009, 14:51

Il me semble, mais je me trompe très souvent, que découposer s.php alors que le fichier est st.php semble louche :wink:
arf non Drake, bien vu mais là en fait j'ai retiré le vrai nom de fichier, je préfère que ça reste confidentiel, et comme j'avais 2 liens avec s j'en ai mis un avec st mais je l'ai pas fait proprement :oops: pardon...

Mammouth du PHP | 985 Messages

25 sept. 2009, 14:58

c'est que si j'intervertis l'order des liens 1 et 2, le problème se reporte alors sur le lien 1 qui est maintenant en 2ème position....
Faudra m'expliquer par quel miracle cela ne peut pas venir du code :wink:
Mais bon la je ne sais plus, je laisse la place aux autres.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
ViPHP | 4039 Messages

25 sept. 2009, 15:20

l'entrelacement d'html et de php peut peut-être finir par embrouiller php.
Vrituellement impossible. C'est plutôt toi qui te serais embrouillé :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit nouveau ! | 9 Messages

25 sept. 2009, 17:40

l'entrelacement d'html et de php peut peut-être finir par embrouiller php.
Vrituellement impossible. C'est plutôt toi qui te serais embrouillé :wink:
Je veux bien, mais bon, tu as vu le code comme moi, il est pas bien complexe, pourtant voilà le résultat.. Je continue de penser que le problème vient pas du code mais de php...

Eléphant du PHP | 369 Messages

25 sept. 2009, 18:14

Re,
[...]
Je veux bien, mais bon, tu as vu le code comme moi, il est pas bien complexe, pourtant voilà le résultat..
Je continue de penser que le problème vient pas du code mais de php...
Sans vouloir être aussi abrupte que Berzemus ...il a pas tort. As-tu essayé de séparer un peu plus
l'html du php? Ca te permétra d'y voir plus clair et surtout de permetre à d'autres de le lire ;)
Un tel mélange, perso, m'éfraye un brin lol. Toujours sans vouloir t'offenser, ton script est
illisible et il serait compréhensible que tu ais loupé ou ajouté une balise sans faire gaffe. Ceci dit,
si tu utilises une moteur de template "maison" il se peut qu'il gère assez mal le flot
de < & > avec les <?php & ?>.

Je t'ai proposé 2 lignes afin de séparer, un peu mieux, l'html du php, as-tu essayé de l'adapter
sur les lignes, que tu suposes, responsablent du problème?

@+ ;)

PS: Euh... c'était sans vouloir te véxer, hein ;)
Modifié en dernier par FuZZyLine le 25 sept. 2009, 19:28, modifié 1 fois.