Php: probleme avec variables de sessions
christophe
-
christophe -
christophe -
Bonjour,
J'essaye de remplir un formulaire avec des variables de sessions, comme ceci:
1- catalogue.php
[code]
$_SESSION["piece1"] = $_GET["idpiece1"] ;
$_SESSION["piece2"] = $_GET["idpiece2"] ;
$_SESSION["piece3"] = $_GET["idpiece3"] ;
if(isset($_SESSION["piece1"]))
$lien2= "<A HREF=\"catalogue.php?piece=$piece&idpiece2=$piece2\">+</A>";
elseif(isset($_SESSION["piece2"]))
$lien2= "<A HREF=\"catalogue.php?piece=$piece&idpiece3=$piece3\">+</A>";
else
$lien2= "<A HREF=\"catalogue.php?piece=$piece&idpiece1=$piece1\">+</A>";
[/code]
Mon but est que la premiere fois qu'on clique sur le lien (+), la variable $_SESSION["piece1"] prenne la valeur de $piece1, en suite qu'au 2° clic, la variable $_SESSION["piece2"] prenne la valeur de $piece2, puis qu'au 3° clic la variable $_SESSION["piece3"] prenne la valeur de $piece3.
2- formulaire.php
[code]
<tr>
<td align="center"><INPUT TYPE=TEXT NAME="piece1" VALUE="<? echo $_SESSION['piece1']; ?>" SIZE=40></td>
</tr>
<tr>
<td align="center"><INPUT TYPE=TEXT NAME="piece2" VALUE="<? echo $_SESSION['piece2']; ?>" SIZE=40></td>
</tr>
<tr>
<td align="center"><INPUT TYPE=TEXT NAME="piece3" VALUE="<? echo $_SESSION['piece3']; ?>" SIZE=40></td>
</tr>
[/code]
Ce qui se passe c'est qu'au premier clic ca marche (la variable $piece1 va bien remplir la premiere ligne), mais au second clic la variable $piece2 va remplir la deuxieme ligne mais la premiere ligne c'est effacee, pareil au troisieme.
Merci d'avance a celui qui pourra me mettre sur la voie
J'essaye de remplir un formulaire avec des variables de sessions, comme ceci:
1- catalogue.php
[code]
$_SESSION["piece1"] = $_GET["idpiece1"] ;
$_SESSION["piece2"] = $_GET["idpiece2"] ;
$_SESSION["piece3"] = $_GET["idpiece3"] ;
if(isset($_SESSION["piece1"]))
$lien2= "<A HREF=\"catalogue.php?piece=$piece&idpiece2=$piece2\">+</A>";
elseif(isset($_SESSION["piece2"]))
$lien2= "<A HREF=\"catalogue.php?piece=$piece&idpiece3=$piece3\">+</A>";
else
$lien2= "<A HREF=\"catalogue.php?piece=$piece&idpiece1=$piece1\">+</A>";
[/code]
Mon but est que la premiere fois qu'on clique sur le lien (+), la variable $_SESSION["piece1"] prenne la valeur de $piece1, en suite qu'au 2° clic, la variable $_SESSION["piece2"] prenne la valeur de $piece2, puis qu'au 3° clic la variable $_SESSION["piece3"] prenne la valeur de $piece3.
2- formulaire.php
[code]
<tr>
<td align="center"><INPUT TYPE=TEXT NAME="piece1" VALUE="<? echo $_SESSION['piece1']; ?>" SIZE=40></td>
</tr>
<tr>
<td align="center"><INPUT TYPE=TEXT NAME="piece2" VALUE="<? echo $_SESSION['piece2']; ?>" SIZE=40></td>
</tr>
<tr>
<td align="center"><INPUT TYPE=TEXT NAME="piece3" VALUE="<? echo $_SESSION['piece3']; ?>" SIZE=40></td>
</tr>
[/code]
Ce qui se passe c'est qu'au premier clic ca marche (la variable $piece1 va bien remplir la premiere ligne), mais au second clic la variable $piece2 va remplir la deuxieme ligne mais la premiere ligne c'est effacee, pareil au troisieme.
Merci d'avance a celui qui pourra me mettre sur la voie
A voir également:
- Php: probleme avec variables de sessions
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
6 réponses
salut,
Une question en passant, t'as mis un session_start() au début du script avant
tout affichage ou header() ?
Une question en passant, t'as mis un session_start() au début du script avant
tout affichage ou header() ?
Bonsoir,
oui bien entendu c'est la premiere chose que j'ai faite, d'ailleurs sinon cela ne marcherait meme pas pour la premiere variable il me semble
oui bien entendu c'est la premiere chose que j'ai faite, d'ailleurs sinon cela ne marcherait meme pas pour la premiere variable il me semble
Si ça fonctionnerait car PHP sait créer des tableaux dynamiques même s'il
s'appelle $_SESSION et comme tu sors la piece1 d'un get, ton tableau est
affecté mais lors de la prochaine page la persitance du tableau est perdu.
Sinon pour ton problème, dont je ne comprends pas bien l'enjeu,
met dans tes pages en commentaire html le resultat de print_r($_SESSION)
et vérifie si ça semble cohérent vis à vis de tes attentes.
Glisse ça après la balise html lors de la génération de la page
Ensuite tu demandes l'affichage du source de ta page à ton navigateur
pour vérifier cette info de debug.
Sinon je vois pas bien à quoi sert formulaire.php puisque tout tes liens
sont sur catalogue.php...
A+, crabs
s'appelle $_SESSION et comme tu sors la piece1 d'un get, ton tableau est
affecté mais lors de la prochaine page la persitance du tableau est perdu.
Sinon pour ton problème, dont je ne comprends pas bien l'enjeu,
met dans tes pages en commentaire html le resultat de print_r($_SESSION)
et vérifie si ça semble cohérent vis à vis de tes attentes.
Glisse ça après la balise html lors de la génération de la page
echo "<!-- SESSION=\n" ; print_r( $_SESSION ) ; echo "-->\n" ;
Ensuite tu demandes l'affichage du source de ta page à ton navigateur
pour vérifier cette info de debug.
Sinon je vois pas bien à quoi sert formulaire.php puisque tout tes liens
sont sur catalogue.php...
A+, crabs
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah oui il faut tester les $_GET avec isset, sinon par exemple:
Si $_GET["idpiece1"] n'existe pas (car c'est par exemple le tour de idpiece2 d'être dans l'url), alors $_SESSION["piece1"] reprendra une valeur vide (au pire tu auras même une erreur)...
Non il faut faire comme le dit jisisv, et avec les trois variables de session.
$_SESSION["piece1"] = $_GET["idpiece1"] ;
Si $_GET["idpiece1"] n'existe pas (car c'est par exemple le tour de idpiece2 d'être dans l'url), alors $_SESSION["piece1"] reprendra une valeur vide (au pire tu auras même une erreur)...
Non il faut faire comme le dit jisisv, et avec les trois variables de session.