[php] utiliser $_GET dans l'adresse
sim
-
Dalida Messages postés 7114 Statut Contributeur -
Dalida Messages postés 7114 Statut Contributeur -
Bonjour à tous!
Je cherche à utiliser les données envoyés par un formulaire pour indiquer l'include
Donc suivant ce qu'il y a dans l'adresse : ?page=accueil
par exemple,
je coudrais faire include ('accueil.php');
Mais ce que je fait ne marche pas ....
merci de votre aide :
Je cherche à utiliser les données envoyés par un formulaire pour indiquer l'include
<?php
if (isset ($_GET['page']))
{
$_GET['page']=$page;
include ($page.'.php');
}
else
{
include ('accueil.php');
}
?>
Donc suivant ce qu'il y a dans l'adresse : ?page=accueil
par exemple,
je coudrais faire include ('accueil.php');
Mais ce que je fait ne marche pas ....
merci de votre aide :
A voir également:
- [php] utiliser $_GET dans l'adresse
- Adresse mac - Guide
- Darkino nouvelle adresse - Guide
- Comment utiliser chromecast sur tv - Guide
- Changer adresse dns - Guide
- Comment connaître son adresse ip - Guide
14 réponses
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.
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.
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 !
<?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
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!
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.
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 ?
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.
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 !
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.
<?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é ?