le PHP Amusons-nous avec - data.brains-master.com · Amusons-nous avec le PHP Par `Haku Licence...

300
Amusons-nous avec le PHP Par `Haku www.openclassrooms.com Licence Creative Commons 2 2.0 Dernière mise à jour le 29/10/2012

Transcript of le PHP Amusons-nous avec - data.brains-master.com · Amusons-nous avec le PHP Par `Haku Licence...

  • Amusons-nous avecle PHP

    Par `Haku

    www.openclassrooms.com

    Licence Creative Commons 2 2.0Dernire mise jour le 29/10/2012

    http://www.openclassrooms.com

  • Sommaire

    2Sommaire ........................................................................................................................................... 3Lire aussi ............................................................................................................................................ 5 Amusons-nous avec le PHP ............................................................................................................... 6Partie 1 : Les bases du PHP ............................................................................................................... 6Introduction ........................................................................................................................................................................ 6PHP, le Web, qu'est-ce donc ? .................................................................................................................................................................................... 8La programmation, c'est quoi ? ................................................................................................................................................................................... 9Pour apprendre, quelle attitude adopter ? ...................................................................................................................................................................

    10La bote outils du programmeur ................................................................................................................................... 11L'invit surprise : l'diteur de code ............................................................................................................................................................................ 13Apache et PHP sous Windows .................................................................................................................................................................................. 21Apache et PHP sous GNU/Linux, Mac OS X et les autres ........................................................................................................................................ 23Configurer pour mieux rgner ................................................................................................................................................................................... 23Configuration de PHP ................................................................................................................................................................................................ 24Configuration d'Apache .............................................................................................................................................................................................

    24Premiers pas ................................................................................................................................................................ 25Les balises PHP ........................................................................................................................................................................................................ 26Les commentaires .....................................................................................................................................................................................................

    28Les variables, le cur du PHP ....................................................................................................................................... 29Premire approche .................................................................................................................................................................................................... 29Les variables la sauce PHP ................................................................................................................................................................................... 30Valeurs et oprateur d'affectation .............................................................................................................................................................................. 31Une histoire de typage .............................................................................................................................................................................................. 32Les types primitifs ..................................................................................................................................................................................................... 32Les entiers, alias INT (ou INTEGER) ........................................................................................................................................................................ 32Les nombres virgules, alias FLOAT ....................................................................................................................................................................... 33Les vrais ou faux, alias BOOLEEN ........................................................................................................................................................................... 33Les chanes de caractres, alias STRING ................................................................................................................................................................ 34Un type part : NULL ................................................................................................................................................................................................ 34Quel est ton type ? ....................................................................................................................................................................................................

    36Les oprateurs : partie I .................................................................................................................................................. 37Retour de l'oprateur d'affectation et introduction des expressions .......................................................................................................................... 38Les oprateurs arithmtiques .................................................................................................................................................................................... 38Oprateur arithmtique d'addition ............................................................................................................................................................................. 39Oprateur arithmtique de soustraction .................................................................................................................................................................... 39Oprateur arithmtique de multiplication .................................................................................................................................................................. 39Oprateur arithmtique de division ........................................................................................................................................................................... 39Calculs complexes et modulo ................................................................................................................................................................................... 41Un cinquime oprateur arithmtique : le modulo .................................................................................................................................................... 41Les expressions, un peu de pratique ! ...................................................................................................................................................................... 43Le vrai visage de var_dump() ....................................................................................................................................................................................

    45Les oprateurs : partie II ................................................................................................................................................. 45Oprateurs arithmtiques d'affectation et oprateurs d'incrmentation .................................................................................................................... 47Oprateurs de comparaison ...................................................................................................................................................................................... 48Oprateurs logiques ..................................................................................................................................................................................................

    50Les structures de contrle ............................................................................................................................................... 51Structures conditionnelles ......................................................................................................................................................................................... 54valuation ................................................................................................................................................................................................................. 54Autre structure conditionnelle .................................................................................................................................................................................... 57Structure de boucle : partie I ..................................................................................................................................................................................... 58Structure de boucle : partie II ....................................................................................................................................................................................

    61Les fonctions ................................................................................................................................................................... 61Premire approche .................................................................................................................................................................................................... 61Votre premire fonction ............................................................................................................................................................................................. 63Souvenir, souvenir ..................................................................................................................................................................................................... 65Les fonctions, c'est trop fort ! ....................................................................................................................................................................................

    68Les chanes de caractres, un casse-tte ...................................................................................................................... 69Bref rappel et nouvelle structure ............................................................................................................................................................................... 70Diffrence entre guillemets et apostrophes ............................................................................................................................................................... 72Nouvel oprateur : concatnation .............................................................................................................................................................................

    75Le type manquant : les arrays ......................................................................................................................................... 75Faisons connaissance ............................................................................................................................................................................................... 75Qui es-tu vraiment ? .................................................................................................................................................................................................. 77Tu commences me plaire ................................................................................................................................................................................... 79Des fonctions et structures bien pratiques ................................................................................................................................................................ 79Es-tu l, petite valeur ? ............................................................................................................................................................................................. 80Es-tu l, petite cl ? ................................................................................................................................................................................................... 80Quelle est ta cl ? ..................................................................................................................................................................................................... 81Dis-moi tout ........................................................................................................................................................................................................... 81Je veux des arrays ! .................................................................................................................................................................................................. 81Dcoupage ................................................................................................................................................................................................................ 82Collage ...................................................................................................................................................................................................................... 82Derniers mots et structure de contrle ...................................................................................................................................................................... 85Les faux jumeaux ......................................................................................................................................................................................................

    2/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • 87Bons plans ....................................................................................................................................................................... 87Prsenter son code, tout un art ................................................................................................................................................................................. 90La bible du codeur PHP ............................................................................................................................................................................................ 92Le transtypage, c'est pratique ................................................................................................................................................................................... 94Transtypage en boolen ............................................................................................................................................................................................ 95Transtypage en entier ................................................................................................................................................................................................ 95Transtypage en nombre virgule .............................................................................................................................................................................. 95Transtypage en chane de caractres ....................................................................................................................................................................... 96Transtypage en array ................................................................................................................................................................................................

    96Transmettre des variables ............................................................................................................................................... 9735, rue machin .......................................................................................................................................................................................................... 99Gardons la forme ! .....................................................................................................................................................................................................

    100Les zones de texte .................................................................................................................................................................................................. 100Les zones de texte multi-lignes ............................................................................................................................................................................... 100Les cases cocher ................................................................................................................................................................................................. 101Les listes ................................................................................................................................................................................................................. 101Les boutons ............................................................................................................................................................................................................. 101Le champ cach ...................................................................................................................................................................................................... 102Le bouton de validation ........................................................................................................................................................................................... 102Un bouton plus color ! ........................................................................................................................................................................................... 102Aspiration ! .............................................................................................................................................................................................................. 102Never Trust User Input ............................................................................................................................................................................................ 104L'enfer des guillemets magiques ............................................................................................................................................................................. 106Je suis perdu ! .........................................................................................................................................................................................................

    108Premier TP : une calculatrice ........................................................................................................................................ 109Objectifs .................................................................................................................................................................................................................. 109Quelques conseils ................................................................................................................................................................................................... 110Correction ! .............................................................................................................................................................................................................. 112Peut mieux faire ! .....................................................................................................................................................................................................

    115Partie 2 : MySQL, PHP et MySQL ................................................................................................... 116MySQL, qui es-tu ? ........................................................................................................................................................ 116Parle-moi de toi... .................................................................................................................................................................................................... 116On s'organise ? ........................................................................................................................................................................................................ 118La console tout ge ..............................................................................................................................................................................................

    119Crons une base de donnes et une table pas pas .................................................................................................. 120La base avant tout ................................................................................................................................................................................................... 123On passe table ? .................................................................................................................................................................................................. 126Le plat de rsistance ! .............................................................................................................................................................................................

    129Grons nos tables ! ....................................................................................................................................................... 130Une histoire d'entiers ............................................................................................................................................................................................... 133Des types en pagaille .............................................................................................................................................................................................. 136Et la gestion ? .........................................................................................................................................................................................................

    140SELECT, ou comment rcuprer des donnes ............................................................................................................. 141MySQL et les types ................................................................................................................................................................................................. 146Les donnes venant d'une table ............................................................................................................................................................................. 149Tri, ordre et limitation ............................................................................................................................................................................................... 149Mettons de l'ordre .................................................................................................................................................................................................... 153Filtrons tout a ......................................................................................................................................................................................................... 154Vertical Limit ! ..........................................................................................................................................................................................................

    157Supprimer, modifier et insrer des donnes ................................................................................................................. 158DELETE s'exhibe .................................................................................................................................................................................................... 160UPDATE en folie ..................................................................................................................................................................................................... 160INSERT sous les feux de la rampe .........................................................................................................................................................................

    162PHP et MySQL : des allis de poids ............................................................................................................................. 163Retour en arrire ..................................................................................................................................................................................................... 163Dis bonjour MySQL ! ............................................................................................................................................................................................ 167Exploiter les ressources ..........................................................................................................................................................................................

    173Second TP : un visionneur de bases de donnes et de leurs tables ............................................................................ 173Objectifs et cycle de dveloppement ...................................................................................................................................................................... 174L'tape d'algorithmie ............................................................................................................................................................................................... 175Quelques outils ....................................................................................................................................................................................................... 177Correction ................................................................................................................................................................................................................

    180Fonctions, conditions et quelques oprateurs SQL ...................................................................................................... 181Les fonctions, de bons souvenirs ............................................................................................................................................................................ 182Un cas particulier : NULL ........................................................................................................................................................................................ 184Les conditions ......................................................................................................................................................................................................... 186Un peu de repos avec les oprateurs .....................................................................................................................................................................

    188La gestion des dates ..................................................................................................................................................... 189Qui peut me donner la date ? .................................................................................................................................................................................. 189Formatage et oprateurs simples ........................................................................................................................................................................... 192Des fonctions, en veux-tu en voil ! ........................................................................................................................................................................ 192Des fonctions d'extraction ....................................................................................................................................................................................... 194Des fonctions de calcul ........................................................................................................................................................................................... 195La magie des intervalles .........................................................................................................................................................................................

    196Bataillons, vos rangs... fixe ! ...................................................................................................................................... 197Les intrts et les limitations du regroupement ....................................................................................................................................................... 200La clause magique .................................................................................................................................................................................................. 201Les fonctions d'agrgation ...................................................................................................................................................................................... 201Calculer une somme avec SUM(Expr) .................................................................................................................................................................... 202Calculer une moyenne avec AVG(Expr) ..................................................................................................................................................................

    Sommaire 3/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • 202Trouver le maximum et le minimum avec MAX(Expr) et MIN(Expr) ........................................................................................................................ 203La dernire des fonctions : COUNT() ...................................................................................................................................................................... 203ROLLUP et HAVING ............................................................................................................................................................................................... 206L'ordre d'excution des clauses ..............................................................................................................................................................................

    208Troisime TP : un livre d'or ............................................................................................................................................ 209Les spcifications .................................................................................................................................................................................................... 210La bote outils ! ..................................................................................................................................................................................................... 213Correction ................................................................................................................................................................................................................ 218Discussion ...............................................................................................................................................................................................................

    219Les index et sous-requtes ........................................................................................................................................... 220Un index, pourquoi ? ............................................................................................................................................................................................... 220Les diffrents index et leur gestion .......................................................................................................................................................................... 222O placer des index ? ............................................................................................................................................................................................. 223Surveiller les index .................................................................................................................................................................................................. 225Les sous-requtes ...................................................................................................................................................................................................

    227Partie 3 : PHP, MySQL, allons plus loin .......................................................................................... 228Retour sur les fonctions et les tableaux ........................................................................................................................ 228Des fonctions nombre de paramtres variable .................................................................................................................................................... 230Les fonctions, des valeurs ....................................................................................................................................................................................... 234Les tableaux ............................................................................................................................................................................................................ 239Fonctions utiles ....................................................................................................................................................................................................... 241Un pointeur interne .................................................................................................................................................................................................. 242Tableaux et chane de caractres ...........................................................................................................................................................................

    243Au cur des variables .................................................................................................................................................. 244Des noms dormir dehors ...................................................................................................................................................................................... 245Les rfrences ......................................................................................................................................................................................................... 249La porte des variables ........................................................................................................................................................................................... 251Des variables non-dclares ou non-initialises ..................................................................................................................................................... 252Au cur du PHP ..................................................................................................................................................................................................... 256Les tableaux ............................................................................................................................................................................................................ 257La pile ...................................................................................................................................................................................................................... 259Pour terminer ........................................................................................................................................................................................................... 259Dpasser la porte .................................................................................................................................................................................................. 260Des types part ...................................................................................................................................................................................................... 261foreach et les rfrences ......................................................................................................................................................................................... 264Les variables statiques ............................................................................................................................................................................................ 265Ne pas abuser des rfrences ................................................................................................................................................................................

    266Fragmenter son code .................................................................................................................................................... 267Des scripts dans le script ........................................................................................................................................................................................ 268Une boucle infinie .................................................................................................................................................................................................... 269Retourner une valeur ............................................................................................................................................................................................... 269L'include_path ......................................................................................................................................................................................................... 270Des fichiers critiques ............................................................................................................................................................................................... 271Les dangers de l'inclusion ....................................................................................................................................................................................... 271$_GET et les inclusions ........................................................................................................................................................................................... 272Les espaces de noms ............................................................................................................................................................................................. 274Crer des espaces de noms ................................................................................................................................................................................... 276Utiliser les espaces de noms ..................................................................................................................................................................................

    280Les nombres .................................................................................................................................................................. 280Comment crire un nombre ? ................................................................................................................................................................................. 281Des nombres quivalents ........................................................................................................................................................................................ 282Les oprateurs bits bits ........................................................................................................................................................................................ 284Les flags .................................................................................................................................................................................................................. 286Des bases plus pratiques ........................................................................................................................................................................................ 287Fonctions de changement de base .........................................................................................................................................................................

    289PHP et les erreurs ......................................................................................................................................................... 289Les erreurs .............................................................................................................................................................................................................. 291Grer les erreurs ..................................................................................................................................................................................................... 293Affiner la gestion ...................................................................................................................................................................................................... 295debug_backtrace() ..................................................................................................................................................................................................

    299Partie 4 : Annexes ........................................................................................................................... 299Histoire de ce tutoriel .................................................................................................................................................... 299Remerciements ....................................................................................................................................................................................................... 299Historique des mises jour ..................................................................................................................................................................................... 300Suite du tutoriel .......................................................................................................................................................................................................

    Lire aussi 4/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • Amusons-nous avec le PHP

    Par `Haku

    Mise jour : 29/10/2012Difficult : Facile

    Vous avez cinq minutes perdre ?Vous voulez lire ?Vous voulez apprendre le PHP ?Si la rponse au moins une de ces questions est positive, vous tes au bon endroit .Ce tutoriel n'a pas la prtention de faire de vous des pros du PHP, il n'est l que comme base, comme un point de dpart et unsoutien qui vous permettra, je l'espre, d'voluer ensuite par vous-mmes.Mais on ne se limitera pas des choses simples pour autant, et je ne vous mnagerai pas, il faudra s'accrocher pour suivre sansquoi vous serez totalement largus .Un petit dtail qui vaut son pesant d'or : ce tutoriel n'engage que moi ; je vous montrerai ma vision du PHP, elle n'est pasuniverselle mais personnelle. Par consquent, certaines parties de ce tutoriel pourraient s'opposer d'autres tutoriels, articles ouautres textes.

    Il est trs fortement conseill d'avoir des bases en (X)HTML avant de s'engager dans ce tutoriel ; si vous n'en avez pas, je vousconseille de lire le tutoriel de M@teo21 qui en parle.

    Lire aussi 5/301

    www.openclassrooms.com

    http://www.v3.siteduzero.com/membres-294-163032.htmlhttp://www.v3.siteduzero.com/tutoriel-21-107881-amusons-nous-avec-le-php.htmlhttp://creativecommons.org/licenses/by/2.0/fr/http://www.siteduzero.com/tuto-3-6-0-apprenez-a-creer-votre-site-web.htmlhttp://www4.smartadserver.com/call/pubjumpi/24617/166249/13290/M/1389183008691/?http://www4.smartadserver.com/call/pubjumpi/24617/166249/13290/M/1389183008691/?http://fr.openclassrooms.com

  • Partie 1 : Les bases du PHP

    Avant de se lancer dans des scripts de folie, il faut commencer par le dbut : la syntaxe du PHP. Cette partie est indispensable, si vous ne connaissez pas les bases du langage sur le bout des doigts, vous perdrez un temps foupar la suite.

    IntroductionAvant d'entamer une lutte sans merci, il est de bon usage de s'informer et de se prparer. Comme l'a probablement dit un trsgrand homme dont j'ignore le nom et dont je ne peux prouver l'existence, la moiti du combat se joue pendant sa prparation .Au menu du jour, vous trouverez une courte introduction sur PHP et surtout sur le fonctionnement global de celui-ci. Le toutsera agrment de quelques lignes sur ce qu'est la programmation et en ce qui concerne dessert, je vous laisse le dcouvrir.

    PHP, le Web, qu'est-ce donc ?Le PHP, pour PHP : Hypertext Preprocessor est un langage de programmation. Il y en a beaucoup d'autres, comme le C, le Java,l'OCaml, mais on peut dire du PHP que c'est un langage de programmation orient pour le Web, ou encore pour les sitesinternet.Pour la petite histoire, le PHP est n de la main de Rasmus Lerdorf en 1994. Au dpart trs basique, il n'a t rendu public qu'en1995 sous le nom de PHP/FI. Par la suite, le dveloppement passa des mains de Rasmus Lerdorf celles de deux tudiants Zeev Suraski et Andi Gutmans qui fondrent par la suite Zend Technologies pour promouvoir PHP. Si vous dveloppez desapplications avec PHP, vous entendrez sans aucun doute parler de Zend, que ce soit via leur framework , leur environnement dedveloppement ou encore leur serveur, respectivement Zend Framework , Zend Studio et Zend Server .

    Non content d'tre un langage de programmation, PHP est un langage interprt. Quand vous utilisez une application, sousWindows par exemple, vous double-cliquez sur le programme pour qu'il se lance ; le programme s'excute alors, votre ordinateurpeut directement excuter le programme. Pour le PHP, c'est un peu diffrent. En effet, votre ordinateur ne comprend pas le PHP, ilne sait pas l'excuter comme vous pouvez le voir la figure 1.1. Pour que le PHP soit excut, il faut que le fichier qui contient lecode PHP soit interprt par l'interprteur PHP.

    Concrtement, l'interprteur, c'est quoi ? Comme je l'ai dit, votre ordinateur ne peut pas excuter de code PHP comme il excuteune application classique. Pour que votre code prenne vie, l'interprteur qui lui est une application excutable va le lire, letraduire en un dialecte intermdiaire l'Opcode et finalement demander votre ordinateur d'excuter les instructionscorrespondant l'Opcode gnr comme c'est illustr la figure 1.2. Vous entendrez nouveau parler d'Opcode dans la suite dece cours, ne vous arrtez donc pas l-dessus pour le moment, sachez juste que a existe.

    Figure 1.1 Sans interprteur, le code ne peut tre excut

    Figure 1.2 Avec l'interprteur, tout va bien !

    Amusons-nous avec le PHP 6/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • Le Web, comment est-ce que a fonctionne ?

    Avant tout, qu'est-ce que le Web ? Le Web ou World Wide Web de son nom complet , c'est le systme qui vous permet delire ce cours, qui vous permet d'accder du contenu, des pages d'un site, gnralement accessible via Internet. Le Web estsouvent confondu avec Internet, mais Internet ne se rsum dfinitivement pas au Web : bon nombre d'autres systmes,applications et protocoles utilisent Internet. Il est d'ailleurs assez triste que certaines entits des entreprises par exemple sebasent sur cette confusion pour faire des offres plus attractives en nous martelant de slogans similaires Internet illimit alors qu'en fait, ils ne nous offrent qu'un accs au Web, et encore, pas toujours trs illimit Mais je m'gare, a n'est pas lesujet.

    Le Web fonctionne sur un modle dans lequel se trouvent deux intervenants : le client et le serveur. Vous pouvez parfaitementfaire une comparaison avec un restaurant, c'est tout fait pertinent et a donne du bon got. Quand vous tes dans unrestaurant, tranquillement assis, vous choisissez un plat, sifflez le serveur puis lui dites ce que vous dsirez. Une fois la requtedu client reue, le serveur va faire sa popote interne pour finalement dlivrer ce que vous avez command. Il y a donc deuxmessages, d'abord une requte du client vers le serveur, puis une rponse du serveur vers le client. Pour un site Web, c'est pareil.Votre navigateur il joue le rle de client va envoyer une requte un serveur et plus exactement un serveur Web quiy rpondra aprs l'avoir traite. Vous avez une illustration de ce dialogue la figure 1.3.

    Figure 1.3 Le modle client-serveur

    Le serveur Web et l'interprteur PHP, une histoire d'amour ?

    Comme nous l'avons dit prcdemment, pour que le PHP puisse vivre, il a besoin de son interprteur. Un serveur Web n'tant pasun interprteur PHP, ces deux lments doivent entrer en relation un moment donn. Mais non, malheureusement pour nosdeux amis, ce n'est pas vraiment une relation amoureuse qu'ils entretiennent, a serait plutt une relation matre-esclave, l'esclavetant le pauvre interprteur.En fait, le serveur Web peut grer diffrentes requte. Vous pouvez par exemple lui demander une image, une page Web statique c'est--dire ne contenant par exemple que du XHTMLet du CSS , une page Web dynamique contenant du PHP, duPython, etc. , un document PDF et bien d'autres choses encore. Lorsque vous lui demanderez ce qui nous intresse, une pageWeb contenant du PHP, le serveur Web le saura, il dterminera le type de contenu demand partir de la requte. Lorsque leserveur Web recevra une requte faisant intervenir PHP, il appellera l'interprteur en lui donnant le fichier interprter et attendrala rponse de celui-ci qui sera ensuite transmise au client. Tout le monde est ainsi content la figure 1.4 : le client a reu ce qu'ilattendait, le serveur a dlivr le contenu, et l'interprteur a t sauvagement abus par le serveur.

    Figure 1.4 Les interactions entre le client, le serveur et l'interprteur

    Partie 1 : Les bases du PHP 7/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • De ces interactions, nous pouvons dduire quelque chose qui a son importance : le PHP s'excute du ct du serveur, il netravaille que quand le serveur doit rpondre la requte, et jamais quand le serveur a dj rpondu la requte. Si vous dsirezafficher une horloge sur votre site Web, horloge qui se mettrait jour toutes les secondes, serait-ce possible avec PHP ? Non,car l'horloge ne serait visible par le visiteur l'utilisateur du navigateur Web que quand le serveur a dj envoy la rponse,PHP ne pourrait donc plus intervenir. Pour raliser cela, et plus gnralement pour toutes les interactions entre le visiteur et unepage Web dj envoye celui-ci, on passera par un autre langage, le Javascript.

    Aprs ce petit tour d'horizon de ce qu'est le PHP, du fonctionnement du Web et de l'interaction entre le serveur Web etl'interprteur PHP, passons ce dont nous aurons besoin pour travailler. Que chacun d'entre vous possde un serveur ddi enantarctique est un peu utopique, nous allons donc installer le serveur Web et PHP sur votre ordinateur. Oui, a fonctionne, nevous en faites pas.

    Comme serveur Web, nous allons choisir le plus rpandu et connu actuellement : Apache HTTP Server ou encore ApacheHTTPD. Ce logiciel, ce serveur Web est dit par l'organisation but non-lucratif ponyme, l'Apache Software Foundation.Cette organisation est galement connue pour d'autres projets ainsi que pour leur licence, la licence Apache qui est libre et open-source. Mais avant de procder l'installation de ces logiciels, prenons le temps de faire connaissance avec la programmation.

    La programmation, c'est quoi ?La programmation, tantt qualifie de mystique, tantt qualifie d'incroyablement complique, qu'est-ce donc vraiment ? Pour mapart, la programmation, c'est le quotidien. Non pas parce que j'ai le nez coll mon PC huit heures par jour, mais bien parce quede la programmation, vous en faites au quotidien. Prenons un exemple qui devrait parler tout le monde : la conduite d'unevoiture. Avec une voiture, vous pouvez effectuer quelques oprations de bases, notamment :

    freiner,avanceret tourner

    Il y a d'autres oprations, mais celles-ci suffiront pour l'exemple. Bien heureux dans votre voiture, vous arrivez au boulot, l'coleou ailleurs si vous le dsirez, dans tous les cas l'heure de se garer est arrive. Par chance, vous trouvez une petite place entredeux voitures comme illustr la figure 1.5.

    Figure 1.5 Une jolie place o se garer

    Vous voil face un problme, comment rentrer lgamment dans cet emplacement ? Rsoudre un problme, y apporter unesolution, c'est de la programmation. Et rsoudre ce genre de problme, vous le faites tous les jours consciemment ou pas. C'estpour cela que j'aime dire que la programmation, c'est notre quotidien tous. Pour rsoudre ce problme, qu'avons-nous notredisposition ? vrai dire, pas grand chose, mais c'est amplement suffisant. Nous disposons en effet de quelques oprations debases nous permettant de nous dplacer et nous possdons galement quelques informations sur le problme, la principale tantque nous avons effectivement la place pour nous garer. Le tout est donc de parvenir utiliser, manipuler nos quelquesoprations pour rsoudre le problme. Le but n'tant pas de faire de vous des as du volant, voici les tapes de la solutionreprsente la figure 1.6 :

    1. nous avanons jusqu' la hauteur de la voiture puis freinons ;2. nous tournons les roues vers la gauche ;3. nous avanons l'envers, c'est--dire que nous reculons ;4. lorsque nous formons un bel angle, nous mettons les roues vers la droite ;

    Partie 1 : Les bases du PHP 8/301

    www.openclassrooms.com

    http://www.siteduzero.com/tutoriel-3-309961-dynamisez-vos-sites-web-avec-javascript.htmlhttp://fr.openclassrooms.com

  • 5. et enfin nous freinons au bon moment pour terminer la manuvre.

    Figure 1.6 La voiture gare !

    Ce que nous avons fait ici, c'est dcrire, noncer, exprimer la solution notre problme, et l nous sommes au cur de ce qu'estla programmation : notre voiture nous offre certains concepts tels que l'acclration de la voiture ou son changement de directionet nous permet d'utiliser ces concepts via des oprations lmentaires telles que avancer ou tourner, ce qui nous permetd'exprimer une solution un problme. Ces quelques oprations n'ont peut tre l'air de rien, mais elles suffisent exprimer ungrand nombre de manuvres que vous pourriez tre amens raliser avec une voiture. Une fois la solution exprime, il ne resteplus qu' la mettre en application en utilisant les pdales, volants et autres outils propre votre voiture.

    Un langage informatique, comme le PHP par exemple, fait exactement la mme chose que cette voiture : il nous offre certainsconcepts nous permettant d'exprimer des solutions ainsi que des outils pour traduire ces solutions en code que l'interprteurpourra faire excuter. Il faut donc bien comprendre que la programmation n'est pas une seule et unique chose mais bien deuxtapes distinctes : la rsolution du problme et l'application de la solution. La rsolution du problme, c'est la conception duprogramme, tandis que l'application de la solution, c'est son implmentation, la traduction en code donc.

    Nous reviendrons plus tard sur la conception et l'implmentation, l'important c'est que vous reteniez que la programmation sedroule en deux tapes.

    Pour apprendre, quelle attitude adopter ?Si vous dcidez de poursuivre ce cours et j'espre que vous serez nombreux dans ce cas , quelle attitude adopter ? Commemon introduction l'a sous-entendu, je ne suis pas ici pour faire du fast-food version programmation. Mon but, ce n'est pas defaire de vous des roxxors pgm de la prog' en 24 heures chrono mais bien d'apprendre, de comprendre. Vous devrez donc parfoistre un peu patient avant de voir le fruit de vos efforts.En ce qui concerne mes explications, je ne vais pas vous prendre pour des abrutis. Bien que nous dbutions, nous ne sommespas des bbs, nous avons la capacit de rflchir et de nous dbrouiller par nous-mme. C'est pour cela qu'il m'arrivera souventde vous lancer un RTFM Read The Fucking Manual ou la version plus dlicate : cherchez par vous-mme. Je ne veuxpas faire de vous des assists. Je vous aiderai, je vous guiderai, mais je ne vous donnerai pas tout tout cuit au fond du bec. Vousserez donc sans le moindre doute contraint un moment ou un autre de chercher par vous-mme. Cette capacit, cettedbrouillardise est une qualit trs importante, je veux donc que vous l'utilisiez, et pour cela je ne dois videmment pas faire devous des professionnels de l'assistanat.

    Bien sr, il arrivera parfois que mme en cherchant un certain temps, vous ne trouviez pas de solution. Dans ce cas, vous serezamens demander de l'aide, sur les forums du site du zro par exemple. Si vous le faites, ou plutt, quand vous le ferez,n'oubliez pas certaines choses.

    Le titre du sujet

    Imaginons que je rencontre un problme et que ma recherche ne m'a rien apport. Je me rends dans un forum traitant du PHP et jecre un nouveau sujet. La premire chose laquelle vous devez faire attention, c'est le titre. Il a pour but de dcrire votre sujet ; ainsi, les personnesvisitant le forum sauront si elles sont susceptibles de vous aider sans avoir lire le message.

    Il est donc impratif de choisir un titre qui dcrit votre sujet. Si vous mettez quelque chose comme Gros problme , Besoind'aide urgente , etc., on ne sait absolument pas quel est l'objet du sujet.Petit dtail plutt amusant, certaines personnes mettent un titre du style Problme avec PHP . On ne peut pas dire que a ne

    Partie 1 : Les bases du PHP 9/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • dcrit pas le sujet, mais ne trouvez-vous pas logique que dans un forum consacr au PHP on parle de PHP ? C'est juste pour dire qu'il est inutile de spcifier que vous parlez de PHP.

    On a vu ce qu'il ne fallait pas faire, mais comment choisir un bon titre, finalement ?Eh bien il n'y a pas de mthode magique, il faut rflchir. Si j'ai un problme en voulant afficher un texte, qu'est-ce que je pourraismettre comme titre ?Si je mets Problme PHP , a ne sert rien. Par contre, un titre comme Problme pour afficher un texte est dj plusexplicite, non ?Vous devez essayer de rsumer l'objet du sujet en quelques mots. Si vous faites cela, vous aurez souvent un bon titre. Si vous neparvenez pas rsumer votre sujet, mettez simplement les mots-cls qui vous apparaissent comme tant les plus pertinents.

    Le contenu du sujet

    Aprs le titre vient le contenu du sujet. Le titre est le rsum, le contenu est le corps du sujet. La premire chose qu'on doit voir dans votre sujet, c'est une formule de politesse. Eh oui : moi, quand je ne vois pas de Bonjour ou autre, je n'aime pas a et je ne rponds pas au sujet. La politesse tient en quelques mots, quelques secondes devotre temps, mais beaucoup de gens la ngligent. Si je viens chez vous demander du sucre de cette faon : Donne-moi dusucre , vous allez m'en donner ? Je pense que non.Maintenant, si je dis : Bonjour, est-ce que vous pourriez me prter un peu de sucre ? Merci beaucoup , j'ai dj plus de chancede pouvoir finir mon gteau. C'est la mme chose quand vous faites un sujet dans un forum. Un brin de politesse vous assureraun accueil plus chaleureux de la part de ceux qui vous aideront.

    Le contenu du sujet vient ensuite. Il est indispensable de parler franais. Vous devez faire des phrases qui ont du sens, vousdevez faire attention votre orthographe (pas de SMS, pas de kikoulol attitude) et vous devez vous exprimer clairement.Parfois, les gens rdigent tellement mal leur sujet qu'on ne comprend absolument rien la demande. Et dans ce genre de cas, c'estplutt difficile d'aider.

    Si vous devez mettre du code PHP ou autre dans votre sujet, faites-y galement attention ! En effet, certains forums fournissentdes outils pour rendre la lecture de celui-ci plus agrable et il est plus ais d'apporter de l'aide quand le code est plus lisible.Deuxime chose importante : ne mettez pas un pt de codeIl arrive que des gens aient un petit problme, mais la flemme de chercher un peu d'o a vient : ils nous mettent des centaines delignes de code. Vous pensez qu'on va les lire ? Si c'est le cas, vous rvez. Les visiteurs du forum ne vont pas passer deux heures essayer de trouver d'o vient l'erreur et cinq minutes vous rpondre.C'est pourquoi vous devez extraire les parties de votre code qui sont responsables de l'erreur. Pour le moment, vous ne savez pasle faire, mais le PHP est bien conu et il est relativement facile de trouver d'o viennent les erreurs, nous verrons a plus tard.

    Le respect

    Dernire chose qui me tient cur : le respect envers ceux qui vous aident. Ces personnes utilisent leur temps libre pour vousaider, alors respectez-les. On ne demande pas de faire des courbettes, mais un simple Merci quand le problme est rsolu faittellement plaisir. Aussi, n'attendez pas qu'on vous serve la solution sur un plateau d'argent. Dans l'idal, ceux qui vous aident neferont que pointer la cause de l'erreur, ils vous donneront des pistes pour la corriger, mais c'est vous de vous corriger. Nerevenez pas cinq minutes aprs parce que vous ne comprenez pas ce qu'ils vous disent. Cherchez par vous-mmes comprendrece qu'ils vous signalent, sinon vous ne serez jamais capables de vous en sortir seuls.Maintenant que vous savez qu'un serveur Web est ncessaire pour obtenir une page Web, que le PHP ncessite d'tre interprtpar l'interprteur PHP et que vous avez une ide des interactions entre le serveur Web et l'interprteur PHP, vous tes presquepar. Empressez-vous de lire le prochain chapitre pour terminer votre prformation, vous serez alors fin prt pour attaquerl'apprentissage du PHP proprement parler !

    Partie 1 : Les bases du PHP 10/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • La bote outils du programmeurDans ce chapitre, nous allons parler de l'installation des outils dont vous aurez besoin pour faire du PHP : nous allons quipervotre machine pour en faire un serveur Web capable de traiter du PHP. Et pour cela nous avons besoin d'installer certains outils,d'o ce chapitre. Vous connaissez dj deux de ces outils : PHP videmment et le serveur Web Apache. Il manque toutefois unoutil pour avoir une parfaite panoplie : l'diteur de code.

    L'invit surprise : l'diteur de codeAvant de se lancer dans l'installation d'Apache et PHP, prsentons l'outil surprise : un bon diteur de code. Bon, soyons clair, cechoix n'a pas grande importance actuellement. Puisque nous dbutons, nous ne ferons pas vraiment de projet , tout ce quenous ferons se limiteront un ou deux fichier PHP. Sortir un diteur lourd est donc pour le moment inutile. C'est pour celaqu'actuellement, au niveau de l'diteur de code, le choix importe peu. La seule fonction vraiment indispensable notre niveau,c'est la coloration syntaxique.

    C'est outil, cette coloration, est un outil certes trs basique mais combien utile, c'est presque l'incarnation de Chuck Norris.Petit exemple :

    Code : PHP

  • Figure 2.1 Notepad++ : un diteur de code idal pour dbuter

    Sous GNU/Linux

    Si vous tes fru de la console, Vim et Emacs vous proposeront coloration syntaxique et un nombre incalculables d'outils. Cesoutils sont tellement puissant qu'il est difficile de les apprhender compltement, mais s'il s 'agit juste d'avoir un peu de colorationsyntaxique, a n'est pas trs complexe.Si vous prfrez les interfaces graphiques, j'ai entendu beaucoup de bien de GEdit et de Kate que vous pouvez admirer lafigure 2.2 , respectivement pour les environnements de bureaux Gnome et KDE.

    Figure 2.2 Kate en action avec du PHP

    Sous Mac OSX et les autres

    Partie 1 : Les bases du PHP 12/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • N'ayant pas de Mac et n'ayant jamais vraiment touch d'autres systmes que Windows et GNU/Linux, je suis malheureusementincapable de vous aider pour ces systme. Si vous avez des bons petits diteurs de code facile prendre en main pour cessystmes, merci de m'en faire part, je les intgrerai aussitt !

    propos de l'encodage

    Avant d'aller plus loin, assurez-vous que votre diteur de texte utilise par dfaut l'encodage UTF-8 sans BOM. Ce rglage setrouve souvent dans les prfrences de votre diteur de code. Sous notepad++ par exemple, vous devez vous rendre dansl'onglet Paramtrage , cliquer sur Prfrences et vous rendre dans l'onglet Nouveau document/dossier de la fentre quivient de s'ouvrir. Vous pouvez alors choisir UTF-8 sans BOM comme encodage. Nous verrons par la suite pourquoi cela estimportant. Si jamais vous ne trouvez pas UTF-8 sans BOM, mettez simplement de l'UTF-8.

    Maintenant que nous sommes quips pour l'dition de codes, passons l'installation d'Apache et PHP !Apache et PHP sous Windows

    Vous devez avoir les droits d'administration sur votre machine pour procder l'installation.

    Rendez vous sur le site de Apache HTTPD, vous y trouverez un lien from a mirror dans le menu de gauche prs de download . Actuellement, la page sur laquelle vous arrivez propose 4 releases :

    2.3.8-alpha,2.2.16,2.0.63 et1.3.42.

    Cela peut bien videmment voluer, prenez simplement la version la plus rcente qui ne soit ni en alpha, ni en bta. Dans moncas, je prendrai donc la release 2.2.16. Vous avez alors le choix entre diverses possibilit telles que Unix Source, Win32 Sourceou encore Win32 Binary. Puisque vous tes sous Windows, prenez un des Win32 Binary, le Win32 Binary including OpenSSL.Une fois le fichier tlcharg, excutez-le.

    Au dbut de l'installation, il vous sera demand d'accepter la licence, faites donc cela. Une fois arriv l'cran de slection dudomaines et de certaines autre informations, remplissez comme indiqu dans la figure 2.3.

    Figure 2.3 Informations sur le domaine, le nom du serveur et autres

    Par la suite, vous aurez le choix entre deux types d'installation : Typical et Custom. Comme nous ne sommes pas l pourapprendre configurer un serveur Web aux petits oignons, nous choisirons l'option Typical comme indiqu la figure 2.4.

    Partie 1 : Les bases du PHP 13/301

    www.openclassrooms.com

    http://httpd.apache.org/http://fr.openclassrooms.com

  • Figure 2.4 Choix du type d'installation

    L'installation proprement parler va maintenant commencer, cela ne devrait pas prendre trs longtemps, quelques minutes toutau plus. Une fois celle-ci termine, l'assistant d'installation prendra cong, il vous faudra alors regarder dans la barre des tchesde Windows. Vous devriez une petite icne toute petite toute mignonne comme indiqu la figure 2.5.

    Figure 2.5 L'icne d'Apache dans la barre des tches

    Ouvrez maintenant votre navigateur favori et rendez vous l'adresse http://localhost, vous devriez obtenir quelque chose deproche de la figure 2.6. Le texte pourrait ventuellement varier, l'important c'est que vous n'ayez pas une erreur disant que l'hten'existe pas, qu'il est injoignable ou je ne sais quoi.

    Partie 1 : Les bases du PHP 14/301

    www.openclassrooms.com

    http://localhosthttp://fr.openclassrooms.com

  • Figure 2.6 Apache fonctionne !

    Qu'est-ce que localhost ? Souvenez-vous qu'Apache est un serveur Web. Pour le contacter, nous devons donc passer par le Web et plusexactement par une adresse Web, une url. De la mme faon que l'url http://siteduzero.com vous met en contact avec leserveur Web du site du zro, http://localhost nous met en contact avec le serveur Web qui est install sur votremachine.

    Si par malheur cela ne fonctionne pas, pas de panique, nous allons tenter d'y remdier. Pour se faire, il va falloir se rendre dans legestionnaire de services de Windows. Appuyez simultanment sur les touches Windows et R, cela provoquera l'ouverture de lafentre de la figure 2.7. Entrez la valeur services.msc et validez, vous dcouvrirez alors le gestionnaire de services illustrsdans la figure 2.8.

    Figure 2.7 Outil permettant d'excuter un programme

    Partie 1 : Les bases du PHP 15/301

    www.openclassrooms.com

    http://siteduzero.comhttp://localhosthttp://fr.openclassrooms.com

  • Figure 2.8 le gestionnaire de services de Windows

    Dans la liste de services, vous devriez trouver le service d'Apache HTTPD. S'il ne s'y trouve pas, c'est que l'installation ne s'estpas droule correctement ou que vous n'avez pas install Apache HTTPD en tant que services. Dans les deux cas, tentez derinstaller le serveur. Si vous le trouvez et qu'il n'est pas dans l'tat Dmarr , faites un clic droit dessus et vous pourrez ledmarrer.

    Au tour de PHP

    PHP n'est pas plus compliqu installer qu'Apache, commencez donc par vous rendre sur la page de tlchargement de PHPpour Windows. Vous trouverez diverses versions de PHP, prenez la plus rcente. Pour ma part, ce sera donc PHP 5.3.3. Parmi les 4solutions propose pour votre version de PHP, cherchez aprs la VC9 x86 Thread Safe et tlchargez l' installer . Une foisce tlchargement termin, excuter le fichier fraichement acquis. Tout comme pour Apache, vous serez invit accepter lalicence, faites donc cela. Par la suite vous arrivez l'cran illustr par la figure 2.9, cochez la case Apache 2.2.x Module , apermettra votre serveur Web d'utiliser l'interprteur PHP.

    Partie 1 : Les bases du PHP 16/301

    www.openclassrooms.com

    http://windows.php.net/download/http://fr.openclassrooms.com

  • Figure 2.9 Installons PHP avec Apache

    Poursuivez ensuite l'installation, vous serez rapidement un cran vous invitant choisir le chemin d'accs la configurationd'Apache Select Apache Configuration Directory. Cliquez sur le bouton browse pour choisir ledit dossier, par dfaut il setrouve dans C:\Program Files\Apache Software Foundation\Apache(version)\ comme indiqu la figure 2.10. Il ne vous resteplus qu' slectionner le dossier conf et valider.

    Figure 2.10 Trouver le dossier de configuration d'Apache

    Alors que les crans continuent dfiler, arrtez vous celui intitul Choose items to install . Dans cet cran, vous pouvezvoir quels composants PHP installera. Droulez le menu extension et activez Multibyte String et PostgreSQL si ce n'est dj

    Partie 1 : Les bases du PHP 17/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • fait, comme illustr la figure 2.11. Drouler ensuite le menu PDO et activez galement le PostgreSQL qui s'y trouve.

    Figure 2.11 Activons des extensions de PHP

    Vous n'avez plus qu' valider tout a, l'installation sera alors faites. Flicitation, tout devrait tre install. Pour vrifier cela, rendez-vous dans le dossier d'installation d'Apache que vous avez choisi prcdemment et crer un fichiertest.php dans le dossier htdocs. N'oubliez pas d'utiliser votre diteur de code ador, placez-y le contenu suivant et sauvegardez :

    Code : PHP

  • Figure 2.12 PHP fonctionne

    Museler Apache

    Il ne reste plus qu'un dtail rgler pour que votre installation soit prte servir. Actuellement, vous le constaterez si vousredmarrer votre PC ou changer d'utilisateur, Apache dmarre automatiquement. Je suppose que comme moi, vous avez une vie,que donc vous ne passez pas tout votre temps faire du PHP, il est donc inutile que Apache soit tout le temps lanc. Pour vitercela, il y a deux choses faire.

    Pour commencer, retourner dans le gestionnaire de services de Windows comme expliqu prcdemment et trouvez-y la ligned'Apache. Faites un clic droit dessus et cliquez sur Proprit , la fentre de la figure 2.13 s'ouvrira alors. De cette fentre, vouspourrez changer le mode de dmarrage d'Apache de Automatique Manuel .

    Partie 1 : Les bases du PHP 19/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • Figure 2.13 Changer le mode dmarrage d'Apache.

    Grce cela, Apache ne dmarrera plus de lui-mme, vous devrez le dmarrer vous-mme. Toutefois, vous remarquerez quel'icne dans la barre des tches persiste. Ce n'est pas mystrieux, c'est simplement que cette icne ne reprsente pas le se serveuren lui-mme mais une application qui permet d'arrter, de dmarrer et de redmarrer le serveur. Cette application nous tant inutile,nous allons galement empcher son excution automatique.

    Pour se faire, appuyez nouveau simultanment sur les touches Windows et R, mais cette fois saisissez la valeur msconfig .Une fois cela valid, une nouvelle fentre ilustre par la figure 2.14 s'ouvrira, cliquez sur l'onglet Dmarrage . Vous trouvezdans la liste juste en dessous une ligne faisant rfrence Apache, dcochez la, cliquez sur Appliquer et finalement Ok .Windows vous invitera redmarrer le systme, il n'est pas ncessaire de le faire.

    Partie 1 : Les bases du PHP 20/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • Figure 2.14 Empcher le dmarrage de l'application Monitor Apache Servers

    Apache est prsent dfinitivement calm, il ne viendra plus vous embter si vous ne le sollicitez pas. Pour dmarrer Apache,deux solutions s'offre vous. Vous connaissez la premire, il suffit de passer par le gestionnaire de services. La seconde faitintervenir l'invite de commande, il se trouve dans la liste des programmes installs. Dans cette invite, il vous suffira d'entrer lacommande net start apache2.2 pour dmarrer Apache, comme illustr dans la figure 2.15. Il se peut que vous deviezentrer autre chose que apache2.2, vous trouverez le nom exact du service dans le gestionnaire de services. Pour arrter le service,rien de bien compliqu, il suffira d'utiliser la commande net stop au lieu de net start .

    Figure 2.15 Dmarrage d'Apache via l'invite de commande

    Apache et PHP sous GNU/Linux, Mac OS X et les autresVous devez avoir les droits d'administration sur votre machine pour procder l'installation.

    Installation sous GNU/Linux

    Pour l'exemple, j'ai choisi une distribution assez en vogue en ce moment : Ubuntu. La procdure d'installation ne devrait que peuvoire pas du tout varier en fonction de votre distribution, utilisez votre gestionnaire de paquet favori et tout devrait bien sepasser. Si malgr tout vous prouvez des difficults, rfrez vous la documentation de votre distribution ou encore desforums d'entraide. Vous pouvez galement me transmettre certaines trangets ou certains problmes relatifs une distributionen particulier, je les signalerai dans ce cours.

    Tout comme sous Windows, la premire chose faire est d'installer le serveur Apache. Rien de bien sorcier, le paquet apache2 estl pour cela :

    Code : Bash

    Partie 1 : Les bases du PHP 21/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • $ sudo apt-get install apache2

    Nous allons de suite vrifier que Apache est install, dmarr et fonctionnel :Code : Bash

    $ service apache2 status # devrait afficher Apache is running (pid xyz)# si ce n'est pas le cas, faites un sudo service apache2 start pourdmarrer Apache$ wget http://locahost$ more index.html # devrait afficher it works

    Qu'est-ce que localhost ? Souvenez-vous qu'Apache est un serveur Web. Pour le contacter, nous devons donc passer par le Web et plusexactement par une adresse Web, une url. De la mme faon que l'url http://siteduzero.com vous met en contact avec leserveur Web du site du zro, http://localhost nous met en contact avec le serveur Web qui est install sur votremachine.

    Avant d'installer PHP, il va falloir vrifier la version de celui-ci. En effet, la version ncessaire, la 5.3, est relativement rcente, ilest donc possible que pour certaines distributions, le paquet fourni ne soit pas adapt. Vrifions cela :

    Code : Bash

    $ sudo apt-cache show php5# La partie version devrait donner la valeur 5.3 ou suprieure

    Si la version de PHP est correcte, parfait, installez le paquet. Si malheureusement a n'est pas le cas, deux solutions s'ouvrent vous. La premire est de chercher si un gentil contributeur n'a pas cr un dpt ou un paquet spcifique PHP 5.3 ou suprieur,auquel cas il vous suffira de changer de dpt ou de tlcharger directement le paquet. Si vous ne trouvez aucun dpt oupaquet adquat, la seconde solution sera de compiler PHP.

    Commenons par rcuprer le code source, vous le trouverez cette adresse. Prenez la dernire version, le code source est fournicompress avec Bzip2 ou Gzip, prenez ce que vous prfrez, j'ai choisi le Gzip. Reste ensuite dplacer l'archivre, l'extraire,configurer l'installation et finalement procder l'installation.

    Code : Bash

    $ sudo cp /home/cedric/Tlchargements/php-5.3.3.tar.gz /usr/local/src$ cd /usr/local/src$ sudo tar -xvzf php-5.3.3.tar.gz$ cd php-5.3.3.tar.gz$ ./configure --with-apxs2=/usr/bin/apxs2 --with-gettext --enable-mbstring --with-pdo-pgsql --with-pgsql$ sudo make$ sudo make install

    Si lors de l'installation vous rencontrez une erreur cause d'apxs2 ou de la libxml2, il vous faudra sans doute installer deuxpaquets supplmentaires :

    Code : Bash

    # le paquet installer si vous avez un problme avec apxs2$ sudo apt-get install apache2-threaded-dev# le paquet installer si vous avez un problme avec libxml2$ sudo apt-get install libxml2-dev

    Si malgr tout vous avez un problme avec apxs2, peut-tre que le chemin d'accs est incorrect. Dans ce cas remplacezsimplement

    Partie 1 : Les bases du PHP 22/301

    www.openclassrooms.com

    http://siteduzero.comhttp://localhosthttp://www.php.net/downloads.phphttp://fr.openclassrooms.com

  • /usr/bin/apxs2 par le chemin d'accs vers apxs2, vous devriez le trouver aisment.

    Une fois PHP install, reste tester cela. Mais avant, n'oubliez pas de relancer le serveur Apache via un $ sudo serviceapache2 restart . Pour procder au test, nous allons crer un fichier PHP nomm test.php. Pour ma part, je dois crer cefichier dans le dossier /var/www. Si a n'est pas le cas pour vous, chercher le fichier httpd.conf qui se trouve dans le dossierconf du dossier d'installation d'Apache, vous y trouverez une ligne dfinissant le DocumentRoot , c'est le dossier enquestion. Dans ce fichier, placez le contenu suivant :

    Code : PHP

  • Il est noter que pour la dernire cl, la valeur dpend de votre position gographique. Vous pouvez trouver la valeur la plusadquate sur cette page de la documentation PHP. Moi par exemple, j'habite en Europe, je clique donc sur le lien correspondantet la ville la plus proche de mon lieu de rsidence est Bruxelles, je prends donc la valeur Europe/Brussels, le tout entourd'apostrophe.

    Je vous expliquerai bien videmment par la suite pourquoi nous avons fait cela.

    Configuration d'Apache

    Tout comme PHP, Apache est configur au moyen d'un fichier, le httpd.conf. Ce fichier se trouve dans le dossier conf du dossierd'installation d'Apache. La syntaxe n'est pas la mme que celle du php.ini, mais elle n'est pas plus complique. Ouvrez cehttpd.conf et cherchez la ligne dfinissant le DocumentRoot. Ce DocumentRoot est l'emplacement dans lequel Apache irachercher les fichiers qui lui sont demands. Prenons un exemple : si je me rends l'adresse http://localhost/test.php, je contactele serveur Web l'adresse http://localhost et lui demande le fichier test.php. Ce fichier, o Apache va-t-il aller le chercher ? Dansle DocumentRoot. Vous pouvez testez la chose : supprimer ou renommer le fichier test.php que vous avez cr aprs l'installationd'Apache et vous constaterez que l'url http://localhost/test.php vous mne une erreur.

    En fonction de votre systme d'exploitation typiquement Windows , il se peut que le DocumentRoot soit dans un dossierqui ncessite des privilges d'administrateur, il vous faudrait donc toujours tre administrateur ds que vous voudriez crer unnouveau fichier ou en modifier un. Pour viter cela, nous allons modifier ce DocumentRoot. Sur la machine o je me trouve, leDocumentRoot est C:\Program Files\Apache Software Foundation\Apache2.2\htdocs, je vais changer pour C:\www parexemple, a n'a pas vraiment d'importance du moment que c'est un dossier dans lequel vous pouvez crer et modifier des fichiers.

    Reste une dernire modification effectuer, chercher dans le fichier la ligne . Pensez videmment remplacer DocumentRoot par l'ancienne valeur, dans mon cas je dois donc chercher . Dans cette ligne, nous allons modifier le chemin d'accs puisque nous avons changle DocumentRoot.

    En rsum, au dbut nous avions par exemple ceci :Code : Apache

    DocumentRoot "C:\Program Files\Apache SoftwareFoundation\Apache2.2\htdocs"

    Et au final nous avons par exemple cela :Code : Apache

    DocumentRoot "C:\www"

    Lorsque vous modifiez le fichier de configuration d'Apache, il est ncessaire que celui-ci le recharge pour que lesmodifications soient prises en compte. Pensez donc procder ce rechargement si votre systme vous le permet ou dfaut redmarrer compltement Apache.

    Bon eh bien voil, vous avez install votre propre serveur Web ainsi que PHP, sans oublier un diteur de code. Vous avez tout cequ'il faut, vous tes fin prt pour attaquer l'apprentissage du PHP.

    Un jour peut-tre quelqu'un vous dira que vous tes fou d'avoir install ces logiciels de cette faon. En effet, il faut savoir quedes packs tout prt existent, packs qui installent PHP, Apache et d'autres logiciels tous seuls comme des grands. Si j'ai choisi dene pas utiliser ces packs, c'est d'abord parce qu'aucun ne contenait tous les logiciels dont j'avais besoin dans la bonne version etensuite parce que je trouve qu'il est bon d'avoir une petite ide de comment on installe mme de faon assez basique cesdiffrents logiciels.

    Partie 1 : Les bases du PHP 24/301

    www.openclassrooms.com

    http://fr.php.net/manual/fr/timezones.phphttp://localhost/test.phphttp://localhosthttp://localhost/test.phphttp://fr.openclassrooms.com

  • Premiers pasAprs ces longues minutes passes l'installation, au testage et la configuration des diffrents logiciels, je vous sens dsireuxd'entamer le rel apprentissage. C'est pour cela que sans plus attendre, je vous propose de voir ce que sont les balises PHP et lescommentaires et quelle est leur utilit.

    Les balises PHPPrenons un fichier PHP, toute mignon, tout petit, tout doux, celui du chapitre prcdent :

    Code : PHP - Exemple 1

    Comme nous l'avons vu, PHP est un langage interprt, l'interprteur va donc lire ce fichier et le traiter. Petit problme : un fichierPHP peut contenir du PHP, mais peut galement contenir d'autres choses, du texte, du HTML, du CSS, du Javascript et je ne saisquoi d'autre. Ceci est un contenu de fichier PHP parfaitement valide :

    Code : PHP - Exemple 3

    Bonjour, robert.

    Au revoir, Paul le pcheur.

    Bien videmment, l'interprteur PHP ne comprends pas ces textes, ils ne signifient rien pour lui, puisque ce n'est pas une syntaxePHP licite.

    L'on dit d'un code, d'une syntaxe, qu'elle est licite si elle respecte la grammaire et la syntaxe du langage.

    Pire encore, si l'interprteur essayait de faire quelque chose de ce texte, il vous enverrait une jolie erreur, votre code PHP neservirait donc rien. C'est pour cela que les balises PHP sont si importantes, elles vont indiquer l'interprteur ce qui est ducode PHP et qu'il doit donc traiter et ce qui n'en est pas. Si vous voulez signaler le dbut d'un code PHP, vous devrez donc le luiindiquer via la balise ouvrante , et et .

    Partie 1 : Les bases du PHP 25/301

    www.openclassrooms.com

    http://fr.openclassrooms.com

  • Ces paires de balises ont t ou sont encore malheureusement licite. Mais terme, elles ne le seront plus, vous ne devez donc enaucun cas les utiliser. Ce sont de vieilles pratiques sujettes disparation qui peuvent dj tre inutilisable en fonction de laconfiguration de PHP.

    Parmi les exemples ci-dessus, vous connaissez maintenant le rle de chaque lment mis part celui-ci : phpinfo();. Nous verronsce que c'est par la suite, promis.

    Pour le plaisir, je vous propose un mini TP : crivez moi un contenu PHP licite avec des lments qui ne sont pas du PHP.Secret (cliquez pour afficher)

    Code : PHP

    Je parie que vous vous tes cass la tte chercher un truc complexe

    alors que c'est vraiment tout bte. :)

  • faits pour traduire votre script en franais !Ils sont l pour vous aider vous retrouver dans votre code. Si vous commencez mettre un commentaire pour dire que vousfaites une addition, a ne sert plus rien. Vous devez donc faire attention ne pas en abuser, utilisez-les avec parcimonie, quandvous devez signaler quelque chose de plus gnral. Si par exemple vous utilisez la mthode de Mr. Patate, il est trs utile demettre un petit commentaire disant que le code qui suit est une implmentation de la mthode de Mr. Patate

    Reprenons le code prcdent et modifions-le nouveau :Code : PHP - Exemple 5

  • /*phpinfo();*/phpinfo();*/

    Si vous testez ce code, vous allez voir quelque chose de nouveau et d'inattendu : une erreur de PHP !Si vous avez bien compris que le commentaire commence au premier /* et se termine au premier */, vous devriez pourvoirm'expliquer pourquoi.Quand l'interprteur PHP interprte votre code, il trouve un /* et se dit : Un commentaire dbute, j'ignore tout jusqu' ce que jetrouve un */ ; il continue de lire votre code et rencontre ce fameux */. Juste aprs cela, il lit phpinfo();, qui est une instructionvalide : pas de problme, la lecture continue. Maintenant, il arrive la dernire ligne, celle qui contient le second */. Vous savezque a indique la fin d'un commentaire sur plusieurs lignes, seulement, l'interprteur lui, n'a pas trouv d'ouverture pour cecommentaire multi-lignes. Il se retrouve donc en face d'un texte qu'il doit interprter, seulement */ ne veut rien dire pour lui.L'interprteur renvoie donc une erreur stipulant qu'il ne comprend pas votre script et le termine.

    Si vous utilisez un diteur de texte avec coloration syntaxique, comme je vous l'ai conseill dans le chapitre prcdent, vous nedevriez jamais faire d'erreur de commentaires. En effet, ces derniers se dmarquent du reste du code, par une couleur ou par unepolice d'criture diffrente (comme vous l'avez constat dans les codes que je vous ai donns).

    Vous voil incollables sur les commentaires en PHP, alors faites m'en des trs utiles et pertinents !Ce trop cours chapitre se termine malheureusement dj mais ne ngligez po