web:php:chap2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
web:php:chap2 [2023/11/08 15:24] – supprimée - modification externe (Unknown date) 127.0.0.1web:php:chap2 [2023/11/08 15:24] (Version actuelle) – ↷ Page déplacée de php:chap2 à web:php:chap2 jcheron
Ligne 1: Ligne 1:
 +====== Chapitre 2 : Méthodes de la requête ======
 +
 +
 +<html><div class="towrite">Comment passer des paramètres à une requête<br>Méthodes de soumission des formulaires</div></html>
 +
 +===== - Méthode GET =====
 +==== - Soumission ====
 +
 +Méthode GET => passage des informations dans l'URL :
 +
 +=== Via un accès direct dans la barre du navigateur : ===
 +
 +{{:php-rt:getmethod.png?|}}
 +
 +=== Via un lien hypertexte ===
 +
 +<sxh html;gutter:false>
 +<a href="https://www.google.fr/#q=m%C3%A9thode+get">rechercher des infos sur la méthode GET avec Google</a>
 +</sxh>
 +
 +=== Via un formulaire ===
 +
 +<sxh html>
 +<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>
 +</sxh>
 +
 +==== - Limites du GET ====
 +  * Limite de taille supportée dans l'URL (IE, Apache)
 +  * Visibilité des informations passées
 +
 +==== - Récupération en php ====
 +
 +
 +<code>mapage.php?version=1.0.0.1</code>
 +
 +
 +Tableau associatif **$_GET** :\\
 +<sxh php;title:mapage.php>
 +echo $_GET["version"];
 +</sxh>
 +
 +Avec Ubiquity :
 +
 +<sxh php>
 +echo URequest::get("version");
 +</sxh>
 +
 +===== - Méthode POST =====
 +
 +Les informations sont passées dans les en-têtes HTTP de la requête.
 +==== - Soumission via un formulaire ====
 +
 +<sxh html>
 +<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>
 +</sxh>
 +
 +==== - Récupération en php ====
 +
 +Tableau associatif **$_POST** :\\
 +<sxh php;title:resultats.php>
 +<?php
 +echo "Vous recherchez : <b>".$_POST["search"]."</b>";
 +?>
 +</sxh>
 +
 +Avec Ubiquity :\\
 +<sxh php>
 +<?php
 +echo "Vous recherchez : <b>".URequest::post("search")."</b>";
 +?>
 +</sxh>
 +==== - Définir l'action sur la page en cours ====
 +
 +<sxh php>
 + <form method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
 + </form>
 +</sxh>
 +
 +==== - Identifier la méthode ====
 +
 +<sxh php>
 +<?php
 +if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'){
 + echo("méthode POST utilisée");
 +else
 + echo ("méthode GET");
 +?>
 +</sxh>
 +
 +Avec Ubiquity :
 +
 +<sxh php>
 +<?php
 +if (URequest::isPost()){
 + echo("méthode POST utilisée");
 +else
 + echo ("méthode GET");
 +?>
 +</sxh>
 +==== - Empêcher les requêtes Cross-site ====
 +
 +<sxh php>
 +<?php
 + if (stripos($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])===FALSE){
 + echo "Tentative de requête cross-site";
 + }
 +?>
 +</sxh>
 +
 +Avec Ubiquity :
 +
 +<sxh php>
 +<?php
 + if (URequest::isCrossSite()){
 + echo "Tentative de requête cross-site";
 + }
 +?>
 +</sxh>
 +
 +===== - GET et POST =====
 +
 +<sxh html>
 +<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>
 +</sxh>
 +
 +
 +<sxh php;title:resultats.php>
 +<?php
 +echo "Vous recherchez : <b>".$_POST["search"]."</b><br>";
 +echo "Number : <b>".$_GET["number"]."</b>";
 +?>
 +</sxh>
 +
 +Avec Ubiquity :
 +
 +<sxh php>
 +<?php
 +echo "Vous recherchez : <b>".URequest::post("search")."</b><br>";
 +echo "Number : <b>".URequest::get("number")."</b>";
 +?>
 +</sxh>