|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 9 ![]() |
Bonjour
Mon hébergeur (Skynet) à modifié le fichier register_globals et nous force à travailler avec des variables de sessions. Ce qui est beaucoup mieux, j'en conviens. En 2003, j'avais développé un site (PHP3) et je transférais mes variables via l'URL. Ma page est construite dans un tableau construit avec des echo dans une boucle while. et tout marchait bien. Chaque ligne du tableau est construite de la même façon. et les liens donnent ceci Ma page de départ donne les liens suivants : http://www.clici.be/www/fam_voir.php?id=151 http://www.clici.be/www/fam_voir.php?id=152 http://www.clici.be/www/fam_voir.php?id=153 http://www.clici.be/www/fam_voir.php?id=154 Le problème est que ma page d'arrivée reçoit toujours la même variable id, > dans ce cas ci 154 qui est la dernière ligne de mon tableau. Or, on a beau voir que la variable id change dans l'url en bas du browser mais la variable transmise est toujours la dernière du tableau. Soit dans ce cas ci "154" . Je présume que j'écrase à chaque fois ma variable. Si j'ai bien compris, tous les scripts doivent démarrer par un "session_start" et on transmet ainsi les variables de script en script. Il y a donc un moyen d'intégrer la bonne variable dans la construction du lien a href ... il faut probablement insèrer "$_session['id'][] = $id" dans la contruction du lien <a href> ... ou alors je me trompe complètement. Ma question est donc, comment faire comprendre à PHP qu'il doit tenir compte de la bonne variable "id" ? Il y a autant de variables "id" que de lignes dans le tableau. Quelqu'un peut il m'aider ? Pouvez vous me donner un exemple ou h ref tiendrait compte de la bonne variable ? Merci beaucoup. |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
la configuration de "register_globals" n'est pas directement lié aux sessions
maintenant pour récupérer les informations fournies dans l'URL, tu devras passer par la tableau $_GET
__________________
Modérateur PHP |
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : août 2007 Messages : 9 ![]() |
Voici des morceaux de mes scripts, ça peut aider
Index.php : Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
dans le fichier "fam_voir.php" tu peux récupérer les valeurs passées par l'URL dans le tableau $_GET donc tu as la valeur que tu cherches dans $_GET['id']
et pour ça tu n'as pas besoin des sessions
__________________
Modérateur PHP |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 9 ![]() |
Voilà, j'ai rajouté un
$_GET['id']; mais hélas, rien n'y fait. sur fam_voir.php, id n'existe pas ... pourtant, elle est bien transmise dans l'url ... -- fam_voir.php <?php session_start(); $_GET['id']; if(isset($_SESSION["id"])) echo 'La variable "id" existe et vaut: ' . $_SESSION["id"]; else echo 'id n\'existe pas ...'; ?> Quid alors ??? |
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() |
Tu récupères avec $_GET et tu teste avec $_SESSION, fais:
Et afin de faciliter la migration future avec PHP6 utilise $_GET et non $HTTP_GET_VARS car si register_globals sera supprimée avec PHP6, register_long_arrays le sera également. |
|
|
00
|
|
|
#7 | ||||
|
Invité de passage
![]() Inscription : août 2007 Messages : 9 ![]() |
Merci à tous pour votre acharnement à nous aider tous. je sais que cela prend du temps car je fais aussi de la hotline ...
En effet, cela fonctionne mieux avec le bonnes variables ... Mais la suite est sans doute aussi simple à résoudre mais il faut le savoir comment, je m'explique ... Ma fameuse variable id se transmet donc bien de script en script via la méthode de transfert par URL mais avec la methode post, cela ne fonctionne plus ... avant les modifs de mon FAI, j'avais pas de problèmes ... Je veux contrôler le mot de passe de "id" sur la page mot_passe_modif.php. Sur cette page, "id" est bien présent mais cette fois ci j'emploie la méthode post dans le script pour transférer la variable "id" vers la page controle_modif.php Et là, sur controle_modif, je perds la variable "id" ... snif !!! Voici mon petit code ---- mot_pass_modif.php Code :
---- controle_modif.php Code :
Pouvez vous m'aider à retrouver "id" ? ;-) |
||||
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
si tu envoies les données avec la méthode POST, tu trouveras tes données dans le tableau $_POST
__________________
Modérateur PHP |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 9 ![]() |
Voilà, mon site est à nouveau sur pied.
Un grand merci à tous. Excusez moi si mes questions ont l'air débiles. Parce qu'en effet, les réponses sont tellement logiques. Ceci dit, après cette remise à niveau, je ne vois pas l'utilité de session_start(), dumoins dans mon cas, c'est vrai que cela fonctionne aussi sans ... Certainement une question de sécurité. Je crois qu'elle a son utilité si on ne veut pas mélanger les variables des différentes sessions. MAis alors, toutes les variables doivent être transférées via $_session[] ? Ai je bien compris ? Un grand bravo pour le site ET pour son suivi, ça fait du bien de voir qu'on s'intéresse aussi aux nuls comme moi ... et quelle rapidité de réaction. Bravo à toute l'équipe !!! |
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
la fonction "session_start" sert uniquement à mettre en place la session et à rendre disponible le tableau $_SESSION
regarde là pour des explications sur les sessions : http://php.developpez.com/cours/sessions/
__________________
Modérateur PHP |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com