Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1196 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  passer parametre en session dans href

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

passer parametre en session dans href

n°2019230
domi_bu
Posté le 26-08-2010 à 21:16:35  profilanswer
 

Bonsoir tout le monde.
 
Je souhaiterai communiquer un parametre entre page A et page B en PHP, en utilisant une variable de session (car j'ai pas envie que ma variable puisse être modifiée par le client, donc je voudrai éviter le get et le post).
 
Seulement voilà, j'ai un tableau html , à partir duquel je peux aller vers la page B. Et dans ce tableau il y a un "href=pageB.php". Comment affecter ma variable en session lorsque l'utilisateur va cliquer sur le lien de ce tableau ?  
 
J'ai surement pas dû comprendre quelque chose, car je ne vois vraiment pas comment faire. Qui peut me donner le méthode à utiliser ? ou alors ce que je veux faire n'est pas possible avec "href" ?
 
Merci d'avance pour vos éclaircissements.
 
Dominique

mood
Publicité
Posté le 26-08-2010 à 21:16:35  profilanswer
 

n°2019287
FlyPhp
Posté le 27-08-2010 à 09:21:58  profilanswer
 

Pour enregistrer un paramètre en session, tu es obligé de l'envoyer à ton script soit en GET soit en POST. En GET, la personne pourra le modifier aisément, mais si tu l'envoie en POST à l'aide d'ajax en mettant un OnClick sur ton lien, ce sera déjà plus dur pour un utilisateur de la changer.
 
La meilleur solution restant de mettre une clé md5 permettant de vérifier si un utilisateur a modifié les variables passées en paramètre.


Message édité par FlyPhp le 27-08-2010 à 09:22:59

---------------
23Prod, Audit et conception de systèmes d'informations : http://www.23prod.fr
n°2019290
aspirateur
Posté le 27-08-2010 à 09:25:31  profilanswer
 

La variable que tu veux transmettre est calculée à la suite d'une action du visiteur ou c'est une simple variable affichée sur la page A que tu veux aussi afficher sur la page B ?

n°2019471
domi_bu
Posté le 27-08-2010 à 18:00:34  profilanswer
 

BOnjour aspirateur
 
La variable est une simple variable connue du tableau html de la page A, que je veux exploiter en page B, sans la communiquer par post ou get. Dominique

n°2019543
NewsletTux
<Insérez ici votre vie />
Posté le 28-08-2010 à 00:40:54  profilanswer
 

il faut la passer avant le Href.
 
Tout ce qui est de l'HTML "simple" sera affiché par le navigateur, c'est à dire largement après que le traitement PHP soit fait.
 
il ne faut pas oublier que PHP, MySQL sont exécutés (chronologiquement en amont) côté serveur, alors que HTML, CSS, Javascript, Flash/AS sont côté client (pour ne citer que les principaux langages)
 
Typiquement lorsque tu affiches une page HTML, la page est d'abord passée à la moulinette du serveur qui, s'il le juge utile (càd s'il y a des balises <?php et ?> ), va la traiter puis envoyer le résultat du traitement (en général c'est de l'HTML qui est produit, mais ça peut être autre chose) au navigateur.
 
 
Donc typiquement, dans la page A, il faut mettre tout au début

Code :
  1. <?php
  2.     session_start();
  3.     $_SESSION['maVariable'] = 'la valeur';
  4. ?>
  5. <html>
  6. ...
  7. <body>
  8. ...
  9. <a href="pageB.html">page B</a>
  10. ...
  11. </html>


 
 
et dans la page B au tout début :

Code :
  1. <?php
  2.     session_start();
  3. ?>


 
et puis n'importe où tu souhaites exploiter ta variable, un petit <?php echo $_SESSION['maVariable']; ?> qui va bien ;)


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2019544
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 28-08-2010 à 00:44:11  profilanswer
 

Le souci, pour répondre précisément à cette phrase :
 

Citation :


Seulement voilà, j'ai un tableau html , à partir duquel je peux aller vers la page B. Et dans ce tableau il y a un "href=pageB.php". Comment affecter ma variable en session lorsque l'utilisateur va cliquer sur le lien de ce tableau ?


 
tu ne peux rien faire avec simplement 2 pages. Un lien href HTML qui appelle une autre page ne fait qu'appeler une page, et à aucun moment tu lui fais comprendre qu'il y a un traitement de variable.
 
La seule chose envisageable serait *éventuellement* de passer par une page intermédiaire, c.à.d. la session initialisée dans la page A comme je l'ai mis dans mon message précédent, ton lien qui pointe vers une page C dans laquelle on a un session_start et la modif de la variable de session, et qui redirige vers pageB.php ...
 
Ou, faire la modif de la variable dans la pageB directement, mais si tous tes liens HTML appellent la même pageB, tu ne sais pas sur quel lien t'as cliqué ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2019558
domi_bu
Posté le 28-08-2010 à 08:33:59  profilanswer
 

Bonjour NewsletTux
 
Merci pour tes explications, tout ça je le savais. Le pb est bien là :
 

Citation :

Ou, faire la modif de la variable dans la pageB directement, mais si tous tes liens HTML appellent la même pageB, tu ne sais pas sur quel lien t'as cliqué ...


 
Je me rends donc compte que c'est pas possible de faire ce que je veux faire. Mais alors comment être sur que l'utilisateur ne bidouille pas la page A et que du coup je me retrouve avec un paramètre en page B qui n'est pas celui attendu. Ca peut créer des catastrophes, non ? Ou alors il faut que je contrôle tout ce qui arrive en page B, et notamment si l'utilisateur signé a le droit de faire telle action, sur telle donnée ? Pourquoi pas mais ça me semble assez lourd dingue. Alors que si il y avait moyen de passer les paramètres de page en page, en toute sécurité ça serait tout de même plus simple.
 
Comment faites vous pour gérer ces aspects sécurité ?
 
Dominique

n°2019574
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 28-08-2010 à 12:31:12  profilanswer
 

De toutes façons :
- le HTML est côté client et le PHP côté serveur, donc tu ne peux interférer en RIEN sur l'affichage de l'HTML
- toute donnée envoyée par un navigateur peut potentiellement être dangereuse, et il faut obligatoirement la contrôler.
 
Personnellement, je ne considère pas de telles données comme fiables vu qu'elles peuvent être trafiquées par l'utilisateur (tout comme son adresse IP ou son user agent par exemple).
 
Donc en page B, s'il y a une variable passée du type pageB.php?var=3 il faudra OBLIGATOIREMENT contrôler "var=3" si tu l'utilises.
là par exemple, is_numeric, intval, sprintf("%d" ), plusieurs méthodes existent pour s'assurer d'avoir un entier numérique au final.
 
C'est comme n'importe quel formulaire HTML, si tu fais un menu <select> l'utilisateur lambda ne choisra que parmi les <option> disponibles, alors qu'un utilisateur un peu plus averti sera capable de t'envoyer (en post ou en get) n'iporte quoi, et pas forcément une valeur prévue dans les <option> ...
C'est ça l'HTML :/


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2021287
CyberDenix
Posté le 05-09-2010 à 21:46:23  profilanswer
 

La seul façon de résoudre ton problème est de placer un évènement JS sur le clic ton lien, qui fait de l'AJAX (passage par du PHP, mise en session et retour).


---------------
Directeur Technique (CTO)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  passer parametre en session dans href

 

Sujets relatifs
Paramètre "selected" d'une liste déroulante : méthode rapide ?Passer de amfphp à Zend_Amf ?
remplacer l'url dans <a href="adresse.html" par une variableSession en Winform
[PHP] Variables de sessionpassage de paramètre d'une fonction fortran appelée depuis python
comment verifier existence valeur dans array sans passer par foreach?session cases à cocher - formulaire
Passer une variable qui a un caractere & dans l'URL 
Plus de sujets relatifs à : passer parametre en session dans href


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR