Comment passer une variable de session par un lien

Comment passer une variable de session par un lien - PHP - Programmation

Marsh Posté le 14-12-2005 à 01:33:08    

Bonsoir tous,
 
Je m'explique  :D  je passe une variable par la méthode GET comme ceci :

Code :
  1. <? echo '<a href="saisie.php?modifier=' . $donnees['id_bca'] . '">'; ?><? echo stripslashes($donnees['nom']); ?>


Jusqu'a la pas de probléme, mais je n'arrive pas à faire la meme chose avec une session  :cry:  
J'ai tenté ceci :

Code :
  1. <a href="saisie.php"><? $_SESSION['modifier'] = $donnees['id_bca']; ?><? echo stripslashes($donnees['nom']); ?></a>


 
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

Code :
  1. <? session_start(); ?>

Reply

Marsh Posté le 14-12-2005 à 01:33:08   

Reply

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())

Reply

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...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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)


Message édité par mechkurt le 14-12-2005 à 10:07:50

---------------
D3
Reply

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

Reply

Marsh Posté le 14-12-2005 à 13:29:36    

Code :
  1. <a href="saisie.php"><? $_SESSION['modifier'] = $donnees['id_bca']; ?><? echo stripslashes($donnees['nom']); ?></a>


J'ai comme un malaise quand je vois cela.  [:jofusion]  
Déjà ton affection à la session n'a rien à faire là.  j'ai pas super compris ton affaire.

Code :
  1. <a href="saisie.php?ma_variable=<?=$donnees['id_bca'];?>"><? echo stripslashes($donnees['nom']); ?></a>


??


Message édité par Berceker United le 14-12-2005 à 13:30:34
Reply

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) ?


Message édité par art_dupond le 14-12-2005 à 14:07:55
Reply

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


Message édité par flo850 le 14-12-2005 à 15:15:42

---------------

Reply

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.

Reply

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  
 


---------------

Reply

Marsh Posté le 14-12-2005 à 15:34:48   

Reply

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.

Reply

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...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed