Eviter le passage de variables par l'URL

Gizmil Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   -  
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   -
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 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
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
snooze
 
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   Statut Membre Dernière intervention   65
 
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 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
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