Comment passer une variable de session par un lien - PHP - Programmation
Marsh Posté le 14-12-2005 à 02:56:42
qu'est-ce que tu veux faire au juste ?
tu n'as pas besoin de "passer" ta variable de session puisqu'elle "existe toujours" (pour autant que tu ais fait un session_start())
Marsh Posté le 14-12-2005 à 09:54:07
dac avec art_dupond, les variables de session sont justement là pour accéder depuis toutes les pages sans avoir besoin de faire passer quoi que ce soit...
maintenant, tu peux utiliser une valeur passée dans une variable $_GET pour mettre à jour ta variable de session...
Marsh Posté le 14-12-2005 à 10:05:36
vous lisez le code avant de repondre ?
il se sert d'une variable de session pour savoir qu'elle variable modifier
et si son code marche pas c'est qu'il a oublié une echo...
(apres on est pas la pour dire si ca methode est judicieuse ou non)
EDIT: et un ? (en fait c'est un peu le bordel son truc)
Marsh Posté le 14-12-2005 à 13:24:28
Salut,
En fait avec la méthode "$_GET" je passe ma variable par l'URL, ok c'est trés bien ! mais il faut que je la passe de page en page, et c'est pas pratique parce que à chaque fois il faut que je genére du code supplémentaire.
Alors qu'avec la variable de session je genére ma variable une seule fois ! Mais le probléme et que je récupére le numéro de l'id différent à chaque nom, mais comme c'est codé la et en rajoutant un "echo" devant ou pas d'ailleurs le fonctionnement reste le meme, j'ai toujours la meme "id", a savoir pour l'exemple la un "2".
Voila j'espére que vous m'avez à peu prés compris et quel mode de onctionnement je recherche.
Merci d'avance
Marsh Posté le 14-12-2005 à 13:29:36
Code :
|
J'ai comme un malaise quand je vois cela.
Déjà ton affection à la session n'a rien à faire là. j'ai pas super compris ton affaire.
Code :
|
??
Marsh Posté le 14-12-2005 à 14:07:44
je n'ai peut etre pas bien compris, mais quand tu passes ta variable par l'url, tu la récupères sur ta "nouvelle" page avec $_GET['modifier']
avec les variables de sessions, tu la récupères avec $_SESSION['modifier'].
sinon tu peux expliquer ce que tu entends par: "sans succès" ?
tu fais quoi exactement sur la page saisie.php (concernant cette variale) ?
Marsh Posté le 14-12-2005 à 15:14:49
au vu de ton code, le $_SESSION['modifier'] contiendra toujours le contenu du $donnees['id_bca'] de ta dernière ligne générée
ce qui est tout a fait logique ( mais pas ce que tu veux faire )
les affectations sont toutes faites lors de la lecture du script par php
il n'y a donc que la derniere qui reste
Marsh Posté le 14-12-2005 à 15:30:51
Donc en fait ce que je veut faire n'est pas possible ? Je doit utiliser la méthode get ? Mais je trouve bizarre de pas pouvoir le faire de cet maniére alors que je l'ai déja fait avec post. Tant pis merci quand meme.
Marsh Posté le 14-12-2005 à 15:34:48
je pense que tu ne peux pas le faire avec session
post et get ont un comportement assez proche
SESSION est a part
Marsh Posté le 14-12-2005 à 16:37:30
J'ai tout modifié et $_session renvoie bien un numéro différent a chaque fois.
Le probléme est que j'affiche toujours la derniére fiche malgré que j'envoie des "id" différente.
Je vous met le code complet de la requete.
J'envoi de cet maniére la :
Page "liste.php"
<?
$retour = mysql_query('SELECT * FROM bca ORDER BY nom') or die (mysql_error());
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les fiches
{
?>
<? echo stripslashes($donnees['prenom']); ?>
<? echo stripslashes($donnees['nom_correspondant']); ?>
<? echo stripslashes($donnees['telperso']); ?></td>
<form action="saisie.php" target="_self" method="post">
<input type="hidden" name="id" value="<? echo $_SESSION['id'] = $donnees['id_bca'];?>" />
<input name="Submit2" type="submit" value="Envoi">
</form>
<?
} // Fin de la boucle
?>
Et je recois comme ça :
Page "saisie.php"
<?
if (isset($_SESSION['id'])) // Si on demande de modifier une fiche
{
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM bca WHERE id_bca=' . $_SESSION['id']);
$donnees = mysql_fetch_array($retour);
// On place le titre et le contenu dans des variables simples
$nom = $donnees['nom'];
$prenom = $donnees['prenom'];
$telperso = $donnees['telperso'];
..... etc ?>
Le probléme est que j'affiche toujours la derniére fiche malgré que j'envoie des "id" différente.
Marsh Posté le 14-12-2005 à 17:59:44
qu'est-ce qui t'embete avec $_POST et $_GET
tu fais pareil sans utiliser $_SESSION et dans saisie.php, tu remplaces $_SESSION['id'] par $_POST['id']
ps: je crois que tu n'as pas bien compris l'utilité des variables de session. Elles servent à garder une valeur d'une page à l'autre.
dans liste.php, $_SESSION['id'] aura la valeur du dernier $donnees['id_bca'];
dans saisie.php, $_SESSION['id'] aura la même valeur, c'est à dire la valeur du dernier $donnees['id_bca'] dans liste.php...
Marsh Posté le 14-12-2005 à 01:33:08
Bonsoir tous,
Je m'explique je passe une variable par la méthode GET comme ceci :
Jusqu'a la pas de probléme, mais je n'arrive pas à faire la meme chose avec une session
J'ai tenté ceci :
Mais sans succés.... Si quelqu'un pouvait m'aider ???
Merci d'avance.
PS: la session est démarrer bien avant dans le code par