Transmettre des données : méthode GET
Lorsque vous appelez une nouvelle page avec un lien HTML, vous pouvez lui transmettre une valeur grâce à la méthode GET. Il faut « chaîner » des données dans l’URL de la page après le point d’interrogation ? sous forme de couple « variable=valeur ».
<a href="desination.php?page=1"> vers destination.php </a>
Dans cet exemple la valeur 1 sera transmise à la page ‘destination.php’ à travers la variable page.
Transmettre plusieurs valeurs
Pour transmettre plusieurs données, il faut séparer chaque couple ‘variable=valeur’ par l’esperluette &.
<a href="desination.php?page=1&annee=2015"> vers destination.php </a>
Dans cet exemple, deux valeurs seront transmises (1 et 2015) à la page de destination.
Protéger certains caractères
Si les valeurs à transmettre contiennent des caractères qui ne sont pas alphanumériques (hormis -_.), comme des espaces ou des lettres accentuées, vous pouvez encoder ces caractères avec la fonction urlencode().
echo urlencode("destination.php?animal=un chien&saison=été");
Affichage
destination.php%3Fanimal%3Dun+chien%26saison%3D%C3%A9t%C3%A9
Les espaces sont remplacés par le signe + et les autres caractères par une séquence commençant par le caractère pourcentage %, suivi de chiffres hexadécimaux.
Récupération des données
La superglobale $_GET[] est le tableau associatif qui contient toutes les variables et les valeurs associées contenues dans l’url de la page.
Son utilisation est très simple
Code HTML
<a href="desination.php?page=1&annee=2015"> vers destination.php </a>
Code PHP
<?php
if(isset($_GET['page'])){
echo $_GET['page'];
}
echo <br>;
if(isset($_GET['annee'])){
echo $_GET['annee'];
}
?>
Affichage
1
2015
Les clés du tableau associatif $_GET[] correspondent aux noms des variables.
Récupération des données encodées
Si vous avez utiliser la fonction urlencode() pour protéger les valeurs, la fonction inverse urldecode() permet de décoder une chaîne encodée URL.
Code HTML
$chaine = urlencode("saison=été");
On protège la chaine de caractères avec la fonction urlencode()
<a href="desination.php?<?php $chaine; ?>"> vers destination.php </a>
On infiltre le code php dans la valeur de l’attribut ‘href’ du lien HTML.
Code PHP
<?php
if(isset($_GET['saison'])){
echo $_GET['saison'];
echo "<br>";
echo urldecode($_GET['saison']);
}
?>
Affichage
%C3%A9t%C3%A9
été
Avec la fonction urldecode(), la chaîne retournée redevient lisible.