Accueil > > > CACHER LES VARIABLES CONTENNUES DANS UNE URL
CACHER LES VARIABLES CONTENNUES DANS UNE URL
Information sur la source
Description
Problème : Il arrive que sur vos liens, vous ayez besoin de spécifier une variable adjointe d'une valeur, afin de faire un traitement dans la page renvoyé par ce dernier. Le problème, est que ces variables, son visible dans l'url. Pour l'aspect esthétique, ce n'est pas trés beau, mais ce type d'url, peut entrainner des failles dans votre code et des utilisateurs, peuvent adjoindre toute sorte de valeurs, ce qui ne sera pas forcément de votre gout. Utilitée : Imaginez que vous souhaitez intégrer un questionnaire dans votre site internet, et qu'en fonction des réponses donné, le visiteur, sera dirigé vers tel ou tel page. Si il suffit de retenir l'url et ses variable, n'importe qui pourra avoir accès à ces différentes pages directement. Avec cette astuce, le visiteur, ne verra aucune des variables. Compatibilitée : IE et N6.0
Source
- <!--
- Explications :
- Nous allons partir du principe, que votre site est basé sur une seule page de base.
- Nous allons donc nommer cette dernière : index.php
- Imaginez maintenant que vous voulez inclure une page au sein de index.php en passant des variables à l'url par l'intermédiaire d'un menu traditionel.
- Le menu classique :
- -->
-
- <a href="?page=accueil.php">Accueil</a><br>
- <a href="?page=page1.php">Page 1</a><br>
- <a href="?page=page2.php">Page 2</a><br>
- etc...
-
- <!--
- Comme vous pouvez le constater, nous avons ici une variable "page" qui va permettre d'inclure un contenu dans notre page d'origine index.php
- Maintenant, ce qu'il va se passer, c'est que lorsqu'un utilisateur, cliquera sur le premier lien, nous retrouverons ceci dans la barre d'url de notre navigateur favoris :
- - http://www.mon_site.com/index.php?page=accueil.php
-
- Il faudra utiliser (php) la commande $_GET['page'] dans ce cas pour récupérer la variable "page" et sa valeur.
- Nous allons donc utiliser une astuce, afin de cacher cette variable.
- Pour ce, il faut créer un formulaire avec les argument suivant :
- -->
-
- <form action="<? echo $PHP_SELF ?>" method="get" name="Menu1">
- <input type="text" name="page" value=""><br>
- <!-- ICI RECOPIER LE MENU CI-DESSUS -->
- <a href="?page=accueil.php">Accueil</a><br>
- <a href="?page=page1.php">Page 1</a><br>
- <a href="?page=page2.php">Page 2</a><br>
- </form>
-
- <!--
- Jusque là, vous vous dites, mais quel interêt ? .... (ça vient, ça vient )
- A présent, nous allons insérer un petit script qui devra être placé dans le <HEAD></HEAD> de votre page index.php
- Ce script en JavaScript, va permettre d'envoyer une valeur dans le contenu du champ "page" de la boite input.
- -->
-
- <script language="JavaScript" type="text/javascript">
- function Go(url)
- {
- // Donne la valeur de la variable 'url' au champ 'page'
- document.forms.menu.elements.page.value=url;
- // Permet l'envoi du formulaire lors de l'exécution de la fonction
- document.forms.menu.submit();
- }
- </script>
-
- <!--
- Maintenant, nous allons modifier les liens du menu, afin d'appeler cette fonction.
- Pour des raisons qui vont suivre dans le courant de cette astuce, nous allons totalemnt supprimer les liens existants, et nous appelerons la fonction JavaScript au travers d'un onClick.
- Nous mettrons ici comme variable affectée à la fonction la page de destination.
- -->
-
- <form action="<? echo $PHP_SELF ?>" method="get" name="menu">
- <input type="text" name="page" value=""><br>
- <!-- ICI RECOPIER LE MENU CI-DESSUS -->
- <a href="#" onClick="Go('accueil.php')">Accueil</a><br>
- <a href="#" onClick="Go('page1.php')">Page 1</a><br>
- <a href="#" onClick="Go('page2.php')">Page 2</a><br>
- </form>
-
- <!--
- Maintenant, lors d'un click sur un de ces lien, le champ "page" se verra affecter la valeur contennue.
- Et le formulaire sera envoyé...
- Dans ce cas, nous pourrons récupérer la variable "page" et sa valeur par la commade $_GET['page'], et ainsi pouvoir inclure une page provenant de n'importe qu'elle destination.
- ex :
- -->
-
- <html>
- <head>
- <title>Ma Page</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <script language="JavaScript" type="text/javascript">
- function Go(url)
- {
- // Donne la valeur de la variable 'url' au champ 'page'
- document.forms.menu.elements.page.value=url;
- // Permet l'envoi du formulaire lors de l'exécution de la fonction
- document.forms.menu.submit();
- }
- </script>
- </head>
- <body>
-
- <form action="<? echo $PHP_SELF ?>" method="get" name="menu">
- <input type="text" name="page" value=""><br>
- <!-- ICI RECOPIER LE MENU CI-DESSUS -->
- <a href="#" onClick="Go('accueil.php')">Accueil</a><br>
- <a href="#" onClick="Go('page1.php')">Page 1</a><br>
- <a href="#" onClick="Go('page2.php')">Page 2</a><br>
- </form>
-
- <!-- LE RESTE DE VOTRE CODE -->
-
- <?
- // Insertion des informations pour la page appelée
- // vérification de l'existance de la variable et de son contenu.
- if (isset($_GET['page']) && trim($_GET['page']) != "")
- {
- switch($_GET['page'])
- {
- case 'accueil.php' :
- include("mon_dossier/accueil.php" );
- break;
- case 'page1.php' :
- include("mon_dossier/page1.php");
- break;
- case 'page2.php' :
- include("mon_dossier/page2.php");
- break;
- default :
- include("mon_dossier/accueil.php");
- break;
- }
- }
- else
- {
- include("mon_dossier/accueil.php");
- }
- ?>
- </body>
- </html>
-
- <!--
- Jusque là, rien d'extraodinaire.... en effet, les variables sont toujours visible dans le l'url..
- L'astuce commence maintenant.
- Il suffit à présent de modifier les lignes suivantes :
- -->
-
- <form action="<? echo $PHP_SELF ?>" method="get" name="menu">
- <input type="text" name="page" value="">
-
- <!--
- en :
- -->
-
- <form action="<? echo $PHP_SELF ?>" method="post" name="menu">
- <input type="hidden" name="page" value="">
-
- <!--
- et de changer toutes les commandes $_GET['page'] en $_POST['page']
- soit :
- -->
-
- if (isset($_POST['page']) && trim($_POST['page']) != "")
- {
- switch($_POST['page'])
-
- <!--
- Et voilà ...
- Désormais, les variables et leur valeur, ne seront plus visible dans votre lien.
- -->
<!--
Explications :
Nous allons partir du principe, que votre site est basé sur une seule page de base.
Nous allons donc nommer cette dernière : index.php
Imaginez maintenant que vous voulez inclure une page au sein de index.php en passant des variables à l'url par l'intermédiaire d'un menu traditionel.
Le menu classique :
-->
<a href="?page=accueil.php">Accueil</a><br>
<a href="?page=page1.php">Page 1</a><br>
<a href="?page=page2.php">Page 2</a><br>
etc...
<!--
Comme vous pouvez le constater, nous avons ici une variable "page" qui va permettre d'inclure un contenu dans notre page d'origine index.php
Maintenant, ce qu'il va se passer, c'est que lorsqu'un utilisateur, cliquera sur le premier lien, nous retrouverons ceci dans la barre d'url de notre navigateur favoris :
- http://www.mon_site.com/index.php?page=accueil.php
Il faudra utiliser (php) la commande $_GET['page'] dans ce cas pour récupérer la variable "page" et sa valeur.
Nous allons donc utiliser une astuce, afin de cacher cette variable.
Pour ce, il faut créer un formulaire avec les argument suivant :
-->
<form action="<? echo $PHP_SELF ?>" method="get" name="Menu1">
<input type="text" name="page" value=""><br>
<!-- ICI RECOPIER LE MENU CI-DESSUS -->
<a href="?page=accueil.php">Accueil</a><br>
<a href="?page=page1.php">Page 1</a><br>
<a href="?page=page2.php">Page 2</a><br>
</form>
<!--
Jusque là, vous vous dites, mais quel interêt ? .... (ça vient, ça vient )
A présent, nous allons insérer un petit script qui devra être placé dans le <HEAD></HEAD> de votre page index.php
Ce script en JavaScript, va permettre d'envoyer une valeur dans le contenu du champ "page" de la boite input.
-->
<script language="JavaScript" type="text/javascript">
function Go(url)
{
// Donne la valeur de la variable 'url' au champ 'page'
document.forms.menu.elements.page.value=url;
// Permet l'envoi du formulaire lors de l'exécution de la fonction
document.forms.menu.submit();
}
</script>
<!--
Maintenant, nous allons modifier les liens du menu, afin d'appeler cette fonction.
Pour des raisons qui vont suivre dans le courant de cette astuce, nous allons totalemnt supprimer les liens existants, et nous appelerons la fonction JavaScript au travers d'un onClick.
Nous mettrons ici comme variable affectée à la fonction la page de destination.
-->
<form action="<? echo $PHP_SELF ?>" method="get" name="menu">
<input type="text" name="page" value=""><br>
<!-- ICI RECOPIER LE MENU CI-DESSUS -->
<a href="#" onClick="Go('accueil.php')">Accueil</a><br>
<a href="#" onClick="Go('page1.php')">Page 1</a><br>
<a href="#" onClick="Go('page2.php')">Page 2</a><br>
</form>
<!--
Maintenant, lors d'un click sur un de ces lien, le champ "page" se verra affecter la valeur contennue.
Et le formulaire sera envoyé...
Dans ce cas, nous pourrons récupérer la variable "page" et sa valeur par la commade $_GET['page'], et ainsi pouvoir inclure une page provenant de n'importe qu'elle destination.
ex :
-->
<html>
<head>
<title>Ma Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
function Go(url)
{
// Donne la valeur de la variable 'url' au champ 'page'
document.forms.menu.elements.page.value=url;
// Permet l'envoi du formulaire lors de l'exécution de la fonction
document.forms.menu.submit();
}
</script>
</head>
<body>
<form action="<? echo $PHP_SELF ?>" method="get" name="menu">
<input type="text" name="page" value=""><br>
<!-- ICI RECOPIER LE MENU CI-DESSUS -->
<a href="#" onClick="Go('accueil.php')">Accueil</a><br>
<a href="#" onClick="Go('page1.php')">Page 1</a><br>
<a href="#" onClick="Go('page2.php')">Page 2</a><br>
</form>
<!-- LE RESTE DE VOTRE CODE -->
<?
// Insertion des informations pour la page appelée
// vérification de l'existance de la variable et de son contenu.
if (isset($_GET['page']) && trim($_GET['page']) != "")
{
switch($_GET['page'])
{
case 'accueil.php' :
include("mon_dossier/accueil.php" );
break;
case 'page1.php' :
include("mon_dossier/page1.php");
break;
case 'page2.php' :
include("mon_dossier/page2.php");
break;
default :
include("mon_dossier/accueil.php");
break;
}
}
else
{
include("mon_dossier/accueil.php");
}
?>
</body>
</html>
<!--
Jusque là, rien d'extraodinaire.... en effet, les variables sont toujours visible dans le l'url..
L'astuce commence maintenant.
Il suffit à présent de modifier les lignes suivantes :
-->
<form action="<? echo $PHP_SELF ?>" method="get" name="menu">
<input type="text" name="page" value="">
<!--
en :
-->
<form action="<? echo $PHP_SELF ?>" method="post" name="menu">
<input type="hidden" name="page" value="">
<!--
et de changer toutes les commandes $_GET['page'] en $_POST['page']
soit :
-->
if (isset($_POST['page']) && trim($_POST['page']) != "")
{
switch($_POST['page'])
<!--
Et voilà ...
Désormais, les variables et leur valeur, ne seront plus visible dans votre lien.
-->
Conclusion
04/09/2003 - Rectificatif... J'ai oublié de mettre le dièse dans les liens .. ce qui empèche le script de marcher correctement ... :| 08/09/2003 - Rectificatif... Encore un oublie ;( Retirer le "javascript:" qui du coup ne sert à rien dans l'appel 'onClick' ET une bourde : j'avais mis : if (!$GET_[' ... au lieu de : if (isset($_GET[' ...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|