24
I.U.T. de TOULON – Département MMi 1/24 TP d’Algorithmique PHP

Algo Livret PHP

Embed Size (px)

DESCRIPTION

php book

Citation preview

I.U.T. de TOULON Dpartement MMi 1/24 TP dAlgorithmique PHP I.U.T. de TOULON Dpartement MMi 2/24 SOMMAIRE Les logiciels p. 3 Easyphpp. 5 Wamp Serverp. 6 Xampp Serverp. 6 Netbeansp. 8 Les formulaires HTMLp. 12 Les champs textep. 12 Les cases cocherp. 13 Les listes choix p.13 Utilisation dun formulaire HTML avec un fichier phpp.14 Initiation au langage PHPp. 16 LAffectation des Variablesp. 16 Les Entres / Sortiesp. 16 Les Commentairesp. 16 Les Conditionsp. 17 Les testsp. 17 Les Bouclesp. 18 Les Fonctionsp. 19 Les Tableauxp. 21 I.U.T. de TOULON Dpartement MMi 3/24 Les logiciels 1.CE QU'IL FAUT INSTALLER 1.1.SI VOUS ETES SOUS WINDOWS ServeursEasyPHP :

Apache +MySQL +PHP : Les serveurs vont permettre dexcuter vos scripts sur sa machine en local et ventuellement de vous procurer un accs des bases de donnes. Utilisez au choix une des solutions suivantes : http ://www.easyphp.org/fr/ Xampp Server :http ://sourceforge.net/projects/xampp/Wamp Server : http ://www.wampserver.com/ Notepad++ : un diteur de texte qui colore automatiquement le code que lon entre en fonction de lalogiquedevotrelangageinformatique.Cetteaideindispensablesappellelacoloration syntaxique. ( Editeur de texte http ://notepad-plus.sourceforge.net/fr/site.htm ) Netbeans :unIDE(EnvironnementdeDveloppementInformatique)gratuitquivousoffrira beaucoup davantages, entre autres : Auto compltion de code (lditeur complte votre code au fur et mesure que vous le saisissiez) Affichage en direct des erreurs de syntaxes Accs des bibliothques de fonctions Insertion simplifie de code html Encontrepartie,sonutilisationestunpeupluscomplexequunditeurdetexte. (https://netbeans.org/index_fr.html) Netbeans est utilisable sous Windows, Linux et Mac OS 1.2.SI VOUS ETES SOUS MAC Equivalent Xampp Server : Mamp ( http ://www.mamp.info/en/index.html ) Equivalent de Notepad++ : Smultron ( http ://smultron.sourceforge.net/ ) 1.3.SI VOUS ETES SOUS LINUX Equivalent Xampp Server : Lamp ( http://doc.ubuntu-fr.org/lamp ) Equivalent de Notepad++ : Geany ( http://doc.ubuntu-fr.org/geany ) ou ou ou I.U.T. de TOULON Dpartement MMi 4/24 2.POURQUOI UTILISER UN SERVEUR LOCAL ? Ossature de toute page HTML Ma page de test Bienvenue sur le site de toto Le blabla de ma page... Voici une page HTML bien traditionnelle comme on les aime. Copiez-collez en le contenu dans votre diteur de texte notepad++. Enregistrez et nommez-la test.html Vousremarquerezquelecodedelapagesecoloredefaonsyntaxique,cequilerendbienplus comprhensible. C'est l'intrt de vous faire utiliser cet diteur de texte. Pourl'instant,enregistrezcefichiersurvotrebureau,fermeznotepad++,etdouble-cliquezmaintenant directement sur votre fichier test.html, cela vous ouvrira une page web comme si vous tiez sur internet... Pourtant, vous n'y tes pas, sur internet. Vous tes "en local", bref, sur votre ordi, et vous ne faites que voir votre fichier la faon d'une page web. Rouvrez maintenant l'diteur de texte et copiez/collez le bout de code suivant dans lequel on a introduit des balises PHP. Test.php contient des balise PHP Ma page d'accueil Bienvenue sur le site de toto Toto fait de l'anglais : Quand vous l'enregistrez, sur votre bureau, renommez-le test.php, (changez l'extension de .html en .php). Ainsi, le serveur php est avis que cette page contient du code PHP (que le navigateur ne sait pas afficher en ce qui le concerne). Fermez votre diteur. Double-cliquez directement sur votre page test.php : Quelle dception ! Cela ne vous ouvre pas une page web mais... le code que vous venez de quitter, sous un diteur de texte qui est probablement bloc-notes sans coloration syntaxique. C'est ici que le fait d'avoir install Xampp Server sur votre machine va vous tre utile. En effet, il vous faut un interprteur PHP install en local. I.U.T. de TOULON Dpartement MMi 5/24 3. EASYPHP (WINDOWS) EasyPHP est un package WAMP (Windows Apache MySQL PHP) comprenant : Un serveur Web Apache Un serveur PHP permettant dexcuter les scripts Un serveur de base de donnes : MySQL Un gestionnaire de bases de donnes : PhpMyAdmin Un dbogueur : Xdebug 3.1.Installation du logiciel Installez le logiciel, par dfaut dans C:\Programmes\EasyPHP x.y.z (x, y et z permettant de connatre la version du logiciel). 3.2.Excution du logiciel Aprs le dmarrage du logiciel, un icone doit apparatre dans la barre de notification.Pour visualiser ltat des serveurs, vous pouvez double-cliquer sur licone dEasyPHP : 3.3.Enregistrement des scripts Vos scripts doivent tre placs un emplacement bien spcifique. Par dfaut il est lemplacement C:\Programmes\EasyPHP x.y.z\www Aprs le dmarrage du logiciel, un icone doit apparatre dans la barre de notification Pour accder directement ce rpertoire, cliquez (droit) sur licne dEasyPHP puis slectionnez Explorer ou tapez sur F8 3.4.Excution des scripts Pour excuter vos scripts, vous devez : Taper ladresse de votre serveur dans la barre dadresse dun navigateur Oucliquer(droit)surlicnedEasyPHPetslectionner Web local ou taper sur la touche F7 Notergalementloption Administration ou Ctrl+A quivouspermettradeconfigurervosdiffrents serveurs. Au minimum, le serveur Apache doit tre dmarr.Le serveur MySQL devra tre dmarr si vous voulez utiliser des bases de donnes. Le rpertoire www correspond la racine du serveur : ht t p: / / 127. 0. 0. 1(ou localhost) I.U.T. de TOULON Dpartement MMi 6/24 3.5.Test du logiciel Crez un fichier php ( partir de Notepad++ ou de Netbeans) contenant le code suivant : Enregistrez le fichier dans le rpertoire www en le nommant par exemple test.php. Lancez le Web local (cf. 3.4.) Cliquez sur le lien test.php Votre navigateur devrait afficher une page web avec le texte : Hello world ! 4. WAMP SERVER Le principe est exactement le mme que pour EasyPHP. 5. XAMPP SERVER Une fois le logiciel install en double cliquant sur l'icne prsent sur le bureau la fentre suivante s'ouvre : 5.1.Lancement du serveur Apache sous Xampp Cettefentreestlepointd'entredel'application.Eneffet,vousallezpouvoirgrceellegrerleserveur Apache. Vous disposez sur cette fentre de boutons en face des services concerns.Ainsi, pour lancer le serveur Apache, cliquez sur le bouton Start en face de Apache comme ci-dessous :

I.U.T. de TOULON Dpartement MMi 7/24 Pour vrifier que votre serveur est correctement lanc, lorsque vous cliquerez sur le bouton Start, vous aurez le message Running en vert en face du serveur lanc correctement :5.2.Vrification de l'initialisation du serveur Apache Une fois que vous aurez lanc votre serveur Apache, afin de tester son bon fonctionnement je vous invite ouvrir votre navigateur et taper l'adresse suivante: http://127.0.0.1 Ainsi, vous devriez voir s'afficher une page contenant le logo de Xampp comme ci-dessous : I.U.T. de TOULON Dpartement MMi 8/24 5.3.Utilisation de Xampp Server Maintenant que nous avons lanc notre serveur, nous pouvons visualiser des pages php sur notre serveur local. Ce qu'il faut savoir, c'est que les fichiers doivent tre situs l'endroit o vous avez install Xampp dans le dossier HTDOCS. Il vous suffit de crer un dossier dans le dossier HTDOCS dans lequel vous rangerez tous vos fichiers .php . Crer par exemple le dossier TP_php. Il faudra ensuite de nouveau ouvrir son navigateur et taper l'adresse suivante: http://127.0.0.1/Nom_de_votre_dossier Dans notre exemple, il faut taper dans la barre d'adresse: http://127.0.0.1/TP_php 6. NETBEANS 6.1.Configuration dun projet sous Netbeans Dmarrez Netbeans. Crez un nouveau projet : En cliquant sur licne Ou bien par le menu : Fichier Nouveau projet Netbeans tant un IDE (Environnement de Dveloppement Informatique) multi-langages, nous devons lui spcifier le langage de programmation utilis, ici le PHP. Slectionnez PHP Application. Cliquez sur Next. Nommez votre projet et indiquez le rpertoire dans lequel vous allez le mmoriser. I.U.T. de TOULON Dpartement MMi 9/24 Cliquez sur Next. Indiquer lURL du projet. Cochez galement la case copy source et indiquez le rpertoire correspondant. Dans mon cas, jutilise EasyPHP qui est install dans C:\ProgramFiles donc mon localhost correspond bien avec C:\Program Files\EasyPHP\www. Cliquez sur Next puis sur Finish (sans rien cocher sur le dernier cran). 6.2.Cration dun script Placez-vous devant le dossier Sources Files et faites un clic-droit de la souris. Slectionnez New puis PHP File Attention : Pour que tout fonctionne correctement, il faut que le rpertoire wwwcorresponde avec la racine de votre serveur. I.U.T. de TOULON Dpartement MMi 10/24 Indiquez le nom de votre script. Votre fichier est cr. Il contient juste les balises php ainsi quun message (en commentaire) pour vous permettre de modifier le code par dfaut. Vous pouvez commencer coder 6.3.Excution de votre script Nous pouvons crire un code simple, par exemple : Pour excuter notre code, il suffit : de cliquer sur licne Run ou bien de presser la touche F6 . Le rsultat de votre script apparat dans votre navigateur. Sur certaines configurations, il se peut que le script ne sexcute pas et que vous ayez un message du type : Cela est d au fait que le port sur lequel on essaie daccder lhte local, nest pas dfini. Dans ce cas, vous pouvez le dfinir dans le menu :Run Set Project Configuration Customize Indiquez alors le port utilis (ici 8887). I.U.T. de TOULON Dpartement MMi 11/24 Eventuellement, vous pouvez spcifier le nom du fichier php utilis (sil y a plusieurs fichiers ayant une extension php). 6.4.Utilisation du dbogueur Sil est tout fait normal de faire des erreurs en crivant le script (faites de frappe, oubli de ; , ), vous ne devez pas perdre trop de temps pour dterminer do vient lerreur. Une premire aide vous est apporte en cours de frappe par un affichage dynamique des erreurs. Dans cet exemple, le ; a t oubli :Laligneapparatalorssouligneenrougeetunpointdexclamation saffiche la place du numro de ligne concern. Cette aide permet de rsoudre la plupart des erreurs de syntaxe. Dansdautrescas,lerreurestplussournoiseetilfautobserverlecomportementdunevariablependant lexcution du script. Le dbogueur permet justement de voir lensemble des variables dun script pendant son excution. Nous devons indiquer un point darrt. Il suffit pour cela de cliquer sur le numro de la ligne o lon souhaite marquer un arrt. Nous dmarrons le dbogueur grce licne associ ou Ctrl +F5. Ds que le point darrt est atteint, le script est mis en pause. Nous pouvons donc observer les variables (ici la variable i) dans la zone situe en bas de lespace de travail. A cet instant, la variable i vaut 1. Comme le point darrt se situe lintrieur duneboucle, nous pouvons suivre son volution en relanant le script jusquau point darrt, en cliquant sur licne ou F5. I.U.T. de TOULON Dpartement MMi 12/24 I.U.T. de TOULON Dpartement MMi 13/24 Les formulaires HTML Le formulaire HTML va vous permettre de rcuprer des informations que va saisir l'internaute sur votre site. Il existe plusieurs sortes de formulaires : ligne(s) de texte, liste droulante, cases cocher, etc. 1.DEFINITION Un formulaire HTML se dfinit par la balise HTML . . La balise HTML doit contenir deux attributs indispensables : -method qui dfinit la mthode d'envoi (POST et GET). La diffrence entre ces deux mthodes repose sur la faon dont les donnes seront transmises au serveur et exploites par celui-ci. Avec le temps, la mthode post s'est impose car elle apparat plus efficace et permet le traitement d'une quantit plus importante de donnes. -action qui dfinit la destination o sont envoyes les donns : odans le cas d'un traitement des donnes par une page dynamique php, on spcifie le nom de la page : odans le cas d'un envoi vers en adresse lectronique (email), on utilise le protocole mailto: suivi de l'adresse lectronique de destinataire (gnralement votre adresse email) : (sans espace entre mailto: et l'adresse email !) Il n'est pas inutile de prvoir l'attribut NAME="nom" si la page comporte plusieurs formulaires. 2.LES CHAMPS DE TEXTE Il existe deux types de champs de texte : -le champ simple d'une ligne, -le champ multi-lignes. 2.1.Simple ligne -type dfinit la forme de la balise , donc pour une zone de texte simple c'est "text". -name donne un nom au champ texte. Trs important car ce nom est associ la valeur. -value dfinit le texte mis au dpart dans le champ, si le champ est vide alors value="". sachez que si vous rentrez une valeur par dfaut, l'internaute sera oblig de slectionner le texte de votre champ texte puis de l'effacer pour pouvoir crire un nouveau texte (sauf si vous utilisez le javascript). -size correspond la longueur du champ I.U.T. de TOULON Dpartement MMi 14/24 2.2.Multi-lignes Texte dfaut -cols correspond la longueur du champ,-rows correspond la hauteur du champ c'est dire le nombre de ligne. 3.LES CASES A COCHER Il est important de faire la diffrence entre le bouton radio et la case cocher. -La case cocher permet de faire des plusieurs choix sur un ensemble de propositions.-Le bouton radio permet de faire un choix sur un ensemble de propositions. 3.1.La case cocher -type dfinit la forme de la balise , donc pour une case cocher, c'est "checkbox", -name donne un nom la case. Trs important car ce nom est associ la valeur (value) lorsque l'on rceptionne le formulaire, Le rsultat de l'envoi vers le fichier php :La variable reue par le fichier php sera nom. Pour tester si la case a t coche, il suffira de tester si la variable associe (nom) existe. On utilisera pour cela linstruction isset dans le fichier php. 3.2.Le bouton radio -type dfinit la forme de la balise , donc pour un bouton radio, c'est "radio", -namedonneunnomunevariable.Pourfaireunseulchoixdansun ensemble de propositions, le nom doit tre identique, -value c'est la valeur de la slection. Le rsultat de l'envoi vers le fichier php :La variable reue par le fichier php sera nomet sera affecte par une seule valeur qui correspondra la slection (Nom_du_choix ). 4.LES LISTES A CHOIX texte_afich Dans : I.U.T. de TOULON Dpartement MMi 15/24 -name est le nom de la slection, il est associ la valeur de la balise -size dtermine le nombre d'options visibles. Il doit tre < ou = au nombre de balises -multiple signifie que l'on peut faire plusieurs slections. Si vous ne le mettez pas, l'internaute ne pourra faire qu'une slection. Dans : texte_affich -La balise correspond un lment de la liste. Vous pouvez donc avoir plusieurs balises -valueestla valeurrenvoyedansleformulaire,elleseraassocielavariablenamedelabalise . -texte_affich est le texte qui sera affich dans la liste Facultatif Le rsultat de l'envoi vers le fichier php :La variable reue par le fichier php sera name et sera affecte par la value de la ligne OPTION. 5.UTILISATION DUN FORMULAIRE AVEC UN FICHIER PHP 5.1.Formulaire et script dans deux fichiers distincts Dans ce cas, on aura un premier fichier nomm saisie_exo0.html qui fera appel au script exo0.php . Fichier: Saisie_Exo_00.html Fichier: Exo_00.php ATTRIBUTS IMPORTANTS : method = "post": A ne pas oublier si l'on travaille en mthode POST! Dans le formulaire : action="nom_fichier.php":Indiquezicilefichierexcuterpourletraitementdes donnes saisies. name="x":Lenomchoisiesttrsimportantpuisqu'ondevraensuite obligatoirement utiliser la variable $_POST[ ' x ' ]. Dans les zones de saisie : 5.2.Formulaire et script dans le mme fichier On doit dans ce cas tester l'existence de la variable $_POST[ ' x ' ] avant de l'utiliser. On utilise pour cela la fonction isset() qui nous renvoie une valeur boolenne (true or false) si la variable existe. Code Postal: Ville: I.U.T. de TOULON Dpartement MMi 16/24 EXPLICATIONS : Lors de la premire excution, les variables $_POST['...'] n'existent pas. On va donc excuter la partie correspondant au formulaire (2me partie du script). Aprs le clic sur le bouton OK, la page est recharge mais les variables $_POST['...'] existent. C'est donc la premire partie du script qui est excute. Notez dans ce cas que l'attribut action n'a pas besoin d'tre renseign puisqu'on excute le mme fichier. REMARQUE : Dans un formulaire, il est frquent de devoir vrifier que le champ est rempli. On utilisera une fonction empty() pour dterminer si la variable est vide . Dans cet exemple, on teste si la variable $_POST[ ' x ' ] existe et si elle est non vide. ATTENTION :S'il est trs utile de raliser ce test pour les saisies de texte (nom, prnoms, n tlphone...) il ne convient pas de le raliser pour des saisies de valeurs numriques. En effet, une saisie d'une valeur nulle sera interprte comme tant vide . On ne pourra donc pas accder la deuxime partie du script. Code Postal: Ville: if ( isset($_POST[ ' x ' ]) && !empty($_POST[ ' x ' ])) { } I.U.T. de TOULON Dpartement MMi 17/24 Initiation au langage PHP 1.L'AFFECTATION DES VARIABLES AlgorithmiePHP age 20$age = 20 ;2.LES ENTREES / SORTIES LES ENTREES Pour les entres se rfrer aux FORMULAIRES (p. 7). LES SORTIES AlgorithmiePHP Afficher ( Bonjour )echo ' Bonjour '; annee 2009 Afficher ( Nous sommes en , annee) $annee = 2009; echo ' Nous sommes en '.$annee.' ' ; REMARQUE : La balise
permet daller la ligne aprs un affichage lcran. Le caractre \ plac devant une apostrophe permet de la neutraliser pour ne pas qu'elle soit considre comme fin de l'affichage. Les balises ... permettent d'afficher un texte en gras. 3.LES COMMENTAIRES Pour commenter PHP Une seule ligneecho 'Bonjour'; // Afficher : Bonjour Plusieurs lignes /* Ceci est un programme qui permet d'afficher le texte : Bonjour */ I.U.T. de TOULON Dpartement MMi 18/24 4.LES CONDITIONS AlgorithmiePHP gal diffrent de strictement infrieur strictement suprieur infrieur ou gal suprieur ou gal ET logique OU logique NON logique= < > ET OU NON == != < > = && || ! 5.LES TESTS AlgorithmiePHP Slection simple :Si (condition) alors Bloc dinstructions FinSi if (condition) { ; // bloc dinstructions ; // bloc dinstructions} Slection avec alternative 1 :Si (condition) alors Bloc dinstructions Sinon Bloc dinstructions FinSi if (condition) { ; // bloc dinstructions} else { ; // bloc dinstructions} Slection avec alternative 2 :Si (condition) alors Bloc dinstructions SinonSi Bloc dinstructions Sinon Bloc dinstructions FinSi if (condition) { ; // bloc dinstructions} elseif { ; // bloc dinstructions} else { ; // bloc dinstructions} I.U.T. de TOULON Dpartement MMi 19/24 AlgorithmiePHP Slection choix multiple :Cas o (expression) vaut Cas (valeur1) : Bloc dinstructions Cas (valeur2) : Bloc dinstructions Autre : Bloc dinstructions FinCas switch (expression) { case valeur1 : ; /* bloc dinstructions */ break ; case valeur2 : ; /* bloc dinstructions */ break ; default : ; /* bloc dinstructions */ } 6.LES BOUCLES Algorithmie PHP SyntaxeExemple Boucle dterministe : Pour condition de dpart A condition darrt Par_Pas_De valeurFaireBloc dinstructions FinPour for ( condition de dpart ; condition de rebouclage ; valeur du pas) { ... ; // blocs dinstructions} for ($i = 0 ; $i < 10 ; $i++) { echo $i ; } Boucle indterministe n1 : TantQue (condition) faire Bloc dinstructions FinTantQue while (condition) { ... ; // blocs dinstructions} $i = 0 ; while ( $i < 10) { echo $i ; $i++ ; }

Boucle indterministe n2 : Faire Bloc dinstructions TantQue (condition) do { ... ; // blocs dinstructions} while (condition); $i = 0 ; do { echo $i ; $i++ ; } while ( $i < 10) ; $i++ $i = $i I.U.T. de TOULON Dpartement MMi 20/24 < ?php include (fonction.php) ; ; Test() ;// appel de la fonction// bloc dinstructions de lalgorithme principal ; ?> 7.LES FONCTIONS Comme pour lalgorithmie, il y a deux faons de programmer les fonctions : Un seul fichier .php Le fichier .php recueille le programme de lalgorithme principal et celui de la fonction. Le programme de la fonction est crit avant celui de lalgorithme principal. Dans ce cas, larchitecture de lutilisation dune fonction sera : Dclaration de la fonction Appel de la fonction au sein de lalgorithme principal. Fichier : exemple1.php Deux fichiers .php Lafonctionestdclaredansunfichier .php part.Ilestdoncncessairedinclurelefichier .php contenant le code de la fonction en dbut de programme de lalgorithme principal. Dans ce cas, larchitecture de lutilisation dune fonction sera : Prototype, Appel de la fonction au sein de lalgorithme principal, Dclaration de la fonction (dans un fichier .php spar) Lintgration du fichier contenant le code de la fonction se fera au moyen de linstruction : include ( fonctions.php ) ; Fichiers :exemple1.php fonction.php fonctions.php est le fichier qui contient la dclaration de la ou des fonctions < ?php function Test() { ;// bloc dinstructions de la fonction } ; test() ;// appel de la fonction ; ?> Dclaration de la fonction Code de lalgorithme principal < ?php function Test() { ;// bloc dinstructions de la fonction } ?> I.U.T. de TOULON Dpartement MMi 21/24 7.1.Fonction sans retour ni passage de paramtreExemple : fonction Test AlgorithmiePHP Appel de la fonction Test ()Test () ; Dclaration de la fonction DbutFonction Test() Bloc dinstructions FinFonction function Test() { ; // bloc dinstructions} 7.2.Fonction sans retour avec passage de paramtre(s) Exemple : fonction Test qui reoit de lalgorithme principal les paramtres p1 et p2 AlgorithmiePHP Appel de la fonction Test (p1, p2)Test ($p1, $p2) ; Dclaration de la fonctionDbutFonction Test (p1, p2)Bloc dinstructions FinFonction function Test ($p1, $p2) { ; // bloc dinstructions} 7.3. Fonction avec retour sans passage de paramtre Exemple : fonction Test qui renvoie lalgorithme principal le contenu de la variable r AlgorithmiePHP Appel de la fonction resultat Test ()$resultat = Test () ; Dclaration de la fonctionDbutFonction Test () : type Bloc dinstructions Renvoyer ( r ) FinFonction function Test () { ; // bloc dinstructionsreturn ( $r ); } I.U.T. de TOULON Dpartement MMi 22/24 7.4. Fonction avec retour avec passage de paramtre(s) Exemple : fonction Test qui reoit de lalgorithme principal les paramtres p1 et p2, et qui renvoie lalgorithme principal le contenu de la variable r AlgorithmiePHP Appel de la fonction resultat Test (p1, p2) $resultat = Test ($p1, $p2) ; Dclaration de la fonctionDbutFonction Test (p1, p2) : type Bloc dinstructions Renvoyer ( r ) FinFonction function Test ($p1, $p2) { ; // bloc dinstructionsreturn ( $r ); } 8.LES TABLEAUX AlgorithmiePHP Tab { 1, 2 , 3 , 4}$tab = array(1, 2, 3, 4); I.U.T. de TOULON Dpartement MMi 23/24 I.U.T. de TOULON Dpartement MMi 24/24