Support Cours Php

Embed Size (px)

Citation preview

  • 8/2/2019 Support Cours Php

    1/43

    Rpublique Algrienne Dmocratique et Populaire

    Ministre de la Format ion et de l enseignement Professionnels

    Fevrier 2005

    IFP de Birkhadem, : Rue des Trois Frres Djillali Birkhadem - Wilaya dAlger

    : 021 54.21.44/45/46 Fax : 021 54.22.00Site web : www.ifp-alger.edu.dz

    e-mail : [email protected]

  • 8/2/2019 Support Cours Php

    2/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 2

    SOMMAIRE

    I. er Chapitre.............................................................................................................................................. 5I.1. Prsentation du HTML ................................................................................................................. 5

    I.1.1 Le HTML est un langage balises............................................................................................ 5I.1.2 Comment utiliser les balises HTML ? ...................................................................................... 5I.1.3 La page HTML minimum......................................................................................................... 5

    I.2. Les balises de structure ................................................................................................................. 6I.2.1 Les attributs............................................................................................................................... 6I.2.2 Les Paragraphes ........................................................................................................................ 6I.2.3 Les listes.................................................................................................................................... 6

    I.3. Utilisation de tableaux .................................................................................................................. 7I.3.1 Les attributs............................................................................................................................... 7

    I.4. Les liens hypertextes et ancrage.................................................................................................... 8I.4.1 Prsentation des ancrages.......................................................................................................... 8

    I.4.2 Les signets................................................................................................................................. 8I.5. Comment afficher des images sur une page web? ........................................................................ 9I.6. Les formulaires en HTML ............................................................................................................ 9

    I.6.1 Attributs de la balise FORM et types d'entres....................................................................... 10II. me Chapitre ......................................................................................................................................... 12

    II.1. Introduction................................................................................................................................. 12II.1.1 De quoi s'agit-il ? ................................................................................................................ 12II.1.2 Le premier script ................................................................................................................. 12II.1.3 JavaScript et HTML............................................................................................................ 12

    II.2. Premier exemple avec JavaScript ............................................................................................... 12II.2.1 Mettre le code JavaScript dans un fichier........................................................................... 13

    II.3. Diffrents types d'expressions..................................................................................................... 13II.4. Les variables ............................................................................................................................... 13

    II.4.1 Les types de variables ......................................................................................................... 13II.4.2 Oprations sur les variables ................................................................................................ 13

    II.5. La fonction eval .......................................................................................................................... 14II.6. La fonction prompt...................................................................................................................... 14II.7. Dfinir de nouvelles fonctions.................................................................................................... 15

    II.7.1 Structure gnrale ............................................................................................................... 15II.8. Les formulaires lmentaires ...................................................................................................... 16

    II.8.1 Interprter un formulaire..................................................................................................... 16II.9. Les conditions ............................................................................................................................. 18

    II.9.1 Utilisation de if.................................................................................................................... 18II.9.2 Utilisation de switch............................................................................................................ 19

    II.10. Les boucles.............................................................................................................................. 19II.10.1 Boucle for............................................................................................................................ 19II.10.2 Boucle while ....................................................................................................................... 20

    II.11. Les tableaux ............................................................................................................................ 20II.11.1 Cration............................................................................................................................... 20II.11.2 Utilisation............................................................................................................................ 20II.11.3 Quelques proprits et mthodes des objets tableaux......................................................... 21

    III. eme CHAPITRE.................................................................................................................................... 23III.1. Origine de PHP ....................................................................................................................... 23III.2. Description.............................................................................................................................. 23III.3. Installation............................................................................................................................... 23III.4. Mise en pratique de PHP......................................................................................................... 24III.5. La notion de variable............................................................................................................... 25

  • 8/2/2019 Support Cours Php

    3/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 3

    III.5.1 Dfinir des variables ........................................................................................................... 26III.5.2 Afficher la date du jour et l'heure en cours ......................................................................... 26III.5.3 variable affecte ou non ...................................................................................................... 27III.5.4 Dfinir des constantes......................................................................................................... 27III.5.5 Une variable Existe ou pas.................................................................................................. 28III.5.6 Type de variable.................................................................................................................. 28

    III.6. Variable variable..................................................................................................................... 29

    III.7. Les formulaires ....................................................................................................................... 29III.8. Les expressions: ...................................................................................................................... 30III.9. Cration de tableaux................................................................................................................ 31

    III.9.1 Parcourir un tableau ............................................................................................................ 32III.9.2 Fonctions de tri.................................................................................................................... 33

    III.10. Les fonctions Mathmatiques ................................................................................................. 33III.11. Les fonctions........................................................................................................................... 34

    III.11.1 Dfinir des fonctions :..................................................................................................... 34III.12. Les instructions ....................................................................................................................... 34

    III.12.1 If, elseif et else ................................................................................................................ 34III.12.2 switch : le "choix parmi"................................................................................................. 35

    III.12.3 boucles while et do-while ............................................................................................... 36III.12.4 boucle for ........................................................................................................................ 37III.12.5 array "associatif" ............................................................................................................. 37

    IV. eme Chapitre ................................................................................................................................... 39IV.1. Cration de la base de donnes ............................................................................................... 39IV.2. Connexion Mysql ................................................................................................................. 39IV.3. Excution d'une requte SQL.................................................................................................. 39IV.4. Enregistrement dans une table Mysql ..................................................................................... 39IV.5. Extraction de donnes ............................................................................................................. 40IV.6. Syntaxe Mysql......................................................................................................................... 41

    IV.6.1 Excution de requtes ......................................................................................................... 41IV.6.2 Cration de table ................................................................................................................. 41IV.6.3 Modification d'une table ..................................................................................................... 42

    II..

  • 8/2/2019 Support Cours Php

    4/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 4

    IInnttrroodduuccttiioonn

    Un site dynamique est une entreprise coteuse en terme de temps. Les mises jour rgulires sontparfois difficiles raliser. Or un site qui n'volue pas est parfois condamn disparatre, ou du moinsvoir sa frquentation diminuer. L'internaute aime le changement, il ne supporte pas un site statique quin'volue gure. Les langages dynamiques permettent de rsoudre ces problmes. Ils facilitent les

    oprations de mise jour, permettent plus d'activits sur les pages. Le but de ces pages est de vous initier l'un de ces langages PHP, ainsi que le Mysql pour la gestion de la base de donnes. Pour pouvoirutiliser le PHP convenablement il faut au pralable matriser le langage HTML et galement le langage

    javascipt.

  • 8/2/2019 Support Cours Php

    5/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 5

    IIII.. eerr CChhaappiittrree

    Le langage HTML

    IIII..11..PPrrsseennttaattiioonn dduu HHTTMMLLLe HTML ("HyperText Markup Language") est un systme qui formalise l'criture d'un document avecdes balises de formatage indiquant la faon dont doit tre prsent le document et les liens qu'il tablitavec d'autres documents.Il permet, entre autre, la lecture de documents sur Internet partir de machines diffrentes grce auprotocole HTTP, permettant d'accder via le rseau des documents reprs par une adresse unique,appele URL.

    IIII..11..11 LLee HHTTMMLL eesstt uunn llaannggaaggee bbaalliisseessLe HTML n'est pas un langage de programmation, c'est un simple fichier texte contenant des balisespermettant de mettre en forme le texte, les images ...Une balise est une commande (un nom) encadre par le caractre infrieur ().

    IIII..11..22 CCoommmmeenntt uuttiilliisseerr lleess bbaalliisseess HHTTMMLL ??Les balises HTML peuvent tre uniques; la balise
    reprsente par exemple un retour la ligne.Les balises HTMl peuvent galement fonctionner par paire afin d'agir sur le texte qu'ils encadrent (labalise de fin est alors prcd d'un /) :

    Votre texte formatt

    Ainsi les balises et permettent de mettre en gras le texte qu'elles encadrent : Ce texte est en gras

    Les balises ne sont pas sensibles la casse, c'est--dire qu'on peut les crire indiffremment enminuscules ou en majuscules.

    IIII..11..33 LLaa ppaaggee HHTTMMLL mmiinniimmuummUne page HTML est un simple fichier texte commenant par la balise et finissant par la balise. Elle contient galement un en-tte dcrivant le titre de la page, puis un corps dans lequel se

    trouve le contenu de la page.L'en-tte est dlimit par les balises et Le corps est dlimit par les balises et .Ainsi la page HTML minimum peut tre reprsente comme suit :

    Le titre

    Contenu de la page

  • 8/2/2019 Support Cours Php

    6/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 6

    IIII..22..LLeess bbaalliisseess ddee ssttrruuccttuurreeIIII..22..11 LLeess aattttrriibbuuttss

    Les attributs suivants sont placs dans les balises de structure pour permettre une disposition plus prcisedes lments HTML :

    Attribut Valeur Effet Visuel

    ALIGN

    LEFTRIGHTCENTERJUSTIFY

    LEFTRIGHTCENTERJUSTIFY

    IDAttribue un nom au contenude la balise (pour faire desliens)

    CLASSAssigne une classe au contenu(pour les feuilles de style)

    Les attributs s'utilisent de la manire suivante: Texte Par exemple: Texte align gauche

    IIII..22..22 LLeess PPaarraaggrraapphheessHTML considre les paragraphes comme des blocs de texte.La mise en page par blocs de texte est ralise par l'intermdiaire de la paire de balises

    et

    .Cette balise accepte n'importe lequel des attributs vus prcdemment.

    Balise Attribut Effet Visuel


    retour la ligne

    et

    paragraphe

    IIII..22..33 LLeess lliisstteessUne liste est un paragraphe structur contenant une suite d'articles. Il en existe trois types:

    Ordonne Non ordonne De dfinition

    Voici leur syntaxe:

    Conteneur Type de liste Effet Visuel

    article 1 article 2

    Ordonnearticle 1article 2article 3

    article 1 article 2

    Non ordonnearticle 1article 2

    article 3TermeDfinition

    De dfinitionarticle 1dfinition 1article 2

  • 8/2/2019 Support Cours Php

    7/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 7

    dfinition 2

    IIII..33..UUttiilliissaattiioonn ddee ttaabblleeaauuxx

    On a souvent besoin de prsenter des informations mieux structures qu'avec des listes. Les tableauxpermettent de les afficher en lignes et en colonnes.

    Les tableaux sont dfinis comme tant des suites de lignes.

    Le tableau est encadr par les balises et .Le titre du tableau est encadre par Chaque ligne est encadre par (Table Row, traduisez par ligne du tableau).Les cellules d'en-tte sont encadres par (pour Table Header: En-tte de tableau)Les cellules de valeur sont encadres par (Table Data: Donne de tableau)

    Par exemple le tableau:

    Voici le titre du tableau

    Titre A1 Titre A2 Titre A3 Titre A4

    Titre B1 Valeur B2 Valeur B3 Valeur B4

    donne le rsultat suivant:

    Voici le titre du tableau

    Titre A1 Titre A2 Titre A3 Titre A4

    Titre B1 Valeur B2 Valeur B3 Valeur B4

    IIII..33..11 LLeess aattttrriibbuuttssBalises auxquelles il s'applique Valeur Effet Visuel

    THEADTBODYTHTRTD

    CENTERLEFT

    RIGHT

    JUSTIFY

    centrgauche

    droite

    justifiALIGN

    CAPTIONTOPBOTTOM

    au-dessusen-dessous

    VALIGN(alignement vertical)

    THEADTBODYTHTR

    TOPMIDDLE

    BOTTOM

    en hautau milieu

    en bas

  • 8/2/2019 Support Cours Php

    8/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 8

    TD

    BORDER=n TABLE taille de la bordure

    CELLPADDING=n TABLEespacement de n pixels entre le contenudes cellules et son encadrement

    CELLSPACING=n TABLE Epaisseur de la grille intrieure

    FLOAT TABLERIGHT

    LEFT

    Spcifie la position du texte qui suivra

    COLS=n TABLE Spcifie le nombre de colonnes

    FRAME(contrle les lmentsindividuels d'encadrementdu tableau)

    TABLE

    NONETOP

    BOTTOM

    TOPBOT

    SIDES

    ALL

    aucunau-dessus

    en bas

    tout en haut

    sur les cots

    tous

    COLSPAN

    THEADTBODY

    THTRTD

    Fait dborder les cellules sur les colonnesadjacentes

    ROWSPAN

    THEADTBODYTHTRTD

    Fait dborder les cellules sur les lignesadjacentes

    IIII..44..LLeess lliieennss hhyyppeerrtteexxtteess eett aannccrraaggee

    IIII..44..11 PPrrsseennttaattiioonn ddeess aannccrraaggeessLes ancrages (liens hypertextes) sont des lments d'une page HTML (souligns lorsqu'il s'agit de texte)qui emmnent dans un autre endroit lorsqu'on clique dessus. C'est ce qui permet de lier des pages Webentre elles.Les liens hypertextes permettent de naviguer:

    vers un autre endroit du document vers un fichier HTML situ un emplacement diffrent sur la machine qui hberge la page vers une autre machine

    L'attribut principal des ancrages est href. Il s'crit sous la forme: ..

    IIII..44..22 LLeess ssiiggnneettssOn peut crer un signet dans une page c'est--dire marquer un endroit prcis d'une page pour s'y rendrepar hypertexte. Cela se fait grce l'attribut NAME ou ID (pour les browsers plus rcents)Par exemple:

    ...

    On l'appellera grce au lien suivant:

    ... On peut ainsi se dplacer un endroit prcis sur une autre page:

    ...

  • 8/2/2019 Support Cours Php

    9/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 9

    IIII..55..CCoommmmeenntt aaffffiicchheerr ddeess iimmaaggeess ssuurr uunnee ppaaggee wweebb??Quelques images sur votre site Web le rendront plus attractif. Cependant il ne faut pas sombrer dansl'excs car les images impliquent un temps de chargement assez long.

    On utilise la balise pour inclure une image, il ne cre pas de retour la ligne.Ses trois principaux attributs sont:

    SRC: Indique l'emplacement de l'image (il est obligatoire) ALIGN: Spcifie l'alignement de l'image par rapport au texte adjacent.

    Il peut prendre les valeurs: TOP, MIDDLE, et BOTTOM (au-dessus, au milieu et en-dessous) ALT:Permet d'afficher un texte lorsque l'image ne s'affiche pas

    Ainsi pour insrer une image, il faudra saisir une balise du type suivant :

    Attribut Valeur Rsultat

    SRC Adresse de l'image

    BORDER=n

    Nombre de pixels de la bordure.Sa couleur se dfinit dans l'attributLINK ou TEXT de la balise . Par dfaut l'attribut Border vaut 1 ce qui creun petit cadre autour de l'image. Pour ne pas avoir ce dsagrment pensez le dfinircomme tant gal 0.

    VSPACENombre de pixels d'ajustemententre l'image et le texte au-dessus

    WIDTH Taille horizontale (en pixels ou en %).

    HEIGHT Taille verticale (en pixels ou en %).

    IIII..66..LLeess ffoorrmmuullaaiirreess eenn HHTTMMLLLes formulaires interactifs permettent aux auteurs de pages Web de dialoguer avec leurs lecteurs.

    Le lecteur saisit des informations en remplissant des champs ou en cliquant sur des boutons, puis appuiesur un bouton de soumission (submit).

    La balise FORM

    Les formulaires sont dlimits par la balise ... , une balise qui permet de regrouperplusieurs lments de formulaire (boutons,champs de saisie,...) et qui possde les attributs obligatoiressuivants:

    METHOD indique sous quelle forme seront envoyes les rponses"POST" est la valeur qui correspond un envoi de donnes stockes dans le corps de la requte,tandis que "GET" correspond un envoi des donnes codes dans l'URL, et spares de l'adressedu script par un point d'interrogation (pour plus de renseignement sur les mthodes POST et GET,consultez l'article sur le protocole HTTP)

    ACTION indique l'adresse d'envoi (script CGI ou adresse email(mailto:adresse.email@machine)).

    Voici quelques exemples de balises FORM:

    A l'intrieur de la balise FORM...

  • 8/2/2019 Support Cours Php

    10/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 10

    La balise FORMconstitue en quelque sorte un conteneur permettant de regrouper des lments qui vontpermettre l'utilisateur de choisir ou de saisir des donnes, ensemble de donnes qui seront envoyes l'URL indiqu dans l'attribut ACTION de la balise FORM par la mthode indique par l'attribut

    METHOD.

    Il est possible d'insrer n'importe quel lment HTML de base dans une balise FORM(textes,boutons,tableaux,liens,...) mais il est surtout intressant d'insrer des lments interactifs. Ces

    lments interactifs sont:

    La baliseINPUT: un ensemble de boutons et de champs de saisie La balise TEXTAREA: une zone de saisie La balise SELECT: une liste choix multiples

    IIII..66..11 AAttttrriibbuuttss ddee llaa bbaalliissee FFOORRMM eett ttyyppeess dd''eennttrreessBalise Attribut Valeur Rsultat Effet Visuel

    METHODPOSTGET

    ACTION envoie l'adresseindique

    ...

    ENCTYPEspcifie le type decodage utilis

    submiteffectue l'ACTIONdans le balise

    Haut du formulaire

    Envoyer

    Bas du formulaire

    text

    simple ligne detexte dont lalongueurest donne parl'attribut size

    Haut du formulaire

    Bas du formulaire

    resetefface le contenu duformulaire

    Haut du formulaire

    Rtablir

    Bas du formulaire

    radio bouton radio

    Haut du formulaire

    Bas du formulaire

    TYPE

    checkbox case cocher

    Haut du formulaire

    Bas du formulaire

    NAME Nom

    SIZE Taille du texte

    NAME

    ROWS

    ...

    COLS

    Zone de texte

    Haut du formulaire

    Bas du formulaire

    ...

    NAMEHaut du formulaire

    Choix 1

    Bas du formulaire

  • 8/2/2019 Support Cours Php

    11/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 11

    MULTIPLE

    Plusieurs choixpossibles

    Haut du formulaireChoix 1

    Bas du formulaire

    SELECTEDOption pardfaut

    ...

    VALUEValeur

    force

    Haut du formulaireChoix 1

    Choix 2

    Choix 3

    Bas du formulaire

  • 8/2/2019 Support Cours Php

    12/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 12

    IIIIII..

    mmee CChhaappiittrree

    Le Langage JAVASCRIPT

    IIIIII..11..IInnttrroodduuccttiioonnIIIIII..11..11 DDee qquuooii ss''aaggiitt--iill ??

    Les ordinateurs ne font qu'excuter des suites d'instructions qui ont t crites par desprogrammeurs. Il suffit de leur demander d'excuter autant de fois que ncessaire des tches simples pourqu'ils le fassent sans broncher. Le problme du programmeur est donc d'une part de savoir comments'adresser poliment son ordinateur pour tre entendu, et d'autre part de traduire ses attentes en unesuccession de tches simples. Ceci se fait en utilisant un langage de programmation; celui que nous allonsexplorer est JavaScript.Dans ce chapitre vous trouverez les notions principales sur lejavascript. Pour plus de dtail consultez le

    site www.commentamarche.com.

    IIIIII..11..22 LLee pprreemmiieerr ssccrriippttApprendre dire bonjour pour voir comment JavaScript s'insre dans un document HTML.

    Traditionnellement on commence tudier un langage de programmation en lui faisant afficher lemessage "Bonjour !". C'est ce que nous allons faire ici, pour dcouvrir les liens entre les langagesJavaScript et HTML.

    IIIIII..11..33 JJaavvaaSSccrriipptt eett HHTTMMLL

    Le langage HTML est un langage de description de pages Web. Il permet mettre des textes enforme, d'insrer des images, de crer des liens hypertextes, etc... Cependant, lorsqu'un document HTMLest crit, il affiche toujours les mmes choses de la mme faon. Le langage JavaScript est une extensiondu langage HTML qui permet de calculer ce qui doit tre affich en fonction des circonstances. Parexemple, si nous dsirons crer un document HTML qui affiche la date, nous devons modifier le fichierHTML utilis chaque jour. Grce JavaScript nous pourrons au contraire indiquer une seule foiscomment calculer la date et donc l'afficher correctement. En ce sens, JavaScript permet de gnrerdynamiquement du code HTML.

    IIIIII..22..PPrreemmiieerr eexxeemmppllee aavveecc JJaavvaaSSccrriippttPour obtenir la mme chose avec JavaScript, nous gardons la mme structure de fichier, il nous

    suffit de demander JavaScript d'afficher le code HTML de la ligne contenant "Bonjour tout le monde !".Cela se fait l'aide de l'instruction document.write suivie de parenthses contenant le code HTML entreguillemets. Cependant nous devons commencer par indiquer au navigateur que nous allons utiliser uneinstruction JavaScript. Cela se fait en utilisant la balise HTML .

    Bonjour en JavaScriptdocument.write("Bonjour tout le monde !");

  • 8/2/2019 Support Cours Php

    13/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 13

    IIIIII..22..11 MMeettttrree llee ccooddee JJaavvaaSSccrriipptt ddaannss uunn ffiicchhiieerrIl est possible d'crire le code JavaScript dans un fichier externe d'extension .js.

    Pour l'exemple prcdent, il suffit de crer un fichier nomm bonjour.js contenant la ligne :Dans le fichier html, l'appel JavaScript se fera simplement avec la ligne :Cette possibilit se rvle utile lorsqu'on a des portions de code qui se rptent souvent.

    IIIIII..33..DDiiffffrreennttss ttyyppeess dd''eexxpprreessssiioonnssNous avons utilis l'instruction document.write pour afficher une expression crite entreguillemets. Celles-ci indiquent que ce qu'elles entourent est du code HTML que le navigateur vainterprter. Il est aussi possible d'utiliser des expressions sans guillemets. Dans ce cas JavaScript vaessayer de les interprter directement avant de les transmettre au navigateur. Les expressionsmathmatiques permettent de comprendre ce processus.L'instruction document.write("12+5*3"); provoque l'affichage du texte 12+5*3. Par contre, l'instructiondocument.write(12+5*3); provoque l'affichage du texte 27.Observons le script suivant.

    document.write("Bonjour tout le monde !");

    document.write("
    Un petit calcul : ");document.write("12+5*3 = "); document.write(12+5*3);document.write("
    Un peu de logique : ");document.write("5*4=19 ?? "); document.write(5*4==19);

    On obtient l'affichage suivant :Bonjour tout le monde !Un petit calcul : 12+5*3 = 27Un peu de logique : 5*4=19 ?? false

    IIIIII..44..LLeess vvaarriiaabblleessIIIIII..44..11 LLeess ttyyppeess ddee vvaarriiaabblleess

    On peut classer les variables selon le type de leur contenu :

    chane de caractres valeur numrique valeur boolenne objet

    Pour utiliser une variable, il est conseill de la dclarer et de lui donner un contenu initial. Cela se fait enutilisant le mot var et le signe =.

    Par exemple :

    var v1="Flen"; La variable nomme v1 contient la chane de caractres "Flen".var v2=18; La variable nomme v2 contient la valeur numrique 18.

    var v3=true; La variable nomme v3 contient la valeur boolenne true.

    IIIIII..44..22 OOpprraattiioonnss ssuurr lleess vvaarriiaabblleessLes variables numriques peuvent tre utilises dans des expressions mathmatiques faisant

    intervenir les quatre oprations lmentaires.Les variables contenant des chanes de caractres peuvent tre ajoutes, cette opration se nomme

    la concatnation, elle consiste construire une nouvelle chane de caractres en en assemblant deux.Ainsi, si v1="bonjour " et v2="Flen", alors v1+v2 est la chane de caractres contenant "bonjour Flen".Les variables boolennes peuvent tre combines l'aide des oprations logiques non, et, ou

    respectivement notes !, &&, ||.

  • 8/2/2019 Support Cours Php

    14/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 14

    Observons le comportement de l'oprateur + lorsqu'il est en prsence d'expressions de typesdiffrents en excutant le script suivant.

    var v1="12";var v2=5;document.write("La variable v1 contient : ",v1,"
    ");

    document.write("La variable v2 contient : ",v2,"
    ");document.write("Avec v1+v2 on obtient :",v1+v2,"
    ");document.write("Avec v2+v1 on obtient : ",v2+v1,"
    ");

    On obtient l'affichage suivant:La variable v1 contient : 12 (chane de caractres)La variable v2 contient : 5 (nombre)Avec v1+v2 on obtient :125Avec v2+v1 on obtient : 512

    IIIIII..55..LLaa ffoonnccttiioonn eevvaallIl arrive souvent que l'on doive interprter une chane de caractres (par exemple une saisie de l'utilisateur)

    comme tant une valeur numrique. JavaScript permet de raliser cette opration avec la fonction eval.Observons l'effet du script suivant.

    var v1="12";var v2=5;document.write("La variable v1 contient : ",v1,"
    ");document.write("La variable v2 contient : ",v2,"
    ");document.write("Avec v1+v2 on obtient :",v1+v2,"
    ");document.write("Avec eval(v1)+v2 on obtient : ",eval(v1)+v2,"
    ");

    On obtient l'affichage suivant:

    La variable v1 contient : 12La variable v2 contient : 5Avec v1+v2 on obtient :125Avec eval(v1)+v2 on obtient : 17

    IIIIII..66..LLaa ffoonnccttiioonn pprroommppttIl arrive souvent que le contenu d'une variable doive tre choisi par l'utilisateur du programme, et

    non par le programmeur. La fonction prompt() fournit une faon de raliser cette opration avecJavaScript. Elle attend en paramtre deux chanes de caractres: la premire servira de message d'invite etla seconde de rponse propose par dfaut.Observons le script suivant.

    var nom;nom=prompt("Quel est ton nom ?","");document.write("Bonjour "+nom+" !
    ");

    Exemple: afficher le primetre nsi qu'air d'un carr en introduisant son ctvar cote;cote=prompt("Ct du carr : ","");var perim=4*cote;var aire=cote*cote;document.write("
    Ct du carr : ",cote);document.write("
    Primtre : ",perim);document.write("
    Aire : ",aire);

  • 8/2/2019 Support Cours Php

    15/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 15

    IIIIII..77..DDffiinniirr ddee nnoouuvveelllleess ffoonnccttiioonnssJavaScript permet de crer simplement de nouvelles fonctions qui permettent de rpter plusieurs

    fois les mmes suites d'instructions.Il est parfois utile de regrouper un certain nombre d'instructions dans un bloc rutilisable plusieurs fois.Cela se fait en dfinissant des fonctions qui pourront tre utilises comme les fonctions prdfinies deJavaScript.

    IIIIII..77..11 SSttrruuccttuurree ggnnrraalleeUne fonction est une suite d'instructions laquelle on a donn un nom. Elle peut ventuellement

    renvoyer un rsultat et utiliser des paramtres. Pour la dfinir, c'est dire indiquer la suite d'instructions excuter lorsqu'on l'appelle, on utilise le mot-cl function.On dfinit une fonction de la faon suivante :

    La suite d'instructions excuter se trouve entre deux accolades. La liste de paramtres est facultatives, mais on doit crire les parenthses mme s'il n'y a pas de

    paramtres. La ligne "return rsultat;" n'est utilise que si la fonction renvoie un rsultat.

    Dfinir une fonction ne provoque pas son excution immdiate. Cela donne simplement la possibilit del'appeler ultrieurement comme toute fonction JavaScript dj dfinie, document.write(), eval() ouprompt().Il peut tre intressant de dfinir des fonctions personnelles dans un fichier externe .js qui pourra treutilis comme une bibliothque avec plusieurs documents HTML.

    Exemple: Le nombre secretNombre secret

    //nombre entre 0 et 99var secret=Math.round(Math.random()*100);

    //nombre d'essaisvar nbEssais=0;

    //fonction de contrle de la rponsefunction control() {nbEssais++;var n=document.formu.prop.value;if (isNaN(n)) alert("Entrer un nombre !");else {var nb=eval(n);var S="Essai "+nbEssais+" : ";if (nb==secret) S+="Bonne rponse !!!";else if (nb < secret) S+="Trop petit.";else S+="Trop grand.";

    document.formu.reponse.value=S;}}

  • 8/2/2019 Support Cours Php

    16/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 16

    Le nombre secret

    L'ordinateur a choisi un nombre entier infrieur 100. A vous de le retrouver le plus rapidement

    possible en proposant des nombres et en tenant compte des rponses fournies.

    Nombre propos :


    Autre partie

    IIIIII..88..LLeess ffoorrmmuullaaiirreess llmmeennttaaiirreessNous avons vu que la fonction prompt permet l'utilisateur d'entrer des donnes. Une autre

    mthode consiste utiliser un formulaire HTML contenant des lignes de saisie, une zone de rponse et unbouton de dclenchement des calculs. Ceci nous amnera dfinir des fonctions associes l'vnementONCLICK du bouton.

    IIIIII..88..11 IInntteerrpprrtteerr uunn ffoorrmmuullaaiirreeLe langage HTML permet de construire des formulaires; JavaScript permet d'exploiter et de

    modifier leur contenu. Nous allons tudier cette possibilit en construisant un document permettant deconvertir des Euros en Francs.

    a. Formulaire HTMLCommenons par construire le formulaire HTML de faon classique.On obtient la page suivante :

    Euro-FrancConversion Euro-FrancValeur en Euros :

    Valeur en Francs :

    Le formulaire s'affiche bien, mais cliquer sur le bouton "Convertir" ne provoque aucune raction.

    b. Traitement avec JavaScriptJavaScript va nous permettre de rcuprer le contenu de la zone de saisie euro, d'effectuer la conversion

    en francs et d'afficher le rsultat dans la zone de saisie franc lors de chaque clic sur le bouton "Convertir".

  • 8/2/2019 Support Cours Php

    17/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 17

    c. Nommer les composants

    Pour pouvoir faire rfrence au formulaire et ses composants, il est possible de les nommer en utilisantl'attribut NAME des balises correspondantes.

    Le formulaire sera nomm "formu" en crivant :

    La zone de saisie du montant en euros sera nomme "euro" en crivant :

    La zone de saisie du montant en francs sera nomme "franc" en crivant :

    d. Accs aux composants

    L'accs au contenu des composants se fait travers une cascade d'objets associs.

    Il y a d'abord l'objet document.

    1. L'objet document possde un champ-objet nomm formu qui reprsente le formulaire.2. L'objet formu possde son tour un champ-objet nomm euro qui reprsente la zone de saisie du

    montant en euros.3. L'objet euro possde enfin un champ nomm value qui reprsente son contenu.

    Ainsi, pour obtenir le contenu de la zone de saisie du montant en euros, on crira :document.formu.euro.value

    De mme, pour faire rfrence au contenu de la zone de saisie du montant en francs, on crira :

    document.formu.franc.value

    e. Ecriture de la fonction de conversionEcrivons maintenant la fonction conversion() qui sera charge de lire le montant en euros, de leconvertir en francs et d'afficher la rponse dans la zone de saisie du montant en francs.

    Elle peut prendre la forme suivante :

    function conversion() {//lire la valeur eurovar eu=eval(document.formu.euro.value);//conversion et arrondivar fr=eu*6.55957;fr=Math.round(fr*100)/100;//affichage du rsultatdocument.formu.franc.value=String(fr);

    }

    Nous avons utilis la fonction Math.round pour obtenir l'arrondi entier d'un nombre virgule. Laformule "fr=Math.round(fr*100)/100;" permet d'obtenir un arrondi au centime prs.

    f. Association clic bouton / appel fonction

    Il nous reste indiquer que chaque clic sur le bouton "Convertir" doit provoquer l'excution dela fonction conversion().

    Cela s'obtient en utilisant l'attribut ONCLICK du bouton. On crira donc :

  • 8/2/2019 Support Cours Php

    18/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 18

    g. Rsultat finalIl nous suffit de regrouper tous les lments prcdents pour obtenir le rsultat escompt.Le fichier HTML a le contenu suivant :

    Euro-Francfunction conversion() {//lire la valeur eurovar eu=eval(document.formu.euro.value);//conversion et arrondivar fr=eu*6.55957;fr=Math.round(fr*100)/100;//affichage du rsultatdocument.formu.franc.value=String(fr);

    }

    Conversion Euro-FrancValeur en Euros :Valeur en Francs :

    IIIIII..99..LLeess ccoonnddiittiioonnssIIIIII..99..11 UUttiilliissaattiioonn ddee iiff

    La syntaxe de l'instruction ifprend la forme suivante :

    if (expression boolenne) {instruction 1;instruction 2;...

    }

    else {instruction 1;instruction 2;...

    }

    Lorsque l'expression boolenne prend la valeur true, c'est le premier groupe d'instructions qui estexcut. Dans le cas contraire, (false), c'est le deuxime groupe d'instructions, situ aprs le mot-cl else,qui est excut.L'expression boolenne doit toujours tre crite entre des parenthses. Les deux groupes d'instructionssont crits entre des accolades; celles-ci peuvent tre supprimes pour les groupes ne contenant qu'une

    seule instruction.Le mot-cl else et le groupe d'instructions associ sont facultatifs; s'ils ne sont pas utiliss, aucuneinstruction n'est excute lorsque l'expression boolenne prend la valeur false.

  • 8/2/2019 Support Cours Php

    19/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 19

    IIIIII..99..22 UUttiilliissaattiioonn ddee sswwiittcchhL'instruction switch permet de faire excuter certaines instructions selon la valeur prise par une

    variable. Elle prend la forme suivante :

    switch (variable) {case val1 : instructionscase val2 : instructionscase val3 : instructions......default : instructions

    }Ds que la variable teste prend l'une des valeurs proposes, les instructions correspondant cette

    valeur et aux valeurs suivantes sont excutes. Si aucune valeur n'est reconnue, ce sont les instructionscorrespondant default qui sont excutes.

    La variable teste doit tre crite entre parenthses. L'ensemble des instructions correspondant auxdiffrentes valeurs possibles doit tre crit entre des accolades.

    Pour que seules les instructions correspondant une valeur soient excutes, on utilise le mot-cl

    BREAK qui permet de sortir directement de la structure switch.

    IIIIII..1100..LLeess bboouucclleessIIIIII..1100..11BBoouuccllee ffoorr

    L'instruction for prend la forme gnrale suivante :

    for (initialisation; condition; transition) {instruction1;instruction2;

    ....}Les instructions situes entre accolades forment la boucle qui sera excute. Les accolades ne sontncessaires que lorsqu'il y a plusieurs instructions.La premire partie, situe entre parenthses, contient 3 parties :

    initialisation: instruction excute avant le premier passage dans la boucle.

    condition: expression boolenne qui commande les passages dans la boucle qui se font tant qu'ellevaut true.

    transition: instruction qui est excute avant chaque nouveau passage dans la boucle.On utilise en gnral les boucles for lorsque le nombre de passage dans la boucle est connu ds le dpart.

    C'est un compteur (souvent une variable nomme i) qui sert dterminer le nombre de passages. Ainsi,pour rpter n fois une suite d'instructions, on utilisera le modle suivant :

    for (var i=0; i

  • 8/2/2019 Support Cours Php

    20/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 20

    IIIIII..1100..22 BBoouuccllee wwhhiillee

    L'instruction while prend la forme gnrale suivante :

    while (condition) {instruction1;instruction2;.....

    }La condition, toujours crite entre parenthses, est une expression boolenne. Tant que cette expressionest gale true la boucle forme par les instructions crites entre accolades est rpte.Attention : les instructions formant la boucle doivent modifier la valeur de la condition pour quel'excution puisse s'arrter.L'instruction while peut aussi prendre la forme :

    do {instruction1;

    instruction2;.....} while (condition)

    Comme dans la forme prcdente, la boucle forme par les instructions entre accolades est rpte tantque l'expression boolenne reprsentant la condition est gale true.

    IIIIII..1111..LLeess ttaabblleeaauuxx

    Lorsqu'un programme ncessite la cration de nombreuses variables, on les regroupe dans destableaux. Chaque variable correspond alors un indice et il est facile de parcourir le tableau en utilisantune boucle. Vous pouvez crer vos propres tableaux ou utiliser ceux que JavaScript dfinit pour stocker

    certaines informations.

    IIIIII..1111..11CCrraattiioonnLes tableaux JavaScript sont des objets de type Array. La cration d'un tableau se fait donc en utilisant lemot-cl new. On peut donc crer un tableau T en crivant :

    var T=new Array();Le tableau T sera alors vide.

    Si le nombre d'lments du tableau est connu, on crira, par exemple :var T=new Array(5);

    Le tableau T pourra alors contenir 5 lments.Il est enfin possible de crer un tableau en indiquant directement son contenu. Par exemple, pour crer letableau nommjours qui contiendra les noms des jours de la semaine, on pourra crire :

    var jours=["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"];

    IIIIII..1111..22UUttiilliissaattiioonnPour avoir accs, en lecture ou en criture, un lment d'un tableau on utilise le nom du tableau etl'indice de l'lment qui est un entier indiquant sa position. Ainsi, avec le tableau jours crprcdemment, on pourra crire :

    jours[i]

  • 8/2/2019 Support Cours Php

    21/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 21

    pour obtenir le nom du jour d'indice i. L'indice est toujours plac entre deux crochets.Attention, les indices commencent 0; le premier lment du tableau a donc l'indice 0, le deuxime al'indice 1, etc...On utilise la mme notation (avec les crochets) pour lire le contenu d'un tableau et pour donner une valeur un lment. Par exemple, pour crer un tableau de 5 nombres, on pourra crire :

    var T=new Array(5);

    T[0]=12;T[1]=15;T[2]=7;T[3]=14;T[4]=10;

    IIIIII..1111..33 QQuueellqquueess pprroopprriittss eett mmtthhooddeess ddeess oobbjjeettss ttaabblleeaauuxxLes tableaux tant des objets ils disposent de proprits et de mthodes dont l'utilisation peut se rvlerintressante.

    a. Proprit lengthLa proprit length d'un tableau indique le nombre d'lments qu'il contient.Par exemple, pour connatre le nombre d'lments d'un tableau T, on crira :

    var n=T.length;

    b. Mthode join()La mthode join() permet de regrouper tous les lments d'un tableau dans une seule chane de

    caractres. Par dfaut le sparateur est une virgule, on peut en choisir un autre en l'indiquant comme

    paramtre.Par exemple, si le tableau T contient les nombres 1, 3 et 5 :l'appel de T.join() fournira la chane de caractres "1,3,5".l'appel de T.join(" et ") fournira la chane de caractres "1 et 3 et 5".

    c. Mthode split() des chanes de caractresLes objets chanes de caractres possdent une mthode split() qui ralise l'opration contraire de

    join(). Elle dcoupe une chane de caractres et renvoie le rsultat dans un tableau. Le sparateur utilisdoit tre fourni en argument.Par exemple, si la chane de caractres S contient "1,3,5", S.split(",") renvoie un tableau de 3 lments quisont "1", "3" et "5".

    d. Mthode reverse()La mthode reverse() des tableaux fournit un nouveau tableau contenant les mmes lments mais dansl'ordre inverse.Par exemple, si le tableau T contient 1, 3 et 5, le tableau T.reverse() contient 5, 3 et 1.

    e. Mthode sort()La mthode sort() des tableaux permet de les trier en utilisant l'ordre lexicographique (ordre dudictionnaire).Par exemple, si le tableau T contient les chanes de caractres "encore", "avec" et "dans", l'appel deT.sort() modifiera l'ordre des lments en "avec", "dans" et "encore".

    La mthode sort peut utiliser en argument un nom de fonction de comparaison. Celle-ci doit comparerdeux variables a et b et renvoyer 1 si a est aprs b, -1 si a est avant b et 0 si a et b ont mme rang.Exemple d'application

  • 8/2/2019 Support Cours Php

    22/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 22

    L'exemple suivant construit un tableau partir d'une liste de mots, compte le nombre de mots,inverse l'ordre des mots et place les mots dans l'ordre alphabtique.

    Mthodes des tableauxMthodes des tableaux

    var S="poire orange abricot pomme fraise raisin";var T=S.split(" ");document.writeln("

    Liste de mots : ",S,"

    ");var n=T.length;document.writeln("

    Il y a ",n," mots dans la liste.

    ");document.writeln("

    Ordre inverse : ", T.reverse().join(" "));T.sort();document.writeln("

    Ordre alphabtique : ",T.join(" "));

  • 8/2/2019 Support Cours Php

    23/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 23

    IIVV.. eemmeeCCHHAAPPIITTRREE

    Le Langage PHP

    IIVV..11.. OOrriiggiinnee ddee PPHHPPDe simple ides aboutissent de magnifiques crations. PHP est n avec le site de RASMUS

    Lerdofen 1994: une page personnelle, avec son CV qui permettait l'origine de conserver une trace desvisiteurs. A l'poque PHP supportait dj des requtes SQL et, comme cela arrive souvent sur le Web,des internautes ont rapidement voulue leur propre copie de programmes. Rasmus a donc dcid de mettreen ligne sa premire version 1.0 de PHP (Personal Home Page).

    La version 2.0 permet au dveloppeur d'intgrer des instructions de programmation puissantesdirectement dans du code HTML. En janvier 1999, plus de 100.000 sites ont adopt le langage PHP.

    Une communaut de dveloppeurs s'est cre autour du langage. De nouvelles fonctions ont ainsipu voir le jour et de nombreux bugs ont t rapidement rsolus. La version 3.0 sortit le 6 juin 1998.

    La version PHP4 est sorti en Avril 2000 quant la version PHP5 vit le jour en 2003.

    IIVV..22.. DDeessccrriippttiioonn

    La souplesse et la performance de PHP n'est plus prouver. De nombreux sites dans le monde, etparmi eux de trs nombreuses applications professionnelles ont choisi PHP.Lorsqu'on ralise de sites Internet dynamiques, on est vite amen utiliser une base de donnes pour

    stocker des informations. Il existe de multiple de bases de donnes utilisables avec PHP, Mais leMYSQL est trs largement diffus sur Internet.

    MYSQL est un systme de gestion de base de donnes (SGBD). Cela signifie que c'est un ensembled'applications permettant de manipuler les donnes (ajout, suppression, modification, et lecture), maisaussi d'en contrler l'accs. Il est donc tout naturel que les sites interactifs fassent appel au serveur debase de donnes gratuit MySQL.

    IIVV..33.. IInnssttaallllaattiioonnPour pouvoir utiliser PHP, il y a tout un tas de fichiers installer... serveur Apache, PHP, MySQL,

    PhpMyAdmin... heureusement, quelqu'un a pens simplifier a !Installer EasyPhP

    1. Allez sur le site www.easyphp.org, tlchargez le logiciel gratuit EasyPHP...

    Excutez-le aprs avoir ventuellement dsactiv le PWS , une nouvelle icne apparat ct del'heure en bas de l'cran indiquant que Easyphp est actif (par dfaut Apache, PHP et MySQLaussi);

    2. Crez sur votre PC un dossier essais dans le dossier racine ...\EasyPHP\www\ ; C'est dans cedossier que vous mettrez les fichier *.PHP.

    3. Recopiez dans un diteur la source suivante puis enregistrez sous le nom essai_1.php attention l'extension ! dans le dossier essais ;

  • 8/2/2019 Support Cours Php

    24/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 24

    Essai 1

    Nous sommes le

    4. Excutez en tapant l'URL

    http://localhost/essais/essai_1.php dans le navigateur... demandez la connexion si ncessaire(elle sera interne donc gratuite) et la date courante doit apparatre ;Autre possibilit : click droit sur l'icne, puis Web local qui liste vos dossiers du www...

    Remarques

    1. Pour pouvoir produire un fichier php il faut avoir paramtr Windows afin qu'il affiche toutes lesextensions sinon un .txt risque d'tre ajout ! (Menu du dossier : Outils > Options des dossiers... >Affichage)

    2. "L'exemple n'affiche pas la date !" : Jusque l, vous cliquiez sur l'icne de votre page html pour

    lancer le navigateur et l'afficher... Ce n'est plus le cas avec vos pages asp ou php, il faut seconnecter au serveur interne en tapant dans la barre d'adresses de votre navigateur une URLcomplte: http://localhost/essais/essai_1.php .

    3. Le navigateur peut parfois afficher le dialogue de connexion, comme pour aller sur le Web, et ilfaut alors choisir "Se connecter" mais ce sera une connexion interne, donc gratuite ! Si la date nes'affiche pas, c'est que vous n'tes pas connect au serveur interne, inutile donc d'aller plus loin,relisez cette fiche et REESSAYEZ!!!Astuce : Internet Explorer affiche Intranet local en bas de fentre, si vous tes correctementconnect !

    4. Les deux serveurs PWS (ou IIS) et Apache ne fonctionnent pas ensemble moins qu'ils ne soientsur des ports diffrents... donc:

    - soit vous pensez dsactiver l'un avant d'activer l'autre (click droit sur leurs icnes respectives) ;- soit vous mettez Apache sur le port 81 en modifiant le fichier...\EasyPHP\apache\conf\httpd.conf et vous utilisez alors http://localhost:81/ au dbut de vosURL locales pour le PHP.

    5. Pour faire dmarrer PHPMY Admin: dans IE taper http://127.0.0.1/mysql/

    IIVV..44.. MMiissee eenn pprraattiiqquuee ddee PPHHPP

    La notation en PHP n'est pas trs difficile. Le code PHP est simplement insr au sein d'un documentHTML tout fait classique. L'important est que vous signaliez qu'il s'agit de code Php avec des balisescomme ci-dessous:

    ?>

    Premiers scripts : Afficher du texte:A partir du moment o vous placez du code PHP dans un fichier *.htm ou *.html, vous devrez renommerce fichier en *.php. Pour que le serveur analyse et excute les requte PHP. Si vous ne faites pas cette

  • 8/2/2019 Support Cours Php

    25/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 25

    manipulation, le code risque d'apparatre en toute lettre dans le navigateur sans tre excuter par leserveur.

  • 8/2/2019 Support Cours Php

    26/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 26

    IIVV..55..11 DDffiinniirr ddeess vvaarriiaabblleess

    Pour dfinir des variables, il suffit de lui assigner une valeur. Pour cela, il faut utiliser la syntaxe suivante:

    $nom_de_la_variable = "valeur"; // chane valeur$nom_de_la_variable = 10; // entier valeur

    Attention toutefois, $Variable ne correspond pas a $variable, ce sont deux variables diffrentes.

    Pour rcuprer une variable, on l'appelle tout simplement par son nom :

    echo $variable;echo "Texte avant $variable Texte aprs";echo "Texte avant " . $variable . " Texte aprs";

    On peut faire des oprations sur les variables .

    $a = 10;$b = 15;$c = $a + $b;echo $c;ou encore:

    $a=20;$b=$a/2;echo $b;

    IIVV..55..22 AAffffiicchheerr llaa ddaattee dduu jjoouurr eett ll''hheeuurree eenn ccoouurrssLa fonction date() permet d'obtenir l'heure local du serveur mais attention l'heure local est fonction de la situationgographique du serveur n lui-mme. En effet, un serveur situ au Canada vous donnera l'heure du Canada.

    Nous utilisons pour cela la fonction date():

    Dans le code ci-dessus nous gnrons la variable $date en lui donnant la valeur de ce que retourne lafonction date("d-m-y"): le jour, le mois et l'anne. Les paramtres contenues entre les parenthses d-m-ypeuvent tre placs dans l'ordre que vous dsirez.

    Astuce pratique: Vous voudrez peut tre remplacer le":" par un "h" pour que le format Franais soitvraiment respect (ex: 13h15), dans ce cas il suffit de procder ainsi : date("H\hi"), remarquez l'antislashdevant le deuxime "h", en effet, il faut spcifier PHP que cette lettre est un caractre afficher et non nouveau l'heure en cours, on y place un backslash comme devant tous les caractres spciaux qui nedoivent pas tre interprts comme du code.

    Pas de dclaration de variable:

  • 8/2/2019 Support Cours Php

    27/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 27

    EXECUTION$a = 3$a = 3.3$a = 3a

    les variables en PHP n'ont pas besoin d'tre dclares,o on peut commencer les utiliser sans en avoir averti l'interprteur au pralable !o si la variable existait prcdemment, son contenu est utilis,o sinon l'interprteur lui affectera la valeur en lui assignant NULL par dfauto Il n'est pas ncessaire en PHP de typer les variables, c'est--dire de dfinir leur type, il suffit deleur assigner une valeur pour en dfinir le type.

    IIVV..55..33 vvaarriiaabbllee aaffffeeccttee oouu nnoonn

    EXECUTION

    variable non dclare isset :

    variable NULL isset :variable a valeur 13 isset : 1aprs unset($b) isset :

    isset(variable): dtermine si une variable est affecte/dfinie, renvoie TRUE , sinon FALSE

    unset(variable) : dtruit une variableunset() l'intrieur d'une fonction n'a pas la mme porte de destruction suivant le type de variable

    IIVV..55..44 DDffiinniirr ddeess ccoonnssttaanntteessPour dfinir des constantes, on utilise la fonction define(). La plupart du temps, le nom d'une constante esten majuscule. Par la suite, si vous souhaitez rcuprer la valeur d'une constante, il suffit de l'appeler par

  • 8/2/2019 Support Cours Php

    28/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 28

    son nom :

    EXECUTION

    3.14166.2832

    Une constante est une valeur fixe nomme :

    l'identificateur suit la syntaxe PHP des identificateurs sans le $ !!

    la valeur est integer, boolean, flot ou string

    sa porte est globale

    IIVV..55..55 UUnnee vvaarriiaabbllee EExxiissttee oouu ppaass

    Pour vrifier si une variable existe, on utilise la fonction empty() qui renvoie true si elle existe et falsesinon.

    $variable = "a";if(empty($variable))echo "existe";else echo "n'existe pas";

    Pour vrifier si une constante existe, il faut utiliser dans ce cas la fonction defined() qui renvoie true encas de russite et false sinon.

    define("CONSTANTE","a");if(defined("CONSTANTE"))echo "Existe";else echo "N'existe pas";

    IIVV..55..66 TTyyppee ddee vvaarriiaabbllee

    La fonction gettype() permet de changer le type de donnes d'une variable. On peut assigner les typessuivants:

    Class

    integer

    object

    string

    array

    double

    unknown type

    if(gettype($variable) == "integer")

    La fonction settype() permet de dfinir explicitement le type d'une variable.

  • 8/2/2019 Support Cours Php

    29/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 29

    $variable = 2.5;settype($variable, "integer");

    La variable $variable renverra maintenant 2 et non 2.5.

    IIVV..66.. VVaarriiaabbllee vvaarriiaabblleeUne variable variable permet de prendre la valeur d'une variable 1 pour donner le nom a la variable 2.

    $variable1 = "nom_de_la_variable2";$$variable1 = "valeur_variable2";echo $$variable1;

    IIVV..77.. LLeess ffoorrmmuullaaiirreess

    formulaire soumettre formulaire soumettre

    Renseigner le chien :

    Nom :

    Maitre :
    Aboiement :
    Nombre de puces :

    Les formulaires constituent un moyen de rcuprer de l'information provenant de l'utilisateurla balise form dlimite/dfinit le formulaire

    l'attribut method permet de choisir la mthode d'envoi HTTP entre POST et, dconseiller, GET(envoi de paramtres visibles)

    l'attribut action prcise l'URL demande par la requte HTTPun formulaire se compose d'lments :

    la balise input dfinit des champs d'information simples elle possde un attribut name pour dsignerl'lment et ventuellement un attribut value de valeur initialeelle se sub-divise selon son attribut type

    text un petit champ pour que l'utilisateur saisisse un nombre ou une phrase

    button pour cliquer dessus

    checkbox des cases cocher (information on/off)

    radio des "radio-boutons" (information on/off mais un seul peut tre coch la fois !)

    hidden est un champ cach pour transmettre des informations vers le serveur, sans quel'utilisateur ne le sache : c'est trs utile pour grer un caddie ...

    password un champ texte mais masquant le texte tap

    submit est l'action indispensable lorsque le formulaire est utilis pour envoyer de l'information

  • 8/2/2019 Support Cours Php

    30/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 30

    depuis l'utilisateur vers le serveur : il "envoie" les donnes rcupres de l'utilisateur dans le formulairevers le serveur

    reset pour remettre le formulaire dans son tat initial- select pour les listes- textarea pour un texte multi-lignes.

    * Voici quelques exemples d'objets de formulaire :

    Nom Resultat Code

    Zone de texte valeur initiale

    Zone de texte droulanteValeur initiale

    Valeur initiale

    Case a cocher

    Menu droulant valeur1

    valeur1valeur2

    valeur3

    Case d'option

    Bouton titre

    IIVV..88.. LLeess eexxpprreessssiioonnss::Quelques oprateurs peu ou mal connus

    EXECUTIONint i = 2, j = 6expression $i++*$j+1 : 13i = 3, j = 6affectation $j += $i :

    j = 9expression ($j > $i ? $j - $i : $i - $j) 6

    ++ et -- oprateurs de pr ou post incrmentation et dcrmentation :o dans l'expression ci-dessus, $i++ la valeur 2 de $i est utilise dans l'expression avant de l'incrmenter de1, c'est une post-incrmentation

    $var op= expressionest quivalente $var = $var op expression ,o op est +, -, /, *, !, ., &, .... exp_bool ? expression1 : expression1utilise l'oprateur conditionnel ternaire

  • 8/2/2019 Support Cours Php

    31/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 31

    signifie si exp_bool vaut true, alors expression1 sinon expression2

    IIVV..99.. CCrraattiioonn ddee ttaabblleeaauuxx

    Un tableau est un conteneur renfermant plusieurs valeurs. Chaque lment d'un tableau possde une

    valeur propre ainsi qu'une cl qui permet de faire rfrence cet lment.

    Variable $provider[0] $provider[1] $provider[2]

    Valeur wanadoo club-internet aol

    Il existe plusieurs manires pour crer des tableaux :

    a. Avec des indices entiers

    1. Affecter des valeurs aux variables :$provider[] = "wanadoo";

    $provider[] = "club-internet";$provider[] = "aol";En ne mettant rien entre crochet, l'lment est tout simplement ajout a la suite.

    2. Affecter des valeurs et des indices explicites :$provider[0] = "wanadoo";$provider[1] = "club-internet";$provider[2] = "aol";L'indice peut tre n'importe quel entier, ainsi, cela aurait pu tre 20, 80 et 90.

    3. Affecter des valeurs avec array() :$provider = array("wanadoo", "club-internet", "aol");Ainsi $provider[3] va renvoyer aol.

    4. Affecter des valeurs et des indices avec array() :$provider = array(1=> "wanadoo", "club-internet", "aol");Ainsi $provider[3] va renvoyer aol. Tout simplement, en placant l'oprateur =>, vous changezl'indice, c'est a dire que les autres lments vont prendre les valeurs suivantes, ici ce sera 1, 2 et 3au lieu de 0, 1 et 2. Il est possible de placer l'oprateur devant n'importe quelle valeur du tableau.

    b.Avec des indices chaines

    Comme nous avons dja pu le constater ci-dessus, il est possible d'utiliser des entiers comme indices.Toutefois, il est aussi possible d'utiliser des chanes de caractres, ce qui peut tre plus clair :

    $provider["rapide"] = "wanadoo";$provider["moyen"] = "club-internet";$provider["lent"] = "aol";

    La variable$provider[moyen]va renvoyerclub-internet.

    Il est aussi possible d'utiliser la fonction array() pour crer des tableaux utilisant des indices chaine :

    $provider = array("rapide" => "wanadoo", "moyen" => "club-internet", "lent" => "aol");La variable$provider[moyen]va aussi renvoyerclub-internet.

  • 8/2/2019 Support Cours Php

    32/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 32

    IIVV..99..11 PPaarrccoouurriirr uunn ttaabblleeaauu

    a. Parcourir un tableau utilisant des entiers comme indices :

    La manire la plus rapide pour extraire l'ensemble des valeurs d'un tableau, quel que soit le nombre de

    valeurs, est d'utiliser une boucle for() :$provider = array("wanadoo", "club-internet", "aol");for($nb =0; $provider[$nb] != false; $nb++){echo $provider[$nb]."
    ";}

    Bien videmment, si le tableaune commence pas par l'indice 0, il faut seulement initialiser la variable$nb avec l'indice de dpart du tableau afin que l'ensemble des valeurs soit affiches. (ce qui donnera :for($nb = 10; $provider[$nb] != false; $nb++) // pour l'indice 10)

    Cependant, il existe une autre faon pour extraire les valeurs d'un tableau, il faut utiliser la boucle for()mais aussi la fonction count().

    $provider = array("wanadoo", "club-internet", "aol");$elements_table = count($provider);

    for($nb =0; $nb "wanadoo", 90=> "club-internet", "aol");$key = key($provider);$val = current($provider);reset($provider);while(list ($key, $val) = each ($provider)){echo "L'indice $key correspond a $val
    ";

    }

    b. Parcourir un tableau utilisant des chanes comme indices :

    Lorsque l'indice est une chaine, il est ncessaire d'utiliser une boucle while pour afficherl'ensemble des valeurs et des indices du tableau :

    $provider = array("rapide" => "wanadoo", "moyen" => "club-internet", "lent" => "aol");$key = key($provider);$val = current($provider);reset($provider);

    while(list ($key, $val) = each ($provider)){echo "L'indice chaine $key correspond a $val
    ";

    }

  • 8/2/2019 Support Cours Php

    33/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 33

    IIVV..99..22 FFoonnccttiioonnss ddee ttrrii

    Il existe plusieurs fonctions permettant de trier les valeurs d'un tableau.

    $lettres = array("b","c","a","d");sort($lettres);$key = key($lettres);

    $val = current($lettres);while(list ($key, $val) = each($lettres)) {echo "L'indice $key correspond $val
    \n";

    }Ceci va ranger les valeurs du tableau dans l'ordre alphabtique en conservant les indices.

    $lettres = array("a" =>"b", "b" => "c","c" => "a","d" => "d");asort($lettres);$key = key($lettres);$val = current($lettres);

    while(list ($key, $val) = each($lettres)) {echo "L'indice $key correspond $val
    \n";

    }Ceci va ranger les valeurs, en conservant les indices.

    IIVV..1100..LLeess ffoonnccttiioonnss MMaatthhmmaattiiqquueess Plusieurs nombres ajouter :

    $valeur1 = "10";$valeur2 = "11";

    $valeur3 = "12";

    $result = $valeur1 + $valeur2 + $valeur3;print($result);

    Multiplier :$valeur1 = "10";$valeur2 = "11";$valeur3 = "12";$result = $valeur1 * $valeur2 * $valeur3;print($result);

    Diviser :$valeur1 = "10";$valeur2 = "11";$valeur3 = "12";$result = $valeur1 / $valeur2 / $valeur3;print($result);

    Soustraire :$valeur1 = "10";$valeur2 = "11";$valeur3 = "12";$result = $valeur1 - $valeur2 - $valeur3;print($result);

  • 8/2/2019 Support Cours Php

    34/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 34

    IIVV..1111..LLeess ffoonnccttiioonnssIIVV..1111..11DDffiinniirr ddeess ffoonnccttiioonnss ::

    o Fonctions simples :function bonjour(){

    echo "Bonjour !";}

    bonjour();o Fonctions complexes :

    function type($police, $taille){echo "Texte Mis en forme";}

    type("Arial", "2");

    IIVV..1122..LLeess iinnssttrruuccttiioonnssIIVV..1122..11IIff,, eellsseeiiffeett eellssee

    if, elseif et else sont utiliss pour vrifier quelque chose (si...autrement...sinon).$arg1 = "Flen";$arg2 = "Flen";$arg3 = "Flen";

    if($arg1 == $arg2) // Pas de ; a la fin

    {echo "Valeur de arg1 gale a arg2";

    }elseif($arg1 == $arg3){echo "Valeur de arg1 gale a arg3";

    }else{echo "Arg1 n'est ni gal a arg2, ni a arg3";

    }

    Oprateurs de comparaison :< (est infrieur a)> (suprieur a)= (est suprieur ou gal)== (est egal a)!= (n'est pas gal a)AND && (et)

    OR || (ou)! (sauf)

  • 8/2/2019 Support Cours Php

    35/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 35

    IIVV..1122..22sswwiittcchh :: llee ""cchhooiixx ppaarrmmii""Exemple:

  • 8/2/2019 Support Cours Php

    36/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 36

    permet de sortir d'une instruction switch, while, for, foreach

    IIVV..1122..33bboouucclleess wwhhiillee eett ddoo--wwhhiillee EXECUTION pour 4 :$i = 0$i = 1$i = 2$i = 3puis$i = 0$i = 1$i = 2$i = 3

    doinstructionCorpsDeBouclewhile (test) ;

    avec test = expr. boolenneo excution de l'instruction,o valuation du test,

    si sa valeur est true,alors excution de l'instruction,

    o valuation du test,

    si sa valeur est true,alors excution de l'instruction,o ....o arrt de la boucle quand la valeur du test devient false.

    while (test)instructionCorpsDeBoucle

    o valuation du test,si sa valeur est true,alors excution de l'instruction,o valuation du test,si sa valeur est true,alors excution de l'instruction,o ....

  • 8/2/2019 Support Cours Php

    37/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 37

    o arrt de la boucle quand la valeur du test devient false. Dans les 2 formes, l'instruction dite corps de la boucle est une instruction simple, un bloc ou uneinstruction alternative ou une boucle, ...

    IIVV..1122..44bboouuccllee ffoorr?> EXECUTION pour 14 :1 estpremier2 estpremier3 estpremier5 est

    premier7 estpremier11 estpremier13 estpremier

    Syntaxefor (initialisation ; test ; nouvelle_itration )instruction_corps_de_boucle

    o l'instruction d'initialisation peut tre video test = expr. boulenneo nouvelle_itration = instruction qui prpare l'itration suivante (peut tre vide)o la boucle for fonctionne commeinitialisation;while (test) {instruction_corps_de_bouclenouvelle_itration} continuepasse directement l'itration suivante de la boucle

    IIVV..1122..55aarrrraayy ""aassssoocciiaattiiff""

  • 8/2/2019 Support Cours Php

    38/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 38

    EXECUTION

    le samedi est un jour de week-endlundi : travailmardi : travailmercredi : travail

    jeudi : travailvendredi : travailsamedi

    Un array "PHP" est un ensemble ordonn d'lments accessible par un index (ordered map) :o c'est une association de paire (cl, valeur) : la cl permet d'accder l'lment

    o la cl est soit un entier soit une chaneo la valeur peut tre de n'importe quel typeo en PHP4, l'array peut tre utilis comme :

    - tableau classique,- liste,- pile, file, ensemble,- table accessible par cl, dictionnaire.

    array(cle0 => valeur0, cle1 => valeur1, ...)cre un tableau avec les lments indiques dans l'ordreles lments du tableau sont respectivement les paires (cl, valeur) spcifiesle premier lment a la cl cle0 et la valeur0

    le second lment a la cl cle1 et la valeur1..... les lments se manipulent ainsi : $tab[cl] o cl est un entier ou un string foreacho PHP4 !o foreach(array_expression as $key => $value)

    ralise une boucle o les variables $key et $value prennent successivement les cls et valeursdes lments du tableau.

    o foreach(array_expression as $value)ralise une boucle o la variable $value prend successivement les valeurs des lments du

    tableau

  • 8/2/2019 Support Cours Php

    39/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 39

    VV.. eemmee CChhaappiittrree

    MYSQL

    VV..11..CCrraattiioonn ddee llaa bbaassee ddee ddoonnnneessPour exploiter une base de donnes, la premire chose faire est videmment de crer cette base.

    Il existe pour cela un outil trs pratique:PHPMYADMIN.

    Dans une base de donnes Mysql les informations sont stockes dans des tables.Crons une table avec trois champs: Nom, prenom et email.Ils sont tous de type Varchar de longueur 50.

    VV..22..CCoonnnneexxiioonn MMyyssqqll

    Pour se connecter Mysql par l'intermdiaire de PHP, il faut utiliser la fonction mysql_connect().

    Syntaxe de la fonction :int mysql_connect(string [hostname [:port]], string [username] , string [password] );

    Exemple :$host = "127.0.0.1";

    $user = "root";

    $bdd = "essai";

    mysql_connect($host, $user,$password) or die("erreur de connexion au serveur");

    mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");

    VV..33..EExxccuuttiioonn dd''uunnee rreeqquuttee SSQQLL

    Avant tout, il faut se connecter. Pour excuter une requte SQL, il faut utiliser la fonctionmysql_db_query().

    Syntaxe de la fonction :int mysql_db_query(string database, string query, int [link_identifier] );

    Exemple : Insertion de donnes dans la table list.I) $mysql_connexion = mysql_connect("localhost", "root", "motdepasse");$requete = "INSERT INTO list (nom, prenom, email) VALUES ('Benahmed', 'farid', '[email protected])";$requete2 = mysql_db_query("bdd", $requete);

    VV..44..EEnnrreeggiissttrreemmeenntt ddaannss uunnee ttaabbllee MMyyssqqll

    Considrons une table valeurs qui se trouve dans une base essai.- Structure de cette table valeurs :

    CREATE TABLE valeurs (num int(11) DEFAULT '0' NOT NULL auto_increment,nom blob NOT NULL,

  • 8/2/2019 Support Cours Php

    40/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 40prenom blob NOT NULL,PRIMARY KEY (num));

    Le script PHP :

  • 8/2/2019 Support Cours Php

    41/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 41

    {echo "Nom : ".$voir[nom_colone]."Prenom : ".$voir[nom_colone2]."";echo "";

    Pour extraire une partie d'une table dans un tableau : (ici, la ligne ou la colone nom = Mohamed)$mysql_link = mysql_connect("localhost", "root", "");$requete = "SELECT * FROM table_article WHERE nom='Mohamed'";$result = mysql_db_query("bdd", $requete);

    echo "";while ($voir = mysql_fetch_array($result)){echo "Nom : ".$voir[nom_colone]."Prenom : ".$voir[nom_colone2]."

    ";}

    echo "";

    Suppression de donnes dans la table essai:On peut effacer des donnes dans une table grce la fonction delete from$mysql_link = mysql_connect("localhost", "root", "");mysql_db_query("bdd", "delete from essai Where nom='flen'");

    VV..66..SSyynnttaaxxee MMyyssqqll

    VV..66..11 EExxccuuttiioonn ddee rreeqquutteess

    Pour crer une table mysql, vous pouvez utiliser par exemple PhpMyAdmin (Le plus connu) ou biendirectement excuter la requete avec mysql_db_query() de php.

    Avec PhpMyadmin, c'est trs simple :

    A gauche, cliquez sur le lien intitul par le nom

    de votre base de donnes, sur free c'est votrelogin, puis dans le formulaire (Voir ci-contre),faites un copier coller de votre fichier contenantle code SQL ou bien tapez directement larequte que vous souhaitez excuter. Cliqueztout simplement sur le Bouton Excuter pourterminer.

    VV..66..22 CCrraattiioonn ddee ttaabbllee

    Afin de crer une table Mysql, vous devez utiliser la fonction CREATE TABLE.Voici la syntaxe simple de l'utilisation de cette fonction. La table ci-dessous contiendra toutes lescolonnes en bleu.

  • 8/2/2019 Support Cours Php

    42/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 42

    CREATE TABLE essai (num INT not null AUTO_INCREMENT, nom VARCHAR (100) not null ,prenom VARCHAR (100) not null , adresse VARCHAR (255) not null , codepostal INT (5) not null ,ville VARCHAR (100) not null , pays VARCHAR (100) not null , PRIMARY KEY(num));

    Sachez que vous pouvez aussi utiliser PhpMyAdmin pourcrer vos tables, ce qui vous vitera de taper la requte.

    (Voir ci-contre)

    VV..66..33 MMooddiiffiiccaattiioonn dd''uunnee ttaabblleeVous vitez de crer un nouvelle fois la table que vous souhaitez modifier, il esiste la fonction ALTERTABLE qui permet d'ajouter ou de supprimer des champs d'une table.

    a. Ajouter une colonne :ALTER TABLE essai ADD email VARCHAR(100) not null

    b. Supprimer une colonneALTER TABLE essai DROP email

    c. Suppression de donnes

    Pour supprimer des lignes contenues dans une table, il faut utiliser la fonction DELETE FROM.

    Syntaxe : DELETE FROM nom_table WHERE champs = 'valeur'

    En fait, le WHERE permet de choisir quelle ligne va tre supprime. Par exemple si le champs'num' est AUTO_INCREMENT, vous pourrez l'utiliser pour vos requtes.

    Exemple pour notre table essai :DELETE FROM essai WHERE num = '2'

  • 8/2/2019 Support Cours Php

    43/43

    Conception de Pages Web Dynamiques Avec PHP/MYSQL 43