Chapitre 2 : Méthodes de la requête
Comment passer des paramètres à une requête
Méthodes de soumission des formulaires
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
<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
- Limite de taille supportée dans l'URL (IE, Apache)
- Visibilité des informations passées
- Récupération en php
mapage.php?version=1.0.0.1
Tableau associatif $_GET :
echo $_GET["version"];
Avec Ubiquity :
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
<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 :
<?php echo "Vous recherchez : <b>".$_POST["search"]."</b>"; ?>
Avec Ubiquity :
<?php echo "Vous recherchez : <b>".URequest::post("search")."</b>"; ?>
- Définir l'action sur la page en cours
<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> </form>
- Identifier la méthode
<?php if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'){ echo("méthode POST utilisée"); else echo ("méthode GET"); ?>
Avec Ubiquity :
<?php if (URequest::isPost()){ echo("méthode POST utilisée"); else echo ("méthode GET"); ?>
- Empêcher les requêtes Cross-site
<?php if (stripos($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])===FALSE){ echo "Tentative de requête cross-site"; } ?>
Avec Ubiquity :
<?php if (URequest::isCrossSite()){ echo "Tentative de requête cross-site"; } ?>
- GET et POST
<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>
<?php echo "Vous recherchez : <b>".$_POST["search"]."</b><br>"; echo "Number : <b>".$_GET["number"]."</b>"; ?>
Avec Ubiquity :
<?php echo "Vous recherchez : <b>".URequest::post("search")."</b><br>"; echo "Number : <b>".URequest::get("number")."</b>"; ?>