|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2005 Messages : 7 ![]() |
Bonjour toutes et à tous.
Voilà mon souci (ça à l'air simple mais je n'y arrive pas) : La page 1 affiche 20 urls via un array() qui contient les liens (récupération classique par un foreach) : Code :
Un clic sur un des liens et la page 2 voulue s' affiche. Ca, ça fonctionne. Mon problème : je voudrais "récupérer" la valeur du lien cliqué ou sa clé (qui sont des variables) sur la page 2. Mais : - la boucle foreach va jusqu'à la fin de sa lecture - et l' URL récupérée (et sa clé) est toujours le dernier de la liste (quel que soit le lien cliqué). Comment faire pour récupérer les variables par SESSION en page 2 quand on clique sur un lien de la page 1, en ciblant les bonnes variables ? Y-a-t-il une soluce dans mon cas ou c'est mission impossible ? Merci pour toute aide éventuelle, car je cela fait 2 jours que je suis dessus ! Sabine. |
||
|
|
00
|
|
|
#2 | ||||
|
Nouveau Membre du Club
![]() Inscription : juillet 2011 Messages : 36 ![]() |
2 jours dessus ?
Dans ta boucle foreach, a chaque fois tu dis que Code :
$_SESSION['cle'] et $_SESSION['valeur'] Pour "récupérer" la valeur du lien cliqué, 2 solutions: 1°) $_SERVER['PHP_SELF'] contient l'URL. C'est le lien en question non? 2°) Code :
sera la clé de l'url, que tu pourras récupérer dans la session via Code :
$url_sur_laquelle_jai_clique = $_SESSION['URL'][ $_GET['cle'] ] Mais c'est du code pour apprendre, il n'est pas du tout sécurisé (j'imagine que tu n'es pas encore concerné par la sécurité). |
||||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : janvier 2005 Messages : 7 ![]() |
Merci Doonge d'avoir pris le temps de réfléchir à mon pb... 2 jours car je ne suis pas très à l'aise en php !
1/J'ai compris votre réponse et cela marche. Mais Je ne souhaiterai pas que la deuxième donnée soit envoyée en paramètre dans l'URL mais récupérée en variable de session dans la deuxième page avec session_start(); et echo $_SESSION['cle']; 2/ A un autre endroit du site j'ai un foreach qui est simplifié comme cela : Code :
La valeur0 permet de construire mon url et là encore comment faire pour récupérer en deuxième page les 2 autres variables (sans transmission en paramètre dans l'url). Je précise que la valeur2 est un texte de news de plusieurs lignes. Dans ce cas, est-ce encore possible ? Car là encore cela me retourne toujours en deuxième page les dernières variables de la liste quelque soit le lien cliqué. Merci encore Doonge pour ton aide précieuse... |
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2011 Messages : 36 ![]() |
Ne surestime pas la valeur de mon aide, mais je suis enchanté de pouvoir t'aider.
J'ai l'impression que tu mélanges beaucoup les "clés" et les "valeurs" dans ton esprit. Si tu imagines un local avec des casiers, les clés c'est le numéro des casiers (ou leur nom), tandis que la valeur c'est leur contenu. Je dis cela car dans votre code, je vois que vous utilisez la variable $valeur0, alors qu'elle n'existe pas ? Je vois qu'il existe $_SESSION['valeur0'], je vois qu'il existe $var, voire $valeur['0'] dans votre foreach, mais c'est tout : je ne vois pas de $valeur0. Concernant le 1°), et je crois que je vais peut-être couper court à vos espoirs, ou vos illusions, mais à votre niveau vous ne devriez pas encore penser qu'il est possible que votre session (disons ce qui est contenu dans la variable $_SESSION) puisse deviner magiquement quel est le lien sur lequel on clique. Lorsque je clique sur un lien quelque part, le site ne va pas "deviner" que "ah tiens c'est le lien n°5 que j'avais proposé sur la page précédente". Le but des sessions, et de la variable $_SESSION, c'est de vous permettre de garder en mémoire des informations sur un utilisateur qui visite votre site pendant un petit moment (par exemple s'il donne son nom au début, vous pouvez le conserver jusqu'à la fin de la session). C'est VOUS qui décidez de garder en mémoire ce que vous trouvez, c'est VOUS qui mettez des élements dans le casier $_SESSION pour y piocher plus tard. Le programme ne décide pas tout seul ce qu'il enlève, ce qu'il ajoute, ce qu'il garde dans $_SESSION. Si vous décidez d'ajouter des URL dans $_SESSION, le programme ne va pas comprendre que vous voulez qu'il supprime tout seul les "mauvaises" URL. Vu ce que je vois, je vous conseille d'expliquer ce que vous voulez faire, plutôt que demander ce qui ne va pas dans votre code, parce que je pense que c'est la façon dont vous vous y prenez qui est mauvaise, donc tout votre code est "mauvais" et ne vous permettra pas de faire ce que vous voulez. Si ce que vous voulez faire c'est savoir l'URL sur laquelle l'utilisateur a cliqué, je vous conseille de vous intéresser à la variable "automatique" $_SERVER http://php.net/manual/fr/reserved.variables.server.php C'est une variable qui se construit toute seule, et qui contient des choses utiles comme par exemple : $_SERVER['REQUEST_URI'] qui est "le lien sur lequel on a cliqué" (et qui vaut généralement $_SERVER['SERVER_ADDR'] . $_SERVER['SCRIPT_NAME'] . '?' . $_SERVER['QUERY_STRING'] ) $_SERVER['REQUEST_TIME'] qui donne "à quel moment" on a cliqué. $_SERVER['HTTP_USER_AGENT'] qui est la signature du navigateur qu'on utilise pour aller sur le site. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com