PHP, qu est-ce que c est? Langage de script PHP. Petit exemple PHP. Petit exemple PHP Le script contact.php, relié au formulaire précédent

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

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

TP JAVASCRIPT OMI4 TP5 SRC

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Séance d ED n 5 : HTML et JavaScript

Formulaire pour envoyer un mail

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

Introduction. Passage de sites statiques à des sites dynamiques

Mysql avec EasyPhp. 1 er mars 2006

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)

Programmation Web. Madalina Croitoru IUT Montpellier

Techniques de Programmation pour Internet

SYSTÈMES D INFORMATIONS

HTML/CSS - Travaux Pratiques 2

Attaques applicatives

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

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

Introduction à MATLAB R

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

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

Bases de programmation. Cours 5. Structurer les données

TD HTML AVEC CORRECTION

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

Mise en place d un serveur Proxy sous Ubuntu / Debian

Attaques de type. Brandon Petty

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL


Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Stockage du fichier dans une table mysql:

Initiation à la programmation en Python

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

1. Structure d'un programme FORTRAN 95

Notions fondamentales du langage C# Version 1.0

Cours Bases de données 2ème année IUT

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

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.

Programmation C++ (débutant)/instructions for, while et do...while

Cours d algorithmique pour la classe de 2nde

Comment développer et intégrer un module à PhpMyLab?

Calcul Formel et Numérique, Partie I

Définitions. Numéro à préciser. (Durée : )

Découverte de Python

TP 1. Prise en main du langage Python

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

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

AWS avancé. Surveiller votre utilisation d EC2

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Algorithmique et Programmation, IMA

Module BD et sites WEB

Sécurité des applications web. Daniel Boteanu

CREATION WEB DYNAMIQUE

Introduction au langage C

STAGE IREM 0- Premiers pas en Python

1 Position du problème

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

ACTIVITÉ DE PROGRAMMATION

PDO : PHP Data Object 1/13

Chap III : Les tableaux

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Démonstration de la mise en cache via HTML 5 sur iphone

Claude Delannoy. 3 e édition C++

Hébergement de site web Damien Nouvel

Extended communication server 4.1 : VoIP SIP service- Administration

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

ALGORITHMIQUE ET PROGRAMMATION En C

Cours Informatique Master STEP

Activités HTML. Code: act-html

STID 2ème année : TP Web/PHP

Recherche dans un tableau

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Les structures. Chapitre 3

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

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

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Java Licence Professionnelle CISII,

DOM - Document Object Model

Programmer en JAVA. par Tama

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Corrigés des exercices du livre. Exercices du chapitre 2

TD3: tableaux avancées, première classe et chaînes

PHP 5.4 Développez un site web dynamique et interactif

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Web statique : client-serveur. PHP/MySQL: Sites dynamiques Formulaires et bases de données. Discussion HTTP. Caractéristiques du HTTP

PLATE-FORMES LIBRES *AMP CYBER PAIEMENT / CYBER PLUS PAIEMENT GUIDE DE MIGRATION FACILE ET EN UNE HEURE PLATE-FORME SYSTEMPAY

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Algorithmique & programmation

Le prototype de la fonction main()

PHP 4 PARTIE : BASE DE DONNEES

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

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Transcription:

PHP, qu est-ce que c est? Langage de script PHP Un langage pour la programmation du serveur Permet d inclure des parties programmés dans du HTML Un moyen simple (!) de créer dynamiquement des pages HTML Très riche en fonctions, notamment pour l accès aux bases de données Dao (Université d Orléans) Applications Web 82 / 175 Dao (Université d Orléans) Applications Web 83 / 175 Petit exemple PHP Côté client : le formulaire <form action="contact.php" method="post"> <fieldset> <legend>nous contacter</legend> <input type="radio" name="civil" value="m" checked >Monsieur <input type="radio" name="civil" value="mme" >Madame <input type="radio" name="civil" value="mlle" >Mademoiselle <br> Nom et prénom <input type="text" name="nomprenom" size="50pxe" maxlength="10"> <br> Votre commentaire <br> <textarea name="commentaire" rows="5" cols="30"> </textarea> <br> <input type="submit" value="envoyer"> <input type="reset" value="annuler"> </fieldset></form> Petit exemple PHP Le script contact.php, relié au formulaire précédent <!doctype html> <html> <head> <title> Résultat du formulaire</title> </head> <body> <h1> Résultat</h1> $civilite=$_post[ civil ]; $nom=$_post[ nomprenom ]; $comm=$_post[ commentaire ]; echo "J ai reçu les données suivantes, venant du formulaire<br>\n"; echo "Civilité : $civilite <br>"; echo "Nom et prénom : $nom <br>"; echo "Votre commentaire : $comm <br>"; </body> </html> Dao (Université d Orléans) Applications Web 84 / 175 Dao (Université d Orléans) Applications Web 85 / 175

Comment ça marche? Génération de page html : page envoyée au client <!doctype html> <html> <head> <title> Résultat du formulaire</title> </head> <body> <h1> Résultat</h1> J ai reçu les données suivantes, venant du formulair Civilité : M <br>nom et prénom : dupont toto <br> Votre commentaire : un texte de commentaire <br> </body> </html> Dao (Université d Orléans) Applications Web 86 / 175 Dao (Université d Orléans) Applications Web 87 / 175 Commentaires en PHP Tout ce qui se trouve dans un commentaire est ignoré. Il est conseillé de commenter largement ses scripts. Types de commentaires // commentaire de fin de ligne /* commentaire sur plusieurs lignes */ Variables Une variable peut être vue comme un emplacement de la mémoire qui contient une information manipulable par le programme. On peut attribuer à une variable une valeur ou lui appliquer une opération. Syntaxe : $Nom, où Nom est le nom de la variable. Attention : distinction majuscules/minuscules Pas de déclaration de variable en PHP L apparition d un nouveau symbole préfixé par $ entraîne la création d une variable La valeur initiale est "" ou 0 selon le contexte Le typage est dynamique Une même variable peut être utilisée pour stocker plusieurs types de données Des conversions sont appliquées quand c est nécessaire Dao (Université d Orléans) Applications Web 88 / 175 Dao (Université d Orléans) Applications Web 89 / 175

Types scalaires A propos des chaînes de caractères Les entiers $i = 1 ; Les flottants $i = 1.12 ; Les chaînes de caractères $i = "Je suis une chaîne" ; Les booléens $i = true ; NB : 0 ou "" valent false, tout le reste vaut true Apostrophes simples : mise en page quelconque $c = Je suis une chaîne de caractères ; Apostrophes doubles : possibilité d inclure des variables $nom = "Harry Potter"; $c = "Je m appelle $nom"; Dao (Université d Orléans) Applications Web 90 / 175 Dao (Université d Orléans) Applications Web 91 / 175 Production de HTML Fonctions On écrit avec echo ou printf On écrit des chaînes ou des variables En utilisant la concaténation. (point) $nom = "Potter"; $nb=4; echo "Je m appelle $nom"." et je prend le métro ".$nb." fois par jour"; Caractères spéciaux : \n (nouvelle ligne), \r (retour à la ligne), \t (tabulation), \\ (antislash), \$ (caractère dollars), \ (double quote) On peut définir une tache dans une fonction Utile lorsque la tache est demandée dans différents endroits d un script ou dans différents scripts, il suffit d appeler la fonction qui définit la tache : dans un script page.php, on définit deux fonctions function debutpage() { echo "<html>\n"; echo "<body>"\n; function finpage() { echo "</body>\n"; echo "</html>\n"; Dao (Université d Orléans) Applications Web 92 / 175 Dao (Université d Orléans) Applications Web 93 / 175

Utilisation de fonctions Portée de variables Script essaie.php require("page.php"); debutpage(); echo "Bonjour\n"; finpage(); Page HTML générée <html> <body> Bonjour </body> </html> En PHP les variables peuvent être créées et utilisées n importe où dans le script La portée d une variable est la partie du script où la variable peut être utilisée PHP a 3 types de portées de variables locale globale statique Dao (Université d Orléans) Applications Web 94 / 175 Dao (Université d Orléans) Applications Web 95 / 175 Variables globales et locales Mot clé global Une variable déclarée à l extérieure d une fonction est globale et ne peut être utilisée qu à l extérieure de la fonction Une variable déclarée à l intérieure d une fonction est locale et ne peut être utilisée qu à l intérieure de la fonction Le mot clé global permet d accéder à une variable globale à l intérieure d une fonction PHP stocke aussi les variables globales dans le tableau $GLOBAL[index] variable globale $x = 5; // variable globale function test() { // accéder à l intérieure créer une erreur echo "à l intérieure x = $x\n"; test(); echo "à l extérieure x = $x\n"; variable locale function test() { $x = 5; // variable locale echo "à l intérieure x = $x\n"; test(); // accéder à l extérieure créer une erreur echo "à l extérieure x = $x \n"; globale $x = 5; $y = 10; function mytest() { global $x, $y; $y = $x + $y; mytest(); echo $y; // outputs 15 $GLOBAL $x = 5; $y = 10; function mytest() { $GLOBALS[ y ] = $GLOBALS[ x ]+$GLOBALS[ y ]; mytest(); echo $y; // outputs 15 Dao (Université d Orléans) Applications Web 96 / 175 Dao (Université d Orléans) Applications Web 97 / 175

Expresssions Opérateurs Expression : tout ce qui a une valeur 10 $i $i+2 $i == 1 Opérateurs arithmétiques : +,,,/ $i = 2 ; $i = ($i + 1)*3 ; Comparaison : ==, <, >, <=, >= $i == 2 $i <= $j+1 Opérateurs logiques : && (and), (or),! (not) ($i < 1) && ($j >= $i+2) Concaténation de chaînes $nom="harry" ; $prenom="potter" ; $np=$nom." ".$prenom Dao (Université d Orléans) Applications Web 98 / 175 Dao (Université d Orléans) Applications Web 99 / 175 Structure de contrôle conditionnelle Structures de contrôle composées PHP admet les structures de contrôle conditionnelles pour exécuter une partie de code ou une autre Syntaxe if (expression booléenne) { liste d instructions 1 else { liste d instructions 2 Cela signifie que lorsque l expression booléenne est vérifiée, la première liste d instructions sera exécutée. Dans le cas contraire, c est la deuxième liste d instruction qui sera exécutée. Structure if... elseif... else Syntaxe if (expression booléenne 1) { liste d instructions 1 elseif (expression booléenne 2){ liste d instructions 2 else { dernière liste d instructions Dao (Université d Orléans) Applications Web 100 / 175 Dao (Université d Orléans) Applications Web 101 / 175

Structures switch if ($nb<0) { echo "$nb est un nombre negatif"; elseif ($nb>0) { echo "$nb est un nombre positif"; else echo "$nb est nul"; Syntaxe switch (n) { case label1: code to be executed if n=label1; case label2: code to be executed if n=label2; case label3: code to be executed if n=label3;... default: code to be executed if n is different from all labels; Dao (Université d Orléans) Applications Web 102 / 175 Dao (Université d Orléans) Applications Web 103 / 175 switch $favcolor = "red"; switch ($favcolor) { case "red": echo "Your favorite color is red!"; case "blue": echo "Your favorite color is blue!"; case "green": echo "Your favorite color is green!"; default: echo "Your favorite color is neither red, blue, or green!" Les boucles PHP admet également les boucles qui permettent de répéter des instructions de manière itérative. Trois types de boucles : WHILE... DO... WHILE... FOR... FOREACH... Le choix est en fonction du nombre de répétitions : au moins 1 fois ou au moins 0 fois La boucle foreach est adaptée pour les tableaux Dao (Université d Orléans) Applications Web 104 / 175 Dao (Université d Orléans) Applications Web 105 / 175

Boucle WHILE boucle while Syntaxe WHILE while (expression booléenne) { liste d instructions L ordre d exécution : 1 l expression booléenne est examinée, 2 si elle est vraie alors la liste d instructions est exécutée, puis on revient au point 1 (répétition), 3 si elle est fausse alors la boule while s arrête. La liste d instructions est exécutée 0 ou plusieurs fois. Afficher tous les entiers de 0 à un entier stocké dans $n avec la boucle WHILE $i = 0; while ($i <= $n) { echo "$i\t"; $i = $i+1; Dao (Université d Orléans) Applications Web 106 / 175 Dao (Université d Orléans) Applications Web 107 / 175 Boucle DO...WHILE boucle DO... WHILE Syntaxe DO...WHILE do { liste d instructions while (expression booléenne); L ordre d exécution : 1 la liste d instructions est exécutée, 2 puis l expression booléenne est examinée, si elle est vérifiée, on revient au point 1 (répétition), sinon la boule do...while s arrête. La liste d instructions est exécutée au moins une fois. Afficher tous les entiers de 0 à un entier stocké dans $n avec la boucle DO... WHILE $i = 0; do { echo "$i\t"; $i = $i+1; while ($i <= $n); Dao (Université d Orléans) Applications Web 108 / 175 Dao (Université d Orléans) Applications Web 109 / 175

Boucle FOR boucle FOR Syntaxe FOR for (instruction1; expression booléeene; instruction2){ liste d instructions L ordre d exécution : 1 l instruction1 exécutée 2 si l expression booléenne est vraie, la liste d instructions est exécutée 3 l instruction2 exécutée, on recommence du point 2 (répétition) La liste d instructions est exécutée 0 ou plusieurs fois. Afficher tous les entiers de 0 à un entier stocké dans $n avec la boucle FOR for ($i=0; $i <= $n; $i++) { echo "$i\t"; Dao (Université d Orléans) Applications Web 110 / 175 Dao (Université d Orléans) Applications Web 111 / 175 Tableaux Un tableau (array) est une variable spéciale, qui regroupe plusieurs variables sous le même nom, chacune étant différenciée des autres par un indice En PHP, la fonction array() permet de créer un tableau En PHP, trois types de tableau existent : Tableaux indexés par des indices numériques Tableaux associatifs, éléments accessibles par une clé Tableaux multidimensionnels. Tableau avec indices numériques Les indices commencent par 0 On peut créer un tableau rempli ou remplir les cases d un tableau une par une : $cars = array("volvo", "BMW", "Toyota"); $t[0] = "bonjour" $t[1] = 123 $t[2] = "bonsoir" On peut aussi utiliser une boucle pour remplir une série de cases : for ($i=3; $i < count($t); $i++) { $t[$i] = $i * 3; Dao (Université d Orléans) Applications Web 112 / 175 Dao (Université d Orléans) Applications Web 113 / 175

Nombre d éléments d un tableau Fonction count($var) renvoie le nombre d éléments dans le tableau $var count() peut renvoyer 0 si $var n a pas été affecté, ou si c est un tableau vide. Il faut utiliser isset() pour tester si la variable existe $a[0] = 1; $a[1] = 3; $a[2] = 5; $n = count ($a); // $n vaut 3 ici $x = count(null); // $x vaut 0 $y = count(false); // $y vaut 1 Tableau associatif Les tableaux associatifs utilisent des clés pour accéder aux éléments Deux méthodes existent pour créer un tableau associatif : $age = array("peter"=>"35", "Ben"=>"37", "Joe"=>"43"); $age[ Peter ] = "35"; $age[ Ben ] = "37"; $age[ Joe ] = "43"; On accède aux éléments par les clés : $age = array("peter"=>"35", "Ben"=>"37", "Joe"=>"43"); echo "Peter is ". $age[ Peter ]. " years old."; Dao (Université d Orléans) Applications Web 114 / 175 Dao (Université d Orléans) Applications Web 115 / 175 Afficher le contenu d un tableau L utilisation de echo $t ne permet pas d afficher le contenu du tableau t Il faut passer par les cases une par une for ($i=0; $i<count($t); $i++) { echo "case numéro $i : ".$t[$i]. " <br>\n"; On peut utiliser la boucle foreach $colors = array("red", "green", "blue", "yellow"); Afficher le contenu d un tableau associatif Pour accéder à tous les éléments d un tableau associatif, on peut utiliser la boucle foreach $age = array("peter"=>"35", "Ben"=>"37", "Joe"=>"43"); foreach($age as $x => $x_value) { echo "Cle=". $x. ", Valeur=". $x_value; echo "<br>"; foreach ($colors as $value) { echo "$value <br>"; Dao (Université d Orléans) Applications Web 116 / 175 Dao (Université d Orléans) Applications Web 117 / 175

Fonctions de tri de tableau sort() et rsort() Trier un tableau d après l ordre lexicographique ou numérique PHP fournit quelques fonctions de tri de tableau sort() : trier tableau dans l ordre croissant rsort() : trier tableau dans l ordre décroissant asort() : trier tableau dans l ordre croissant des valeurs ksort() : trier tableau dans l ordre croissant des clés arsort() : trier tableau dans l ordre décroissant des valeurs krsort() : trier tableau dans l ordre décroissant des clés Script PHP $cars = array("volvo", "BMW", "Toyota"); sort($cars); $clength = count($cars); for($x = 0; $x < $clength; $x++) { echo $cars[$x]."<br>\n"; $numbers = array(4, 6, 2, 22, 11); rsort($numbers); $arrlength = count($numbers); for($x = 0; $x < $arrlength; $x++) { echo $numbers[$x]."<br>\n"; Résultat HTML BMW<br> Toyota<br> Volvo<br> 22<br> 11<br> 6<br> 4<br> 2<br> Dao (Université d Orléans) Applications Web 118 / 175 Dao (Université d Orléans) Applications Web 119 / 175 asort() et arsort() ksort() et krsort() Trier un tableau associatif par valeurs (par l ordre croissant ou décroissant) Trier un tableau associatif par clés (par l ordre croissant ou décroissant) Script PHP Résultat HTML Script PHP Résultat HTML $age = array("peter"=>"35", "Ben"=>"37", "Joe"=>"43"); asort($age); Key=Peter, Value=35 Key=Ben, Value=37 Key=Joe, Value=43 $age = array("peter"=>"35", "Ben"=>"37", "Joe"=>"43"); krsort($age); Key=Peter, Value=35<br> Key=Joe, Value=43<br> Key=Ben, Value=37<br> foreach($age as $x => $x_value) { echo "Key=". $x. ", Value=". $x_value; echo "<br>\n"; foreach($age as $x => $x_value) { echo "Key=". $x. ", Value=". $x_value; echo "<br>\n"; Dao (Université d Orléans) Applications Web 120 / 175 Dao (Université d Orléans) Applications Web 121 / 175