Eviter le passage de variables par l'URL

Fermé
Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 - Modifié par Gizmil le 11/03/2011 à 16:44
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 12 mars 2011 à 10:24
Hello,

Tout est dans le titre, ou à peu de choses près... J'utilise la méthode GET et j'aimerais passer à une autre méthode... Je pense que la seule autre option est le méthode POST ? Ou bien MYSQL ?

Moi, ce qui m'intéresserait, c'est de pouvoir récupérer mes variables d'une page à l'autre.

Jusqu'ici, je procédais comme ceci :

<a href="index.php?contenu=accueil">ACCUEIL</a>


J'aimerais cependant éviter le passage de variables par l'URL notamment parce qu'il paraît que c'est plus sécuritaire et aussi parce qu'on m'a dit que, niveau référencement, des URL exempts de variables sont plus efficaces. Pourriez-vous confirmer ?

Cependant, une chose me chiffonne, c'est de comprendre comment fonctionne la méthode POST. Permet-elle de récupérer une variable d'une page à l'autre ? Si oui, où sont emmagasinées les variables lors de la transition entre deux pages ?

Par exemple, je déclare ceci dans une page :

$maVar = "test";


Ayant déclaré $maVar dans une précédente page, est-il ensuite capable de la récupérer, comme ceci ?

echo ($maVar);


Je fais un peu de recherche sur le net et chaque fois que je vois qu'il est question de la méthode POST, c'est dans le cadre de l'utilisation de la balise <form>. Du coup, je me demande si on peut l'utiliser en dehors de la balise <form> pour faire passer des variables d'une page à l'autre ?

Par exemple, peut-on faire quelque chose comme ceci ?

<a method="post" action="page2.php&maVar=test"></a>


Si non, existe t-il un équivalent ?

Merci d'avance pour l'aide que vous pourrez m'apporter ! :)
A voir également:

4 réponses

Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
11 mars 2011 à 16:53
Hello,

En effet, les variables post nécessite l'utilisation d'un formulaire, accompagné de son bouton de type "submit". Tu récupèrerais alors les variables envoyées sous la forme $_POST['mavariable']

Si tu ne veux pas de formulaire, les variables GET restent incontournables.

En revanche, pour éviter les adresses à rallonge, tu peux te tourner vers une solution consistant à les "réécrire", à savoir l'URL rewriting !
1
pour passer une variable d'une page à une autre, et qui sera accesible sur toutes les pages d'ailleurs tu peux utiliser les $_SESSION.

sur toto.php si tu mets
$_SESSION['login'] = 'francis';

tu pourra, dans titi.php faire un <?=$_SESSION['login']?>

pour toutes les pages qui utiliseront les sessions il faut que tu apelle session_start(); au début de chaque page, avant tout le reste.

sinon pour tes variables en get et le référencement regarde la réécriture d'url qui te permettra d'avoir une page du style
ton-site.com/accueil.html
mais qui sera interprétée comme ton-site.php/index.php?page=accueil par tes scripts
1
Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 65
12 mars 2011 à 01:42
Okkk ! Merci pour vos réponses, ça me semble parfait !

Concernant l'URL rewriting, ça évite les problèmes de sécurité ?
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
Modifié par Mihawk le 12/03/2011 à 10:25
En théorie si tu es rigoureux, tu vérifies toujours les variables _GET que tu récupères de manière à éviter que l'utilisateur puisse rentrer n'importe quoi et pirater ton site.

Après, on peut considérer oui que l'URL rewriting aide à la sécurité, puisque tu "camoufles" les URL que tu veux rendre invisibles.

Exemple :
http://www.monsite.com/* pourras être affiché en tant que http://www.monsite.com
Dans cet exemple, l'étoile signifie "n'importe quoi derrière le slash".

Ainsi tout ce qui se trouvera derrière le slash sera caché. Mais ne pas se méprendre, il existe surement des moyen pour aller voir ce qui se trouve derrière... D'où l'importance de toujours vérifier les variables récupérées.

Comme dit la loi : Never trust user input !


Tant qu'on ne fait pas, on ne sait pas.
0