Comment définir la variable que la fonction $_GET
pourra utiliser sans soumettre un formulaire avec action = GET
?
Vous pouvez créer un lien, ayant get variable dans href.
<a href="www.site.com/hello?getVar=value" >...</a>
$_GET
contient les clés/valeurs transmises à votre script dans l'URL.
Si vous avez l'URL suivante:
http://www.example.com/test.php?a=10&b=plop
Alors $_GET
contiendra:
array
'a' => string '10' (length=2)
'b' => string 'plop' (length=4)
Bien sûr, comme $_GET
n’est pas en lecture seule, vous pouvez également définir des valeurs à partir de votre code PHP, si nécessaire:
$_GET['my_value'] = 'test';
Mais cela ne semble pas être une bonne pratique, car $_GET
est censé contenir des données provenant de l'URL demandée par le client.
Vous pouvez utiliser des variables GET dans le paramètre action
de votre élément form
. Exemple:
<form method="post" action="script.php?foo=bar">
<input name="quu" ... />
...
</form>
Cela vous donnera foo
en tant que variable GET et quu
en tant que variable POST.
Si vous voulez simuler un $ _GET (ou un $ _POST) lors de l'inclusion d'un fichier, vous pouvez l'utiliser comme n'importe quelle autre variable, comme celle-ci:
$_GET['key'] = 'any get value you want';
include('your_other_file.php');
Une façon de définir la variable $_GET
consiste à analyser l'URL à l'aide de parse_url()
, Puis à analyser la chaîne $query
à l'aide de parse_str()
, qui définit les variables dans le $_GET
global.
Cette approche est utile,
function setGetRequest($url)
{
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $_GET);
}
$url = 'http://www.example.com/test.php?a=10&b=plop';
setGetRequest($url);
var_dump($_GET);
Résultat: $_GET
contient
array (
'a' => string '10' (length=2)
'b' => string 'plop' (length=4)
)
Vous pouvez utiliser le code suivant pour rediriger votre client vers un script avec les variables _GET attachées.
header("Location: examplepage.php?var1=value&var2=value");
die();
Le script sera alors redirigé, assurez-vous que la fonction die();
y est conservée, sinon la redirection risque de ne pas être effectuée.
La variable $_GET
est renseignée à partir des paramètres définis dans l'URL. Depuis l'URL http://example.com/test.php?foo=bar&baz=buzz
, vous pouvez obtenir $_GET['foo']
et $_GET['baz']
. Donc, pour définir ces variables, il vous suffit de créer un lien vers cette URL.
Pour le formulaire, utilisez:
<form name="form1" action="<?=$_SERVER['PHP_SELF'];?>" method="get">
et pour obtenir la valeur, utilisez la méthode get comme suit:
$value = $_GET['name_to_send_using_get'];