Cours n 7 : Introduction pratique au PHP

Documents pareils
Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

TP JAVASCRIPT OMI4 TP5 SRC

Dans l'article précédent, vous avez appris

Programmation Web. Madalina Croitoru IUT Montpellier

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction. Passage de sites statiques à des sites dynamiques

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

TD HTML AVEC CORRECTION

Création de formulaires interactifs

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Stockage du fichier dans une table mysql:

Séance d ED n 5 : HTML et JavaScript

CREATION WEB DYNAMIQUE

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

Bernard Lecomte. Débuter avec HTML

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Formulaire pour envoyer un mail

Groupe Eyrolles, 2003, ISBN : X

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Programmation Internet Cours 4

Module http MMS AllMySMS.com Manuel d intégration

PHP 5. La base de données MySql. A. Belaïd 1

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Programmation Web TP1 - HTML

Création de maquette web

Module BD et sites WEB

Formulaires et Compteurs

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

PHP 5.4 Développez un site web dynamique et interactif

Les outils de création de sites web

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Gestion de stock pour un magasin

< Atelier 1 /> Démarrer une application web

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

CREATION d UN SITE WEB (INTRODUCTION)

Plan du cours. Historique du langage Nouveautés de Java 7

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Manuel d'utilisation de l'administration du site Japo.ch - 1

Java Licence Professionnelle CISII,

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

FAQ Questions sur la «signature électronique»

RMI le langage Java XII-1 JMF

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Editer un script de configuration automatique du proxy


Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

1 Position du problème

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Pack Fifty+ Normes Techniques 2013

IPHONE BANNIÈRE CLASSIQUE DIMENSIONS. Standard : 320 x 53 (portrait) 20Ko Jpeg/Gif/Png. HD : 640 x 106 (portrait) 20Ko Jpeg/Gif/Png DESCRIPTION

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Bases de données et Interfaçage Web

Mysql avec EasyPhp. 1 er mars 2006

Attaques de type. Brandon Petty

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

INTRODUCTION AU CMS MODX

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Attaques applicatives

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Le serveur web Windows Home Server 2011

DOM - Document Object Model

1. La plate-forme LAMP

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Mise en place d un serveur Proxy sous Ubuntu / Debian

Manuel du composant CKForms Version 1.3.2

Diffuser un contenu sur Internet : notions de base... 13

Programmer en JAVA. par Tama

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Bases de Données et Internet

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Normes techniques 2011

PHP et les Bases de données - Généralités

Manuel d installation de Business Objects Web Intelligence Rich Client.

ALGORITHMIQUE ET PROGRAMMATION En C

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Notes pour l utilisation d Expression Web

Pratique et administration des systèmes

Transcription:

Université Abou Bakr-Belkaïd Tlemcen Faculté des Sciences Département d Informatique Année universitaire 2016-2017 2 ème année Licence Informatique DAW (Développement d Applications Web) Cours n 7 : Introduction pratique au PHP A. Introduction 1. Le PHP, qu est-ce que c est? Acronyme de Hypertext Preprocessor. Un langage de scripts côté serveur. Utilisé pour créer des pages Web dynamiques à travers un serveur http (contrairement au JavaScript qui permet de créer des pages Web interactives). Permet de traiter les données des formulaires HTML. Permet de manipuler les BDDs enregistrées au sein du serveur. Les scripts PHP sont exécutés au sein du serveur Web (le WampServer par exemple) et le résultat de l exécution (HTML, CSS, JS, images,.) est retourné au client. 2. Principe de fonctionnement Le client demande une page Web dynamique générable par le PHP (qui est générée au sein du serveur par un ou plusieurs scripts PHP). Sa demande est transformée sous forme de requête http et transportée à travers le réseau Internet au serveur. Un ou plusieurs scripts PHP peuvent être interprétés (par l interpréteur PHP) pour répondre à la requête du client. La première phase de la réponse consiste à récupérer toutes les données liées à la requête du client (mots-clés s il s agit d une recherche, pseudo et mot de passe s il s agit d une authentification, données d un formulaire s il s agit d une inscription, information de localisation,.). Une base de données est interrogée par la suite pour récupérer toutes les données qui correspondent à la demande du client. A la base des données récupérées, la réponse est

construite sous forme de document HTML (accompagné par des styles CSS, des scripts JS, des images, ) et envoyée au client. Remarque : Sur n importe quelle page Web dynamique (par exemple celle de Facebook), faites clique droit puis Voir le code source de la page, vous allez trouver uniquement un mélange de HTML, du CSS, et du JavaScript. Ceci c est parce que tous les scripts PHP sont exécutés au niveau du serveur, et ce que vous obtenez c est juste le résultat de cette exécution. 3. Installations nécessaires Installation du WampServer XX: Ça nécessite l'installation de 5 paquetages de Visual Studio (2008, 2010, 2012, 2013, 2015). Le programme doit être installé sur une racine comme C:\wamp ou D:\wamp, et non pas dans un répertoire dont le nom contient des espaces. Paquetage 2008 64bits: https://www.microsoft.com/fr-fr/download/details.aspx?id=2092 Paquetage 2008 32bits: https://www.microsoft.com/fr-fr/download/details.aspx?id=5582 Paquetage 2010 64bits: https://www.microsoft.com/fr-fr/download/details.aspx?id=13523 Paquetage 2010 32bits: https://www.microsoft.com/fr-fr/download/details.aspx?id=8328 Paquetage 2012: https://www.microsoft.com/fr-fr/download/details.aspx?id=30679 WampServer2.5: https://sourceforge.net/projects/wampserver/files/wampserver%202/wamps erver%202.5/ Si l'icône du WampServer est verte alors tout va bien et l installation s est bien déroulée. Sinon, si elle est orange alors cela veut dire que le MySQL Server n'a pas pu être lancé. Ceci peut être dû à l'existence déjà d'un serveur MySQL sur votre machine ou à l'occupation du port 80 par au autre programme (comme le Skype). Une fois installé et lancé, il faut mettre les fichiers (HTML + PHP) sur le répertoire C:\wamp\www pour pouvoir les exécuter. Pour exécuter le script bonjour.php par exemple, il suffit d'aller à l'url http://localhost/bonjour.php. Si l installation du WampServer ne marche pas, pour une raison ou une autre, alors tentez à installer le EaysPHP comme expliqué ci-après. Installation de EasyPHP WebServer 14.1: Avant d'installer ce programme, il faut installer des paquetages indispensables de Microsoft Visual Studio 2008. Paquetages requis: http://www.easyphp.org/easyphp-webserver.php. EasyPHP: https://bitbucket.org/easyphp/easyphp-webserver/downloads/easyphp-webserver- 14.1b2-setup.exe Une fois installé, lancez-le, faites un simple clique sur l'icône qui apparait sur votre barre des tâches, puis choisissez Open Dashboard. Dans la partie Control Panel, cliquez sur le bouton qui est à côté de HTTP Server, une description va apparaitre du service HTTP de EasyPHP, cliquez sur le bouton Install Service pour installer le serveur HTTP correspondant. Une fois installé, cliquez sur Start service pour démarrer le serveur HTTP.

Si cette procédure marche sans aucun souci, alors il ne reste qu'à mettre les fichiers (HTML+PHP) sur le répertoire C:\Program Files (x86)\easyphp-webserver-14.1b2\www. Sur la fenêtre de EasyPHP (le Dashboard), il vous indique l'adresse locale à utiliser pour lancer vos fichiers (Par exemple http://192.168.1.10:888). Donc, pour exécuter un script bonjour.php donné, il faut juste ajouter le nom de ce script à l'adresse locale qui vous a été indiquée. Par exemple: http://192.168.1.10:888/bonjour.php. B. Syntaxe générale 1. Premiers scripts PHP Un script PHP doit être enregistré avec l extension «.php», il doit contenir un ou plusieurs codes PHP. Un code PHP doit être délimité par et. Un script PHP peut contenir aussi des codes HTML, CSS et JavaScript. Pourquoi ce mélange? Pourquoi pas uniquement du PHP? Une page Web dynamique en général n est pas dynamique à 100%, elle doit contenir quelques parties statiques et d autres dynamiques. Donc, le code HTML représente la partie statique de la page à générer, tandis que les codes PHP permettent de générer la partie dynamique de cette page. Exemple 1 : «premier_script.php» /* * La fonction echo permet d'afficher un contenu (texte, HTML, CSS, ) */ echo "Ceci est mon premier script PHP"; Explication: Ce script contient un seul code PHP qui permet d afficher un texte simple à travers la fonction prédéfinie echo. Exemple 2 : «deuxieme_script.php» <title>premiers pas avec le PHP</title> <meta charset="utf-8"> echo "Il est ". date("h:i:s", strtotime('1 hour')). " chez le serveur"; Explication: Ce script contient un code HTML qui représente la partie statique de la page à générer, et un seul code PHP permettant de générer l heure actuelle du serveur à l intérieur de l élément body. La

fonction prédéfinie date("h:i:s", strtotime('1 hour')) permet d afficher l heure actuelle sur le serveur sous format GMT+1. Le point. permet de faire la concaténation entre chaines de caractères. Exemple 3 : «Générer un code HTML+CSS dynamiquement» <title>premiers pas avec le PHP</title> <meta charset="utf-8"> echo "<p style='color :red'>il est ". date("h:i:s", strtotime('1 hour')). " chez le serveur</p>"; Exemple 4 : «Générer un code JavaScript dynamiquement» <title>premiers pas avec le PHP</title> <meta charset="utf-8"> echo "<script>alert('il est ". date("h:i:s", strtotime('1 hour')). " chez le serveur') ;</script>"; Explication: La fonction prédéfinie echo permet non seulement de générer un texte simple (comme dans les exemples 1 et 2), mais aussi des codes HTML+CSS, et des scripts JS. 2. Les variables : Les variables doivent être précédées par $ et peuvent avoir plusieurs types de données : Integer, Float, Chaine de caractères, Booléen, Array, Ressource (utilisée avec les bases de données). Exemple 5 : «variables.php» <title>variables et types de données en PHP</title> <meta charset="utf-8"> //Déclaration de variables $message = "Bonjour tout le monde"; //String $x = 9; //Integer $y = 12.23; //Float $reponse = true; //Boolean //Affichage de variables echo $message. "<br>" ;

echo $x. "<br>" ; echo ($x + $y). "<br>" ; echo "<h3 style='color:red'>". $x. " + ". $y. " = ". ($x + $y). "</h3><br>"; 3. Les chaines de caractères : Les chaines de caractères doivent être délimitées par des "" ou ' '. Le point (.) est utilisé pour faire la concaténation entre deux chaines de caractères. Plusieurs fonctions prédéfinies existent et qui permettent de manipuler les chaines de caractères comme celles utilisées dans l exemple ci-après : strlen(), str_word_count(), str_replace(). Exemple 6 : «chaines_de_caracteres.php» <title>les chaînes de caractères en PHP</title> <meta charset="iso-8859-15"> $message_1 = "Bonjour "; $message_2 = "tout le monde"; //La concaténation est faite par l'opérateur "." $message = $message_1. $message_2; echo $message. "<br/>"; //strlen() retourne la taille d'une chaîne echo "Taille de la chaîne est : ". strlen($message). "<br/>"; //str_word_count() retourne le nombre de répétitions d'un mot dans une chaîne echo "Nombre de mots : ". str_word_count($message). "<br/>"; //str_replace() remplace toutes les occurrences d'un mot par un autre mot echo str_replace('tout le monde', 'à tous ', $message). "<br/>"; 4. Les constantes : Les constantes sont déclarées avec la fonction prédéfinie define(nom_constante, valeur_constante). N oubliez pas de précéder le nom de la constante par $ au niveau de l appel. Exemple 7 : «constantes.php» <title>les constantes en PHP</title> <meta charset="utf-8"> define('message', 'Bonjour tout le monde'); //Constante de type String

define('x', 9); define('y', 12.23); define('reponse', true); echo message."<br/>"; echo x + y; //Constante de type Integer //Constante de type Float //Constante de type Boolean 5. Les fonctions : Comme en JavaScript, les fonctions en PHP doivent être déclarées avec le mot-clé function et les valeurs de retour sont retournées avec le mot-clé return. La fonction n est exécutée qu après l appel. Le script suivant contient plusieurs fonctions avec ou sans paramètres, et avec ou sans valeurs de retour. Les paramètres peuvent avoir des valeurs par défaut comme le cas de la fonction addition($v1=21, $v2=34), cette fonction possède deux paramètres $v1 et $v2 et chaque paramètre a une valeur par défaut. Au niveau de l appel de la fonction si un paramètre n est pas mentionné alors c est sa valeur par défaut qui est utilisée. L appel addition(4, 5) retourne 9, addition(4) fait l addition de 4 avec la valeur par défaut de $v2 donc le résultat sera 38, tandis que addition() fait l addition de la valeur par défaut de $v1 avec la valeur par défaut de $v2, donc le résultat sera 55. Exemple 8 : «fonctions.php» <title>les fonctions en PHP</title> <meta charset = "ISO-8859-15"> //Fonction sans paramètres ni valeur de retour function bonjour_a_tous(){ echo "Bonjour tout le monde <br>"; //Fonction avec paramètres mais sans valeur de retour function special_bonjour($nom){ echo "Bonjour ". $nom. "<br>"; //Fonction avec paramètres et valeur de retour function addition($v1 = 21, $v2 = 34){ return $v1 + $v2; //Appels des fonctions bonjour_a_tous(); special_bonjour("mohamed"); echo addition(4, 5). "<br/>"; echo addition(4). "<br/>"; echo addition(). "<br/>";

6. La portée de variables : Les variables globales en PHP ne peuvent pas être utilisées à l intérieur de fonctions par un simple appel comme en JavaScript. L appel à la ligne 11 du script suivant retourne une erreur vu que la variable message n est pas reconnue à l intérieur de la fonction. Pour résoudre ce problème, chaque variable globale en PHP doit être appelée à travers le tableau prédéfini de variables globales $GLOBALS, comme c est fait à la ligne 12. Les variables statiques doivent être précédées par le mot-clé static. Exemple 9 : «portee_variables.php» <title>portée de variables en PHP</title> <meta charset = "ISO-8859-15"> $message = "Bonjour tout le monde <br><br>"; //Une variable globale function afficher(){ //echo $message ; //Cet appel génère une erreur!!! echo $GLOBALS['message']; //Affichage de la variable globale afficher(); function variable_statique(){ static $nbre_appels = 1; echo "Cette fonction a été appelée ". $nbre_appels. " fois <br>"; $nbre_appels++; variable_statique(); variable_statique(); variable_statique(); 7. Les tableaux indexés : Les tableaux en PHP sont déclarés par la fonction prédéfinie array(valeur1, valeur2,.). La première valeur prend l indice 0, la deuxième l indice 1, et ainsi de suite. Lisez attentivement le script suivant pour comprendre comment déclarer un tableau, comment accéder à ses valeurs, comment les modifier, et comment ajouter de nouvelles valeurs. La fonction prédéfinie count() permet de retourner la taille d un tableau. Exemple 10 : «tableaux_indexes.php» <title>les tableaux indexés en PHP</title> <meta charset="iso-8859-15">

//Création d'un tableau indexé $tab = array(10, "message", 10.34); echo "Valeur 1: ". $tab[0]. ", Valeur 2: ". $tab[1]. ", Valeur 3: ". $tab[2]. "<br><br>"; //Modifier des valeurs $tab[0] = 20; //Ajouter une nouvelle valeur $tab[3] = "autre valeur"; //Parcourir un tableau echo "La fonction count() retourne la taille d'un tableau <br><br>"; for ($i = 0; $i < count($tab); $i++){ if($i == 0){ echo "1 <sup>ère</sup> valeur = ". $tab[$i]. "<br>"; else { echo ($i + 1). "<sup>ème</sup> valeur = ". $tab[$i]. "<br/>"; > 8. Les tableaux multidimensionnels (matrices) : Exemple 11 : «matrices.php» <title>les tableaux multidimensionnels en PHP</title> <meta charset="iso-8859-15"> //Création d'un tableau multidimensionnel (Matrice) $matrice = array( array(10, 20, 30), array (40, 50, 60), array (70, 80, 90), array (100, 110, 120) ); //Parcourir une matrice for ($i=0;$i<4; $i++){ for ($j=0;$j<3; $j++){ echo $matrice[$i][$j]. " "; echo "<br/>";

9. Les structures de contrôle : Voici la syntaxe de chacune des structures if, if else, if elseif : if (condition){ //actions; Exemple 12 : «conditions.php» <title>branchement conditionnel en PHP</title> <meta charset = "ISO-8859-15"> function periode_de_vie($age){ if($age < 0){ echo "Pas encore né" ; elseif($age > 0 && $age <= 2){ echo "Bébé" ; elseif($age > 2 && $age <= 12){ echo "Enfant" ; elseif($age > 12 && $age <= 18){ echo "Adolescent" ; elseif($age > 18 && $age <= 70){ echo "Adulte" ; else { echo "Personne âgée" ; if (condition){ //actions; else { //autres actions; if (condition_1){ //action 1; elseif (condition_2){ //action 2; else { //autres actions periode_de_vie(13); Le script suivant montre la syntaxe de la structure switch : $couleur_preferee = "rouge"; switch ($couleur_ preferee) { case "rouge": echo "Votre couleur préférée est le Rouge"; break; case "blue": echo " Votre couleur préférée est le Bleu"; break; default: echo "Votre couleur préférée n est ni le rouge ni le bleu";

Voici la syntaxe de chacune des structures while, do while, for: while (condition){ //actions; do { //actions; while (condition); for ($i = 0; $i < 10; $i++){ //actions; C. Traitement des formulaires HTML avec PHP Lors de la création d un formulaire HTML par la balise <form>, on précise comment les données du formulaire sont envoyées au serveur et par quel script elles seront traitées. Le traitement est fait par un script côté serveur (le PHP dans notre cas) et l envoi est fait soit par la méthode GET soit par la méthode POST. Ces deux informations sont à mentionner par les attributs method et action de la balise <form>. Par exemple, le formulaire <form method="get" action="traitement.php"> </form> précise que les données sont envoyées au serveur à travers la méthode GET et elles seront traitées par le script traitement.php. La méthode GET envoie les données du formulaire dans l URL donc elle dépend de la taille maximale de l URL, et les données sont envoyées en clair (Attention : s il s agit d un mot de passe alors sa valeur sera envoyée en clair dans l URL!!!). La méthode POST qui est la plus utilisée envoie les données, d une façon transparente, à travers la méthode HTTP POST. 1. Utilisation de la méthode GET: La page HTML suivante (formulaire.html) contient un formulaire avec deux champs nom et prénom. Les données de ces deux champs sont envoyées au serveur par la méthode GET et elles seront traitées par le script traitement_get.php. Exemple 13 : «formulaire_1.html» <title>traitement de formulaires avec PHP</title> <meta charset="iso-8859-15"> <div align="center"> <form method="get" action="traitement_get.php"> <table> <tr> <td><label>nom</label></td><td><input type="text" name="nom"></td> </tr> <tr> <td><label>prénom</label></td><td><input type="text" name="prenom"></td>

</tr> <tr> <td colspan="2" align="center"><input type="submit" value="valider les données"></td> </tr> </table> </form> </div> Le PHP possède un tableau prédéfini $_GET qui permet de conserver toutes les données du formulaire qui sont envoyées par la méthode GET. La récupération des valeurs du formulaire est faite à travers le nom de chaque composant du formulaire. Le formulaire de la page HTML précédente contient deux composants identifiés respectivement par name="nom" et name="prenom". Donc, au niveau du serveur la récupération du nom et du prénom saisis est faite par $_GET["nom"] et $_GET["prenom"]. Le script PHP suivant permet de récupérer les données de la page formulaire.html et les afficher. Exemple 14 : «traitement_get.php» $nom = $_GET["nom"] ; $prenom = $_GET["prenom"] ; echo "Les donnees de votre formualire sont:<br>"; echo "Nom: ". $nom. ", Prenom: ". $prenom ; 2. Utilisation de la méthode POST: Dans la page formulaire_1.html remplacez method="get" par method="post" et action="traitement_get.php" par action="traitement_post.php". Dans ce cas les données du formulaire vont être envoyées par la méthode POST. Au niveau du serveur, ces données sont récupérées à travers le tableau prédéfini $_POST qui permet de conserver toutes les données du formulaire qui sont envoyées par la méthode POST. Donc, $_POST["nom"] et $_POST["prenom"] retournent le nom et le prénom saisis dans le formulaire. Le script PHP suivant permet de récupérer les données de la page modifiée formulaire.html et les afficher. Exemple 15 : «traitement_post.php» $nom = $_POST["nom"] ; $prenom = $_POST["prenom"] ; echo "Les donnees de votre formualire sont:<br>"; echo "Nom: ". $nom. ", Prenom: ". $prenom ; 3. Traitement des différents champs d un formulaire HTML : Supposant dans ce qui suit que la méthode utilisée est POST. Nous allons voir comment récupérer la valeur de chaque champ dans un formulaire HTML.

<input type="text" name="nom"/>: $_POST['nom'] retourne la valeur saisie dans ce champ. C est le même principe pour tous les champs input (type égal à "password", "number", "date", ). Boutons radios à sélection unique : Supposons que l on a trois boutons radios comme suit : <input type="radio" name="diplome" value="l" checked/> <input type="radio" name="diplome" value="m" /> <input type="radio" name="diplome" value="d" /> Alors, $_POST['diplome'] retourne la valeur du bouton sélectionné (donc la valeur "L", "M" ou "D"). Le traitement peut être effectué comme suit : <?php $diplome = $_POST['diplome'] ; if($diplome == "L"){ echo "vous êtes en Licence"; elseif($diplome == "M") { echo "vous êtes en Master"; else { echo "vous êtes en Doctorat"; Eléments de type select : Le même principe des boutons radio est appliqué pour les éléments de type select. C'est-à-dire, $_POST['nom_du_select'] retourne la valeur de l option choisie. Supposons que l on a un élément select avec deux options comme suit : <select name="ville"> <option value="orn">oran</option> <option value="tlm" selected>tlemcen</option> </select> Le traitement en PHP est fait comme suit : <?php $ville = $_POST['ville'] ; if($ville == "orn"){ echo "vous habitez à Oran"; else { echo "vous habitez à Tlemcen"; Cases à cocher (checkbox) : Supposons que l on a trois choix présentant des activités sportives : <input type="checkbox" name="foot" checked/> <input type="checkbox" name="cyclisme" /> <input type="checkbox" name="natation" checked/> Lors de la validation du formulaire, uniquement les valeurs des cases cochées sont envoyées au serveur. Donc vu que l on a deux cases cochées, le serveur reçoit uniquement deux valeurs $_POST['foot'] et $_POST['natation'], l appel $_POST['cyclisme'] retourne une erreur. Pour détecter si une case est cochée ou pas on peut utiliser la fonction prédéfinie isset() qui permet de tester si la valeur d un champ existe et si elle est différente de NULL. Avec cette fonction, le traitement de ces trois cases peut être fait comme suit :

<?php if(isset($_post['foot'])){ echo "vous faites du Football <br>"; if(isset($_post['cyclisme'])) { echo "vous faites du cyclisme <br>"; if(isset($_post['natation'])) { echo "vous êtes de la natation <br>"; D. Envoi et récupération de données multimédia (Images, PDF, ) Exemple de l envoi et de l enregistrement d une photo <form enctype="multipart/form-data" method="post" action="traitement_multimedia.php"> <label>votre photo</label> <input type="hidden" name="max_file_size" value="100000"> <input type="file" name="photo" accept="image/*"> </form> 1. Dans le formulaire, il faudra préciser au navigateur que vous allez envoyer des données multimédia et pas uniquement du texte simple. Cela est fait en ajoutant enctype="multipart/form-data". 2. Une fois vous précisez l envoi de données multimédia, ces données vont être reçues au sein du serveur dans un tableau global qui s appelle $_FILES. Ce dernier contient toutes les données non textuelles envoyées par le biais de votre formulaire. Rappelons que les données textuelles sont enrégistrées dans le tableau $_GET ou $_POST. 3. Les deux attributs name="max_file_size" et value="100000" qui précèdent l élément d envoi (<input type="file">) spécifient la taille maximale en octet du fichier que vous voulez envoyer au serveur. Dans ce cas, c est 100 Ko. Si vous essayez d envoyer un fichier dont la taille dépasse 100Ko alors ce dernier ne sera pas envoyé au serveur. Le traitement au niveau du serveur est fait comme suit : if($_files['photo']['error'] == 0){ $extension = strrchr($_files['photo']['name'], '.'); echo $_FILES["photo"]["name"]."<br>"; if (move_uploaded_file($_files["photo"]["tmp_name"], "nouveau_nom". $extension)) { echo "Votre photo a été enregistrée avec succès"; else { echo "Erreur lors de l'enregistrement"; else { echo "Erreur lors de l'envoi"; 4. $_FILES['photo']['error'] retourne le nombre d erreurs qui ont été rencontrées lors de l envoi de la photo vers le serveur. Si c est égal à 0 alors il n y a pas eu d erreurs donc on peut procéder à l enregistrement. 5. $_FILES['photo']['name'] retourne le nom original de la photo telle qu elle était enregistrée au sein de la machine client. Tandis que $_FILES['photo']['tmp_name'] retourne le nom temporaire de la photo telle qu elle est enregistrée temporairement au niveau du serveur. L image reste dans le dossier temporaire du serveur jusqu à ce que le script PHP en question sera fermé. Si elle n a pas été enregistrée alors elle sera perdue après la fermeture du script PHP.

6. La fonction prédéfinie move_uploaded_file permet de déplacer la photo du dossier temporaire vers un autre emplacement, ceci va éviter la perte de la photo après la fermeture du script, donc une sorte d enregistrement. Le 1 er argument de la fonction est le nom de la photo qui se trouve dans le dossier temporaire, et le 2 ème paramètre indique le nouveau nom et l emplacement dans lequel la photo va être enregistrée. Si on indique uniquement le nom sans l emplacement, alors la photo sera enregistrée par défaut dans le dossier courant où il se trouve votre script PHP. Sinon, si on veut enregistrer la photo dans un autre endroit alors il suffit de précéder le nom par un chemin comme par exemple : "donnes/mes_photos/"."nouveau_nom". $extension. 7. Vous pouvez également autoriser l enregistrement des fichiers ayant quelques extensions uniquement. Ceci peut être fait comme suit : $extensions = array('.png', '.gif', '.jpg', '.jpeg'); $extension = strrchr($_files['photo']['name'], '.'); if(! in_array($extension, $extensions)){ echo 'Erreur! Les extensions de fichiers acceptées sont : png, gif, jpg, jpeg';