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
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Forum
PHP ALGOPHP ALGO par tagadax
Cliquez pour lire la suite par tagadax
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|