94

Click here to load reader

Programmation Web - Cours PHP 1 Introduction

Embed Size (px)

Citation preview

Hachem EL YOUSFI ALAOUIDUT GLR - Fvrier 20013

ENSET DE RABAT UNIVERSITE MOHAMMED v SOUISSI

Principe du Web

ELYOUSFI - ENSET Fvrier 2013

2

Serveur web Un serveur web est un hte sur lequel fonctionne un serveur HTTP

(ou serveur web). Un serveur web hberge les ressources quil dessert. Un navigateur web est un logiciel client HTTP conu pour accder aux ressources du web. Sa fonction de base est de permettre la consultation des documents HTML disponibles sur les serveurs HTTP. Le support dautres types de ressource et dautres protocoles de communication dpend du navigateur considr. Une page web (ou page) est un document destin tre consult avec un navigateur web. Une page web est toujours constitue dune ressource centrale (gnralement un document HTML) et dventuelles ressources lies automatiquement accessibles (par exemple, des images). Voir http://www.wampserver.com http://www.easyphp.org

ELYOUSFI - ENSET Fvrier 2013

3

Serveur HTTPo Il existe diffrents serveurs http Apache : http://httpd.apache.org IIS : www.microsoft.com Information sur le protocole http: www.w3.org/Protocoles/ o change dinformation entre serveur et clients Pour changer des informations entre le serveur et, les

clients on utilise le protocole HTTP (ensemble de rgles de codes) Nestcape Navigator, Microsoft Internet Explorer, lynx, iCab, ELYOUSFI - ENSET Fvrier 2013 4

Principe Web PHP

ELYOUSFI - ENSET Fvrier 2013

5

EasyPHP 1r package WAMP . (/LAMP) (Windows, Appache, MySQL et PHP / Linux, Appache, MySQL et PHP)

Il s'agit d'une plateforme de dveloppement Web, permettant de faire fonctionner localement des scripts PHP. Cest un environnement comprenant : Deux serveurs : Un serveur web Apache Un serveur de bases de donnes MySQL Un interprteur de script (PHP) Une administration SQL phpMyAdmin.

ELYOUSFI - ENSET Fvrier 2013

6

EasyPHP Installation dEasyPHP Tlchargez la dernire version dEasyPHP (serveur de dveloppement : e.devserver) partir du site Web http://www.easyphp.org.

Excutez le fichier tlcharger et suivre lassistant Remarque: Risque de conflit de port pour ApacheELYOUSFI - ENSET Fvrier 2013 7

EasyPHP Lancement et vrification

ELYOUSFI - ENSET Fvrier 2013

8

PHP Hypertext Preprocessor: les bases PHP signifiait { lorigine Personnal Home page. PHP (officiellement "PHP: Hypertext Preprocessor") langage de script (Interprt) qui est principalement

utilis pour tre excut par un serveur HTTP, mais il peut fonctionner comme n'importe quel langage interprt en utilisant les scripts et son interprteur sur un ordinateur Sa syntaxe et sa construction ressemblent celles des langages C++ et Perl, la diffrence que le PHP peut tre directement intgr dans du code HTML. Extension dun fichier PHP : .phpELYOUSFI - ENSET Fvrier 2013 9

PHP Hypertext Preprocessor: les bases La gratuit e t la disponibilit du code source ( PH P est

distribu sous licence GNU GPL) Une grande communaut de dveloppeurs partageant des centaines de milliers d'exemples de script PHP La simplicit d' criture de scripts La possibilit d'inclure le script PHP au sein d'une page HTML (contrairement aux scripts CGi , pour lesquels il faut crire des lignes de code pour afficher chaque ligne en langage HTML) La simplicit dinterfaage avec des bases de donnes (de nombreux SGBD sont supports, m ais le plus utilis avec ce langage est MySQL, un SGBD gratuit disponible sur de nombreuses plate formes : Unix, Linux, Windows, MacOs X, Solaris, etc...) L'intgration au sein de nombreux serveurs web (Apache, Microsoft IIS, etc.).ELYOUSFI - ENSET Fvrier 2013 10

HTML et PHPLes instructions PHP peuvent tre insres dans les commandes HTML, ce qui facilite le dveloppement des sites web dynamiques Dans un fichier PHP, deux types de zones : Zones dlimites par: o ou o < /script> ou Tout ce qui se trouve entre ces balaises sera considr par le serveur Web comme tant des commandes PHP excuter Gnre du texte intgr au contenu HTML Zones { lextrieur de ces balises : o Contient du texte et des balises HTML o Directement recopi dans le contenu HTML gnr

ELYOUSFI - ENSET Fvrier 2013

11

HTML et PHP Exemple Ici du texte HTML

Insertions de commentaire en phpCommentaire Unilingue (Comme en C) : // commentaire1 Commentaire Multilingue (C++): /* commentaire2 */ Commentaire { LUnix (moins utilis) #Commentaire3

ELYOUSFI - ENSET Fvrier 2013

12

Affichage du texte

ELYOUSFI - ENSET Fvrier 2013

13

VariablesVariables en PHP : Le nom dune variable commence par un $

Tout nom de variable doit commencer par une lettre (majuscule ou

minuscule) ou un "_", mais jamais un chiffre. Sensible la casse. Les espaces sont interdis Affectation comme en C :

$i = valeur ; Les variables ne sont pas explicitement dclares comme en C (une variable existe ds quune valeur lui est affecte) Une variable peut contenir un nombre, une chane de caractres, un boolen (en ralit un entier comme en C) ou un tableau Il est possible de convertir une variable en un type primitif grce au cast(comme en C). Exemple : $str = 12; // $str vaut la chane 12 $nbr = (int)$str; // $nbr vaut le nombre 12

ELYOUSFI - ENSET Fvrier 2013

14

VariablesLes variables rfrences (&) $ nomcomplet = "Paul".&$nom; en PHP4 E xemple : Le type dune variable est { liaison superficielle

ELYOUSFI - ENSET Fvrier 2013

15

VariablesPorte des variablesLa porte d'une variable dpend du contexte dans lequel la variable est dfinie. Les constantes, les fonctions et classes sont partout visible donc accessible. Variable globales Les variables globales ne peuvent tre utilises telles quelles au niveau du corps des fonctions. Une variable globale ne peut tre au sein dune fonction que si elle est prcde du mot rserv global.

Variable locales Elles sont dfinies au niveau du corps des fonctions

ELYOUSFI - ENSET Fvrier 2013

16

VariablesToute variable utilise dans une fonction est par dfinition, locale. Par exemple :

Le script n'affichera rien l'cran car la fonction echo utilise la variable locale $a, et celleci n'a pas t assigne pralablement dans la fonction.

ELYOUSFI - ENSET Fvrier 2013

17

VariablesEn PHP, une variable globale doit tre dclare l'intrieur de chaque fonction afin de pouvoir tre utilise dans cette fonction. Par exemple:

Le script cidessus va afficher la valeur "3". En dclarant globales les variables $a et $b locales de la fonction somme(), toutes les rfrences ces variables concerneront les variables globales. Il n'y a aucune limite au nombre de variables globales qui peuvent tre manipules par une fonction.ELYOUSFI - ENSET Fvrier 2013 18

VariablesUne autre caractristique importante de la porte des variables est la notion de variable static . Une variable statique a une porte locale uniquement, mais elle ne perd pas sa valeur lorsque le script appelle la fonction. Prenons l'exemple suivant: Cette fonction est un peu inutile car chaque fois qu'elle est appele, elle initialise $a 0 et affiche "0". L'incrmentation de la variable ($a++) ne sert pas grand chose, car ds que la fonction est termine la variable disparat.ELYOUSFI - ENSET Fvrier 2013

Pour faire une fonction de comptage utile, c'est{dire qui ne perdra pas la trace du compteur, la variable $a est dclare comme une variable statique (voir script au-dessus). Lappel de la fonction Test() affichera une valeur de $a incrmente de 1.19

Variables Conversion de type La fonction gettype() permet de lire le type dune variable. On peut assigner les types suivants o Array o Class o Double o Integer o String La fonction settype() permet de changer le type dune variable

ELYOUSFI - ENSET Fvrier 2013

20

Variables, types et oprateursOprateurs arithmtiques : +(addition), - (soustraction), * (multipli), / (divis), % (modulo), ++ (incrment), --(dcrment). Oprateurs dassignement : = (affectation), *= ($x*=$y quivalent $x=$x*$y), /=, +=, -=, %= Oprateurs logiques : and, && (et), or, || (ou), xor (ou exclusif), ! (non) Oprateurs de comparaison : == (galit), < (infrieur strict), , >=, != (diffrence) Un autre oprateur conditionnel est l'oprateur ternaire (":?"), qui fonctionne comme en langage C Cette expression renvoie la valeur de l'expression expr2 si l'expression expr1 est vraie, et l'expression expr3 si l'expression expr1 est fausse.

ELYOUSFI - ENSET Fvrier 2013

21

Variables, types et oprateurs

ELYOUSFI - ENSET Fvrier 2013

22

Variables, types et oprateurs

ELYOUSFI - ENSET Fvrier 2013

23

Variables, types et oprateursQuelques fonctions agissants sur les variables : empty($var) : renvoie vrai si la variable est vide isset($var) : renvoie vrai si la variable existe unset($var) : dtruit une variable gettype($var) : retourne le type de la variable settype($var, type) : convertit la variable en type type (cast) is_long(), is_double(), is_string(), is_array(), is_object(), is_bool(), is_float(), is_numeric(), is_integer(), is_int()

Une variable peut avoir pour identificateur la valeur dune autre variable. Syntaxe : ${$var} = valeur; Exemple : $toto = foobar; ${$toto} = 2002; echo $foobar; // la variable $foobar vaut 2002

ELYOUSFI - ENSET Fvrier 2013

24

Constantes

Lutilisateur peut dfinir des constantes dont la valeur est fixe une fois pour toute. Les constantes ne portent pas le symbole $ (dollars) en dbut didentificateur et ne sont pas modifiables. Define("var",valeur) : dfinit la constante var (sans $) de valeur valeur Exemple 1 : define("author", Maalouf"); echo author; // affiche Maalouf Exemple 2 : define("MY_YEAR",1980); echo MY_YEAR; // affiche 1980 Contrairement aux variables, les identificateurs de constantes (et aussi ceux de fonction) ne sont pas sensibles la casse.

ELYOUSFI - ENSET Fvrier 2013

25

Chanes de caractres (I) Une variable chane de caractres nest pas limite en nombre de caractres. Elle est toujours dlimite par des simples quottes ou des doubles quottes.

Exemples : $nom = Mohammed; $prenom = Ali; Les doubles quottes permettent lvaluation des variables et caractres spciaux contenus dans la chane (comme en C ou en Shell) alors que les simples ne le permettent pas. Exemples : echo Nom: $nom; // affiche Nom: Etivant echo Nom: $nom; // affiche Nom: $nom Quelques caractres spciaux : \n (nouvelle ligne), \r (retour la ligne), \t (tabulation horizontale), \\ (antislash), \$ (caractre dollars), \ (double quotte) voir page tableau p96. Exemple : echo Hello Word !\n;

ELYOUSFI - ENSET Fvrier 2013

26

Chanes de caractres (II)Oprateur de concatnation de chanes : . (point) Exemple 1 :

$foo = Hello; $bar = Word; echo $foo.$bar; Exemple 2 :

$name = Henry; $whoiam = $name.IV; Exemple 3 :

$out = Patati; $out .= et patata;ELYOUSFI - ENSET Fvrier 2013 27

Chanes de caractres (III) Affichage dune chane avec echo:

Exemples: echo Hello Word.; echo Hello ${name}\n; echo Nom : , $name; echo(Bonjour); Quelques fonctions agissants sur les chaines de carctres: strlen($str) : retourne le nombre de caractres dune chane strtolower($str) : conversion en minuscules strtoupper($str) : conversion en majuscules trim($str) : suppression des espaces de dbut et de fin de chane substr($str,$i,$j) : retourne une sous chane de $str de taille $j et dbutant la position $i strnatcmp($str1,$str2) : comparaison de 2 chanes addslashes($str) : dspcialise les caractres spciaux (, , \) ord($char) : retourne la valeur ASCII du caractre $charELYOUSFI - ENSET Fvrier 2013 28

Les tableauxLes tableau (array) reprsentent la structure de

donnes la plus importante du langage PHP Les tableaux sont en PHP dune seule dimension La seule manire de construire des tableaux multidimensionnel est dutiliser des tableaux de pointeurs. Lindexation dun tableau commence toujours { lindice 0 (zro) Deux types dindexation: indexage numrique indexage associatifELYOUSFI - ENSET Fvrier 2013 29

Les tableaux

ELYOUSFI - ENSET Fvrier 2013

30

Les tableauxIndexation numrique Indexation explicite $couleur[0] = "blanc", $couleur[1] = "bleu", $couleur[2] = "rouge"; I ndexation automatique $couleur[] = "blanc", $couleur[] = "bleu", $couleur[] = "rouge"; Avec array sans indice $couleur = array("blanc", "bleu", "rouge"); A vec array + indice $couleur = array(5=>"blanc", "bleu", "rouge"); Indexation associative $ personne = array("nom" => Moamed", "prenom"=> Ali"); $ couleur = array(1=>"blanc", 3=>"bleu", 5=>"rouge");

ELYOUSFI - ENSET Fvrier 2013

31

Les tableaux

ELYOUSFI - ENSET Fvrier 2013

32

Les tableauxParcours dun tableau : for

ELYOUSFI - ENSET Fvrier 2013

33

Les tableaux Tableaux multidimensionnels Mthode 2

ELYOUSFI - ENSET Fvrier 2013

34

Les tableauxTableau multidimensionnels En utilisant la fonction array: Mthode 1 Mthode 2

ELYOUSFI - ENSET Fvrier 2013

35

Les tableauxLa structure de parcours de tableau foreachLa forme foreach reste la plus adapte pour passer en revue les lments dun tableau. Il y a deux syntaxes possibles : Premire syntaxe :

A chaque itration de la boucle, $valeur contient la valeur de llment du tableau $tableau . Cette syntaxe permet de parcourir le tableau de dbut la fin. Deuxime syntaxe

ELYOUSFI - ENSET Fvrier 2013 36

Les formulaires Utiliss pour la gestion interactive dun site. Sont la base des pages web dynamiques

Mise en uvre Un formulaire XHTML est dfini entre les balises et Exemple: Texte l'intrieur du formulaire method : Mode de transmission vers le serveur des informations saisies dans le formulaire. action : le script qui va traiter le formulaire. traitement.php: page rceptrice Get : les donnes du formulaire sont transmises dans lURL. Post : les donnes du formulaire sont transmises dans le corps de la

requte.

ELYOUSFI - ENSET Fvrier 2013

37

Les formulaires Les mthodes Get et Post

La transmission dun formulaire seffectue selon lune des deux mthodes denvoi : GET ou POST. GET retrouve les variables au sein de la superglobale $_GET POST retrouve les variables au sein de la superglobale $_POST. Pour obtenir les valeurs des variables en utilisant les superglobale, procdez comme suit : Syntaxe $valarg =$_GET[nomarg]; //GET $valarg =$_POST[nomarg]; //POSTELYOUSFI - ENSET Fvrier 2013 38

Les formulaires Llment input permet de crer les diffrents types dlments

de formulaire:"text",

"password", "checkbox", "radio", "submit", "reset", "file" et "hidden

Les champs de saisie simple

ELYOUSFI - ENSET Fvrier 2013

65

Sortie anticipe des boucles Linstruction break: permet darrter une boucle for,

foreach ou while avant son terme normal break n; les n boucles internes seront arrtes. Linstruction continue: narrte pas la boucle en cours, mais les instructions situes aprs Continue ne seront pas excutes.

ELYOUSFI - ENSET Fvrier 2013

66

Fonctions1 Introduction PHP offre la possibilit de dfinir des fonctions avec tous les avantages associs. Les fonctions en PHP peuvent prendre des arguments sans spcifier leurs types. Elles peuvent de faon optionnelle retourner une valeur. 2 Dclaration et appel Le mot cl function permet dintroduire la dfinition dune fonction qui peut tre dfinie selon la syntaxe suivante :

nom_function doit respecter les rgles des noms de variable

ELYOUSFI - ENSET Fvrier 2013

67

Fonctions

ELYOUSFI - ENSET Fvrier 2013

68

FonctionsValeurs de retour Il est possible de retourner plusieurs valeurs dune fonction sous forme dun tableau. Dans lappel de cette fonction, il faudra affecter le tableau retourner la Procdure list() qui prend en paramtre la taille de ce tableau. On affecte list() le retour de la fonction

ELYOUSFI - ENSET Fvrier 2013

69

FonctionsVisibilit de la fonctionUne fonction est utilisable uniquement dans le script o elle est dfinie. Pour lemployer dans plusieurs scripts, il faut, soit recopier sa dfinition dans les diffrents scripts, soit la dfinir dans un fichier inclus partout o la fonction est ncessaire.

Exemple : Fichier fonctions.inc contenant des dfinitions de fonctions : Script utilisant les fonctions dfinies dans fonctions.inc :

ELYOUSFI - ENSET Fvrier 2013

70

Mathmatiques (I)Il existe une miriade de fonctions mathmatiques. abs($x) : valeur absolue ceil($x) : arrondi suprieur floor($x) : arrondi infrieur pow($x,$y) : x exposant y round($x,$i) : arrondi de x la ime dcimale max($a, $b, $c ) : retourne largument de valeur maximum pi() : retourne la valeur de Pi Et aussi : cos, sin, tan, exp, log, min, pi, sqrtELYOUSFI - ENSET Fvrier 2013 71

Mathmatiques (II)Nombres alatoires : rand([$x],[$y]) : valeur entire alatoire entre 0 et RAND_MAX si x et y ne sont pas dfinis, entre x et RAND_MAX si seul x est dfini, entre x et y si ces deux paramtres sont dfinis. srand() : initialisation du gnrateur alatoire getrandmax() : retourne la valeur du plus grand entier pouvant tre gnr L'algorithme utilis par la fonction rand() - issu de vieilles bibliothques libcs - est particulirement lent et possde un comportement pouvant se rvler prvisible. La fonction mt_rand() quivalente rand() est plus rapide et plus sre puisque l'algorithme utilis se base sur la cryptographie. En cas dutilisation de la fonction mt_rand(), ne pas oublier dutiliser les fonctions de la mme famille : mt_rand([$x[,$y]]), mt_srand() et mt_getrandmax().

ELYOUSFI - ENSET Fvrier 2013

72

Dates et calendriers Les fonctions de jours, dates et heures sont

incontournables sur Internet et sont indispensables pour la conversion en franais des dates fournies par la base de donnes MySQL qui les code au format anglophone (YYYY-DD-MM hh:mm:ss). Quelques fonctions : time(): retourne le timestamp UNIX de lheure locale (utilise pour calculer des dures et determiner des dates future ou passes. Date(): retourne une chane de caractres contenant la date et/ou lheure locale au format spcifi. getdate() , checkdate($month, $day, $year), mktime($hour, $minute, $second, $month, $day, $year)ELYOUSFI - ENSET Fvrier 2013 73

Dates et calendrierstime() Retourne le timestamp de linstant prsent Cette valeur nest affiche Sert pour le calcul du temps Sert stocker une date un seul nombre Validation de date