5
PHP Genèse : le CGI Définition Principe et syntaxe Gestion de données en provenance d'un formulaire Conclusion
C o m n Gateway I n t e r f a c
Principe
attribut ACTION de la balise FORM La méthode GET Les données sont en clair dans L'URL → utilisation de la variable d'environnement QUERY_STRING. QUERY_STRING est limitée à 1024 caractères. La méthode POST Les données sont transmises via l'entrée standard (STDIN). → Utilisation de la variable d'environnement CONTENT_LENGTH qui contient le nombre d'octets à lire.
Les variables d'environnement CONTENT_LENGTH QUERY_STRING REMOTE_ADDR REMOTE_HOST REQUEST_METHOD Exemple: char *methode; methode = getenv("REQUEST_METHOD"); printf("methode de transmission pour le formulaire : %s \n",methode);
Entrée standard: URL encoded http://www.leserveurcgi.com/traitement.cgi?nom=moi&prenom=encore+moi&adresse=5+rue+du+rien%0D%0A75000+paris&telephone=0123456789&email=moi%40ici.fr&vehicule=1&porte=0&Guidon=on&GPS=on
http:// www.leserveurcgi.com/ traitement.cgi ? nom=moi & prenom=encore+moi adresse=5+rue+du+rien%0D%0A75000+paris telephone=0123456789 email=moi%40ici.fr vehicule=1 porte=0 Guidon=on GPS=on
Sortie standard Content-type: text/html\n\n
PHP Genèse : le CGI Définition Principe et syntaxe Gestion de données en provenance d'un formulaire Conclusion
Définition Première version de PHP : 1994 (Rasmus Lerdorf) PHP est un ensemble de fonctionnalités qu'il est possible d'insérer directement dans le code d'une page HTML, comme le JavaScript, mais ce code va s'exécuter du côté serveur. Personal Home Page
PHP Genèse : le CGI Définition Principe et syntaxe Gestion de données en provenance d'un formulaire Conclusion
Syntaxe Le code PHP se trouvera entre 2 balises particulières. <?php et ?> Ses balises peuvent se placer n'importe où dans le code HTML, mais le fichier devra avoir une extension .php. Il est également possible d'en mettre plusieurs fois dans une page.
Syntaxe Structures conditionnelles ou répétitives: même syntaxe qu'en langage C. Langage faiblement typé. Il est possible d'utiliser une variable sans l'avoir déclaré au préalable et sans en préciser son type. Une variable commence obligatoirement par $ ATTENTION, ce $ n'a rien à voir avec le $ du JQuery
Syntaxe Exemple: $chaine="ma chaine"; Les constantes se déclarent ainsi: define("PI", 3.14 ); echo "la valeur de pi est : ".PI;
Syntaxe Les tableaux: Il est possible d'utiliser des tableaux associatifs. Exemple: $personne["nom"]=bidochon; $personne["prenom"]=robert; $personne["age"]=54; foreach ($personne as $champ=>$valeur) { echo "$champ : $valeur"; } nom : bidochon prenom : robert age : 54
Syntaxe Les fonctions: function nomFonction($arg1,$arg2,..) Les fonctions se mettent dans un fichier séparé ayant pour extension .inc L'inclusion se fera avec require_once
Syntaxe page.php fonctions.inc
PHP Genèse : le CGI Définition Principe et syntaxe Gestion de données en provenance d'un formulaire Conclusion
Gestion formulaire Les données en provenance d'un formulaire sont acheminées soit avec la méthode GET, soit avec la méthode POST. Dans le premier cas, toutes les informations seront contenues dans le tableau associatif $_GET. Dans le deuxième cas, c'est dans le tableau $_POST que seront les informations.
Gestion formulaire Exemple: formulaire.html <html> <body> <form action="trait.php" method="get"> <label for="login">login</label> <input name="login" /> <br /> <label for="pwd">mot de passe</label> <input type="password" name="pwd" /> <input type="submit" /> </form> </body> </html>
Gestion formulaire Exemple: trait.php <html> <body> echo "votre login est : ".$_GET["login"]; echo "votre mot de passe est : ".$_GET["pwd"]; ?> </body> </html>
Exemple avec utilisation de fonction: trait.php <html> <body> <?php require_once("fonctions.inc"); $login = $_GET["login"]; $mdpasse = $_GET["pwd"]; if ( verifLogin($login,$mdpasse) ){ echo "utilisateur identitifié"; } else { echo "mauvais login ou mot de passe"; ?> </body> </html>
Exemple: fonctions.inc <?php function verifLogin( $log, $mdp ){ $retour=false; if ($log=="toto" && $mdp=="toto") { $retour = true; } return $retour; ?>
Références http://php.net/manual/fr/ http://www.w3schools.com/php/