web-dev-qa-db-fra.com

Comment définir la variable $ _GET

Comment définir la variable que la fonction $_GET pourra utiliser sans soumettre un formulaire avec action = GET?

15
dave

Vous pouvez créer un lien, ayant get variable dans href.

<a href="www.site.com/hello?getVar=value" >...</a>
12
Gaurav

$_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.

36
Pascal MARTIN

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.

3
Sander Marechal

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');
1
oriadam

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, 

  • si vous souhaitez tester la gestion des paramètres GET sans effectuer de requêtes réelles, par exemple, pour tester l’existence des paramètres entrants et pour filtrer et assainir les vars entrants.
  • et quand vous ne voulez pas construire le tableau manuellement à chaque fois, mais utilisez l'URL normale

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)
)
1
Jens A. Koch

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.

0
Joseph Orlando

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.

0
Theo

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'];
0
sreekanth