Mètode GET
El mètode GET és el més comú i es fa servir per a sol·licitar dades d'un servidor. Els paràmetres s'envien com a part de la URL i són visibles a la barra d'adreces del navegador. La sintaxi és la següent:
URL_base?clau1=valor1&clau2=valor2
Quan un usuari fa clic a un enllaç o escriu una adreça amb paràmetres GET, el navegador envia una sol·licitud al servidor que inclou aquesta URL completa. El servidor web rep la sol·licitud i un llenguatge de programació com PHP pot accedir a aquests paràmetres a través de l'array associatiu $_GET.
Avantatges:
-
Són fàcils de compartir, ja que la URL es pot copiar i enganxar.
-
Permeten que les pàgines amb filtres o cerques siguin indexables pels motors de cerca.
-
S'utilitzen per a operacions idempotents, és a dir, sol·licituds que no canvien l'estat del servidor (com una cerca o la visualització d'un producte).
Inconvenients:
-
Limitació de grandària (al voltant de 2048 caràcters).
-
Les dades són públiques i visibles, per la qual cosa no s'han d'utilitzar mai per a informació sensible com contrasenyes o dades de targetes de crèdit.
El mètode GET exemplifica visibilitat i simplicitat
Com funciona?
Quan fas una sol·licitud GET, el navegador inclou els paràmetres com a part de l'adreça, després d'un signe d'interrogació (?). Cada parell de clau=valor es separa amb un ampersand (&).
Exemple: https://exemple.com/productes.php?categoria=roba&preu_max=50
Aquí, el servidor sap que ha de buscar productes de la categoria "roba" amb un preu màxim de "50".
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<title>La nostra Botiga</title>
</head>
<body>
<h1>Llista de Productes</h1>
<?php
// Primer, comprovem si els paràmetres 'categoria' i 'preu_max' existeixen a la URL.
// Això prevé errors si algú accedeix a la pàgina sense filtres.
if (isset($_GET['categoria']) && isset($_GET['preu_max'])) {
// Accedim als valors de l'array superglobal $_GET
$categoria_filtre = $_GET['categoria'];
$preu_maxim_filtre = $_GET['preu_max'];
// Simulem una base de dades amb un array
$productes = [
['nom' => 'Samarreta', 'categoria' => 'roba', 'preu' => 25],
['nom' => 'Pantalons', 'categoria' => 'roba', 'preu' => 60],
['nom' => 'Sabates esportives', 'categoria' => 'calçat', 'preu' => 85],
['nom' => 'Jaqueta texana', 'categoria' => 'roba', 'preu' => 45],
['nom' => 'Vestit', 'categoria' => 'roba', 'preu' => 70],
];
echo "<p>Mostrant productes de la categoria **'{$categoria_filtre}'** ";
echo "amb un preu màxim de **{$preu_maxim_filtre}€**.</p>";
echo "<ul>";
// Recorrem el nostre array de productes i apliquem els filtres
foreach ($productes as $producte) {
if ($producte['categoria'] === $categoria_filtre && $producte['preu'] <= $preu_maxim_filtre) {
echo "<li>{$producte['nom']} ({$producte['preu']}€)</li>";
}
}
echo "</ul>";
} else {
// Si no s'han passat paràmetres, mostrem un missatge d'avís
echo "<p>Si us plau, utilitza la URL amb paràmetres per filtrar els ";
echo "productes, per exemple: <br><br>";
echo "<code>https://exemple.com/productes.php?categoria=roba&preu_max=50</code></p>";
}
?>
</body>
</html>