4/5 (26 avis)
Snippet vu 30 773 fois - Téléchargée 31 fois
<!-- 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. -->
19 mai 2011 à 16:17
voila jaimerais cacher les variables que jenvois uns un lienjai teste votre methode mais cela ne fonctionne pas
jai teste en premier sur une des variables "etat" que jenvois dans un lien vers une page entete.php cest au niveau de la page enete que je veux cacher les variables car cette meme variable sera envoyee dans un autre lien dans la page entete
// je recupere la varible entete dans page entete
<?php
require_once('conn.php');
if(isset($_POST['sg2']))
{ $sigle=$_POST['sg2'];
$annee=$_POST['annee'];
$etat=$_POST['etat'];
?>
//partie head
<!--cacher variables-->
<script language="JavaScript" type="text/javascript">
function Go(url)
{
// Donne la valeur de la variable 'url' au champ 'etat'
document.forms.menu.elements.etat.value=url;
// Permet l'envoi du formulaire lors de l'exécution de la fonction
document.forms.menu.submit();
}
</script>
// partie body
// le lien ainsi que toutes les parties ou apparait la veriable etat
<?php if(($annee)==2009)
{?>
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2009 2009]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2008 2008]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?> &annee=2007 2007]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2006 2006]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2005 2005]
<?php }
else
{
if(($annee)==2008)
{?>
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2009 2009]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2008 2008]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2007 2007]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2006 2006]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2005 2005]
<?php }
else
{
if(($annee)==2007)
{?>
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2009 2009]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2008 2008]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2007 2007]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2006 2006]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2005 2005]
<?php }
else
{
if(($annee)==2006)
{?>
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2009 2009]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2008 2008]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2007 2007]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2006 2006]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2005 2005]
<?php }
else
{
if(($annee)==2005)
{?>
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2009 2009]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2008 2008]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2007 2007]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2006 2006]
[entete bilan.php?sg2=<?php echo $sigle; ?>&etat=<?php echo ($_POST['etat']);?>&annee=2005 2005]
<?php }
}
}
}
}?>
</td> </tr>
</table>
<form action="<? echo $PHP_SELF ?>" method="post" name="menu">
<?php if (($_POST['etat'])=="Actif")
{?>
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=Actif" style="padding-right:15px;color:#00F;" class="nonimpression">Actif
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=Passif" style= "padding-right:15px;" class="nonimpression">Passif
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=TCR" style="padding-left:15px;" class="nonimpression" >TCR
<?php }
else
{
if (($_POST['etat'])=="Passif")
{?>
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=Actif" style="padding-right:15px;" class="nonimpression">Actif
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=Passif" style= "padding-right:15px;color:#00F;" class="nonimpression">Passif
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=TCR" style="padding-left:15px;" class="nonimpression" >TCR
<?php }
else
{
if (($_POST['etat'])=="TCR")
{?>
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=Actif" style="padding-right:15px;" class="nonimpression">Actif
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=Passif" style= "padding-right:15px;" class="nonimpression">Passif
&id_sorg=<?php echo $id_sorg; ?>&type_org=<?php echo $type_org; ?>&deno=<?php echo $deno; ?>&annee=<?php echo $annee; ?>&etat=TCR" style="padding-left:15px;color:#00F;" class="nonimpression" >TCR
<?php }
}}?>
</form>
</td>
</tr>
<tr >
<td height="24" align= "center">
<?php
if(isset($_POST['sg2']) || isset($_GET['sg5'])||isset($_GET['sg6']))
{
include('bilan complet2009.php');
}
//
voila je ne vois pas ou estle probleme je pense avoir respecte les consignes de votre methode
si vous avez une idee ca me serait tres utile
merci bcq
hantouva
6 oct. 2007 à 03:52
ce doit etre le cas pour cette méthode !
L'un d'entre vous à tester le référencement avec cette méthode ?
16 oct. 2005 à 20:31
Voilà mon problème, j'y connais rien en javascript.
J'ai récupéré le script ci-dessous sur un tuto et je souhaite intégrer celui-ci dedans mais je ne vois pas où placer le ONCLICK.
Merci de votre aide.
<SCRIPT LANGUAGE=JavaScript>
hauteurcadre = 10;
xmenu = new Array;
xlien = new Array;
xmenu[0] = 'Navigation';
xmenu[1] = 'Insérer';
xmenu[2] = 'Recherche par';
xmenu[3] = 'Consulter';
xmenu[4] = 'Contact';
xlien[0] = ''
xlien[1] = ''
xlien[2] = ''
xlien[3] = ''
xlien[4] = ''
xlien[0] += '[index.php Index]';
xlien[0] += ' | '
xlien[0] += '[javascript:history.go(-1) Suivant]';
xlien[0] += ' | '
xlien[0] += '[javascript:history.go(+1) Précédent]';
xlien[1] += '[# Une personne]';
xlien[1] += ' | '
xlien[1] += '[# Un document]';
xlien[2] += '[# Nom]';
xlien[2] += ' | '
xlien[2] += '[# Lieu]';
xlien[2] += ' | '
xlien[2] += '[# Source]';
xlien[3] += '[# Test]';
xlien[3] += ' | '
xlien[3] += '[# ]';
xlien[4] += '[# Mail]';
document.write('<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0 WIDTH=100%>----
');
for(i=0;i<xlien.length;i++)
{
document.write(''+xmenu[i]+', ');
}
document.write('----
<layer id="dynamenu32" width=100% height='+hauteurcadre+'>
</layer>
</TD></TR></TABLE>');
function colorIt(tditem)
{
if(document.all)
{
document.all.td0.style.background='#006699';
document.all.td1.style.background='#006699';
document.all.td2.style.background='#006699';
document.all.td3.style.background='#006699';
document.all.td4.style.background='#006699';
tditem.style.background='#6699CC';
}
else if(document.getElementById)
{
document.getElementById("td0").style.background='#006699';
document.getElementById("td1").style.background='#006699';
document.getElementById("td2").style.background='#006699';
document.getElementById("td3").style.background='#006699';
document.getElementById("td4").style.background='#006699';
tditem.style.background='#6699CC';
}
}
function MajMenu(menu)
{
which = xlien[menu];
if (document.layers)
{
document.dynamenu31.document.dynamenu32.document.write(''+which+'')
document.dynamenu31.document.dynamenu32.document.close()
}
else if (document.getElementById)
{
document.getElementById("dynamenu33").innerHTML = '<CENTER>'+which+'</CENTER>';
}
else if (document.all)
{
dynamenu33.innerHTML=' '
dynamenu33.innerHTML=''+which+'';
}
}
if (document.getElementById)
colorIt(document.getElementById("td0"));
else if (document.all)
{
colorIt(document.all.td0);
}
MajMenu(0);
</SCRIPT>
13 sept. 2003 à 02:00
Dans un premier temps avant de poster ce genre de commentaire, explique ce qu'est le mod_rewrite
ensuite comment el configurer
ensuite pour ce qui est du plus simple, tu repasseras ... car il faut maitriser les expressions régulières (ce qu est loin d'être le cas de tout le monde)
ensuite combien d'hebergeur accepte ce mode ?
le mod_rewrite fait partit de la configuration de apache est cette configuration est loin d'être active chez tous les hebergeurs.
etc..
etc..
etc..
bref poster des commentaires comme ça tu peux te les garder ..
ça ne fait en rien avancer la source.
plutot nul pour un premier message sur CS.
13 sept. 2003 à 00:36
Utilise plutot l'url rewriting en configurant ton htaccess. C'est plus puissant et plus simple et en plus c'est bien mieux pour le referencement dans les moteurs de recherche.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.