[php] utiliser $_GET dans l'adresse
Fermé
sim
-
31 mars 2009 à 18:47
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 8 avril 2009 à 17:42
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 8 avril 2009 à 17:42
A voir également:
- [php] utiliser $_GET dans l'adresse
- Rechercher ou entrer l'adresse - Guide
- Darkino nouvelle adresse - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
- Utiliser chromecast - Guide
- Adresse mac - Guide
14 réponses
Bigfish72
Messages postés
79
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
11 avril 2009
4
31 mars 2009 à 19:08
31 mars 2009 à 19:08
Mettons que tu aies 10 pages différentes que tu peux inclure, le mieux est de tester dans un array() la présence ou non de la valeur de ta variable obtenue par GET. Si elle est présente, c'est ok, pas de soucis, sinon tu envois une page par défaut au cas où un rigolo s'amuserait à modifier l'url.
Bigfish72
Messages postés
79
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
11 avril 2009
4
31 mars 2009 à 18:55
31 mars 2009 à 18:55
Salut,
normal : $_GET['mavariable'] correspond à la variable contenue dans l'url. Par exemple, tu as l'url :
monsite.com/index.php?couleur=rouge
Pour récupérer la valeur 'rouge' tu fais :
$couleur=$_GET['couleur'];
donc dans ton cas ça ferait :
if (isset ($_GET['couleur']) and $_GET['couleur']=='rouge')
{
include ('page.php');
}
else
{
include ('accueil.php');
}
Après tu remplaces couleur par ce que tu veux.
normal : $_GET['mavariable'] correspond à la variable contenue dans l'url. Par exemple, tu as l'url :
monsite.com/index.php?couleur=rouge
Pour récupérer la valeur 'rouge' tu fais :
$couleur=$_GET['couleur'];
donc dans ton cas ça ferait :
if (isset ($_GET['couleur']) and $_GET['couleur']=='rouge')
{
include ('page.php');
}
else
{
include ('accueil.php');
}
Après tu remplaces couleur par ce que tu veux.
Harricote
Messages postés
417
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
30 janvier 2011
41
31 mars 2009 à 18:55
31 mars 2009 à 18:55
Salut,
essaye ceci :
<?php if (isset ($_GET['page']))
{
$page = $_GET['page'];
include("'.$page.'".php");
}
else
{
include ("accueil.php");
}
?>
Je ne suis pas sûr que ca marche mais essaye quand même !
essaye ceci :
<?php if (isset ($_GET['page']))
{
$page = $_GET['page'];
include("'.$page.'".php");
}
else
{
include ("accueil.php");
}
?>
Je ne suis pas sûr que ca marche mais essaye quand même !
Bigfish72
Messages postés
79
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
11 avril 2009
4
31 mars 2009 à 18:58
31 mars 2009 à 18:58
<?php if (isset ($_GET['page']))
{
$page = $_GET['page'];
include("'.$page.'".php");
}
else
{
include ("accueil.php");
}
?>
Attention avec les variables récupérées par POST ou GET : ne jamais les afficher sans les contrôler parce si je mets ça dans l'url :
monsite.com/index.php?page='Et hop une injection de la mort qui tue'
Tu vas pas apprécier ;)
{
$page = $_GET['page'];
include("'.$page.'".php");
}
else
{
include ("accueil.php");
}
?>
Attention avec les variables récupérées par POST ou GET : ne jamais les afficher sans les contrôler parce si je mets ça dans l'url :
monsite.com/index.php?page='Et hop une injection de la mort qui tue'
Tu vas pas apprécier ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Harricote
Messages postés
417
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
30 janvier 2011
41
31 mars 2009 à 19:05
31 mars 2009 à 19:05
Sauf que il faut tout mettre :
if (isset ($_GET['couleur']) and $_GET['couleur']=='rouge' || $_GET['couleur']=='yellow' || $_GET['couleur']=='pink' || $_GET['couleur']=='orange'.......)
{
include ('page.php');
}
if (isset ($_GET['couleur']) and $_GET['couleur']=='rouge' || $_GET['couleur']=='yellow' || $_GET['couleur']=='pink' || $_GET['couleur']=='orange'.......)
{
include ('page.php');
}
merci pour toutes ces réponses !
En fait ce que j'avais fait au début, c'était ça :
Sauf que, si je rajoute des pages, j'ai pas envi de m'amuser à rajouter un condition à chaque fois (ou changer avec case etc ..., ca reviens au même)
Et pour le controle dont parle bigfish comment faire ?
merci!
En fait ce que j'avais fait au début, c'était ça :
if (isset ($_GET['page'])) { if ($_GET['page']=="accueil") { include ('accueil.php'); } else if ($_GET['page']=="tarifs") { include ('tarifs.php'); } else if ($_GET['page']=="galerie") { include ('galerie.php'); } else if ($_GET['page']=="contact") { include ('contact.php'); } else {echo ('la page n\'éxiste pas !');} } else {include ('accueil.php'); }
Sauf que, si je rajoute des pages, j'ai pas envi de m'amuser à rajouter un condition à chaque fois (ou changer avec case etc ..., ca reviens au même)
Et pour le controle dont parle bigfish comment faire ?
merci!
Bigfish72
Messages postés
79
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
11 avril 2009
4
1 avril 2009 à 12:17
1 avril 2009 à 12:17
Salut,
si tu débutes laisse tomber pour le moment cette histoire de contrôle. A partir du moment où tu n'as pas un site vraiment visité ce n'es pas gênant. retiens juste qu'avec la méthode de récupération des variables obtenues par POST et GET il faut toujours contrôler les variables. Pour le GET, tu le protégera quand tu apprendras à utiliser les tableaux et la fonction array().
Pour le moment, oublie si tu ne connais pas la fonction array(), ça évitera de t'embrouiller l'esprit.
si tu débutes laisse tomber pour le moment cette histoire de contrôle. A partir du moment où tu n'as pas un site vraiment visité ce n'es pas gênant. retiens juste qu'avec la méthode de récupération des variables obtenues par POST et GET il faut toujours contrôler les variables. Pour le GET, tu le protégera quand tu apprendras à utiliser les tableaux et la fonction array().
Pour le moment, oublie si tu ne connais pas la fonction array(), ça évitera de t'embrouiller l'esprit.
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
1 avril 2009 à 12:26
1 avril 2009 à 12:26
salut,
quand tu as besoin j'ajouter une page tu l'ajoutes simlement dans le tableau de la première ligne, sachant que la page par défaut est la première page du tableau.
$pages = array('page1', 'page2', 'page3', 'page4', 'page5'); if(filter_has_var(INPUT_GET, 'page')) { $page = filter_get_var(INPUT_GET, 'page'); $page = in_array($page, $pages) ? $page : $pages[0]; } else $page = $pages[0]; include("dossier/$page.php")
quand tu as besoin j'ajouter une page tu l'ajoutes simlement dans le tableau de la première ligne, sachant que la page par défaut est la première page du tableau.
ok merci, donc obligation d'utiliser array ?
c'est pas du tout possible de faire quelque chose comme ce que j'avais pensé ?
Sinon niveau protection, ça reviens au même que ma version en if/else non ?
c'est pas du tout possible de faire quelque chose comme ce que j'avais pensé ?
Sinon niveau protection, ça reviens au même que ma version en if/else non ?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
1 avril 2009 à 19:31
1 avril 2009 à 19:31
obligation d'utiliser array ?
ben c'est plus pratique et si tu dois utiliser PHP tu peux apprendre à utiliser les tableaux tout de suite, c'est un concept fondamental et c'est tout bête à comprendre.
ben c'est plus pratique et si tu dois utiliser PHP tu peux apprendre à utiliser les tableaux tout de suite, c'est un concept fondamental et c'est tout bête à comprendre.
a nan mais je connais déjà array, mais c'est vrai que je ne l'utilise pas plus que ça ....
Bonjour, voilà ce que j'ai fait :
Mais il me sort
Je ne comprends pas ça
...
Merci pour votre aide !
$tab_pages = array( 0 => 'accueil', 1 => 'blog', 2 => 'realisations', 3 => 'profil', 4 => 'contact' ); if(filter_has_var(INPUT_GET, 'page')) { $page_ask = filter_get_var(INPUT_GET, 'page'); $page = in_array($page_ask, $tab_pages) ? $page : $pages[0]; /* in_array — Indique si une valeur appartient à un tableau */ } else { $page = $pages[0]; } include("$page.php");
Mais il me sort
Fatal error: Call to undefined function filter_get_var() in C:\Documents and Settings\xp\Mes documents\Sites\pandanet2\index.php on line 109
Je ne comprends pas ça
? $page : $pages[0]
...
Merci pour votre aide !
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
>
sim
8 avril 2009 à 16:37
8 avril 2009 à 16:37
salut,
oups…
filter_input(), remplace juste le nom de la fonction.
Je ne comprends pas ça
c'est l'opérateur ternaire.
Call to undefined function filter_get_var()
oups…
filter_input(), remplace juste le nom de la fonction.
Je ne comprends pas ça
c'est l'opérateur ternaire.
Utilisateur anonyme
8 avril 2009 à 15:00
8 avril 2009 à 15:00
<?php
if (isset ($_GET['page']))
{
$_GET['page']
include ($_GET['page']');
}
else
{
include ('accueil.php');
}
?>
if (isset ($_GET['page']))
{
$_GET['page']
include ($_GET['page']');
}
else
{
include ('accueil.php');
}
?>
votre code ne marchant pas, j'ai refait mon code à ma sauce, le voici :
est ce correct niveau sécurité ?
$tab_pages = array( 0 => 'accueil', 1 => 'blog', 2 => 'realisations', 3 => 'profil', 4 => 'contact' ); if (isset ($_GET['page'])) { $page_ask = $_GET['page'] ; if (in_array($page_ask, $tab_pages) == 1) /* in_array — Indique si une valeur appartient à un tableau */ { $page=$_GET['page']; } else { $page=$tab_pages[0]; } } include("$page.php");
est ce correct niveau sécurité ?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
8 avril 2009 à 17:42
8 avril 2009 à 17:42
oui, tu n'as pas besoin de "filter" puisque tu utilises une liste blanche.