Table des matières

Chapitre 2 : Méthodes de la requête

Comment passer des paramètres à une requête
Méthodes de soumission des formulaires

- Méthode GET

- Soumission

Méthode GET ⇒ passage des informations dans l'URL :

Via un accès direct dans la barre du navigateur :

Via un lien hypertexte

<a href="https://www.google.fr/#q=m%C3%A9thode+get">rechercher des infos sur la méthode GET avec Google</a>

Via un formulaire

1
2
3
4
<form method="GET" action="resultats.php">
    <label for="search">Rechercher sur mon site : </label><input type="text" name="search" id="search">
    <input type="submit" value="Rechercher">
</form>

- Limites du GET

- Récupération en php

mapage.php?version=1.0.0.1

Tableau associatif $_GET :

mapage.php
1
echo $_GET["version"];

Avec Ubiquity :

1
echo URequest::get("version");

- Méthode POST

Les informations sont passées dans les en-têtes HTTP de la requête.

- Soumission via un formulaire

1
2
3
4
<form method="POST" action="resultats.php">
    <label for="search">Rechercher sur mon site : </label><input type="text" name="search" id="search">
    <input type="submit" value="Rechercher">
</form>

- Récupération en php

Tableau associatif $_POST :

resultats.php
1
2
3
<?php
echo "Vous recherchez : <b>".$_POST["search"]."</b>";
?>

Avec Ubiquity :

1
2
3
<?php
echo "Vous recherchez : <b>".URequest::post("search")."</b>";
?>

- Définir l'action sur la page en cours

1
2
<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
</form>

- Identifier la méthode

1
2
3
4
5
6
<?php
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'){
    echo("méthode POST utilisée");
else
    echo ("méthode GET");
?>

Avec Ubiquity :

1
2
3
4
5
6
<?php
if (URequest::isPost()){
    echo("méthode POST utilisée");
else
    echo ("méthode GET");
?>

- Empêcher les requêtes Cross-site

1
2
3
4
5
<?php
    if (stripos($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])===FALSE){
        echo "Tentative de requête cross-site";
    }
?>

Avec Ubiquity :

1
2
3
4
5
<?php
    if (URequest::isCrossSite()){
        echo "Tentative de requête cross-site";
    }
?>

- GET et POST

1
2
3
4
<form method="POST" action="resultats.php?number=1">
    <label for="search">Rechercher sur mon site : </label><input type="text" name="search" id="search">
    <input type="submit" value="Rechercher">
</form>

resultats.php
1
2
3
4
<?php
echo "Vous recherchez : <b>".$_POST["search"]."</b><br>";
echo "Number : <b>".$_GET["number"]."</b>";
?>

Avec Ubiquity :

1
2
3
4
<?php
echo "Vous recherchez : <b>".URequest::post("search")."</b><br>";
echo "Number : <b>".URequest::get("number")."</b>";
?>