php

PHP: Hypertext Preprocessor18, plus connu sous son sigle PHP (sigle auto-référentiel), est un langage de programmation libre19, principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP18, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale. PHP est un langage impératif orienté objet. PHP a permis de créer un grand nombre de sites web célèbres, comme Facebook et Wikipédia20. Il est considéré comme une des bases de la création de sites web dits dynamiques mais également des applications web.

Les chapitres de la formation php



                    

Ce qui fait le succès du Web aujourd'hui, c'est à la fois sa simplicité et sa facilité d'accès. Un internaute lambda n'a pas besoin de savoir « comment ça fonctionne derrière ». Et heureusement pour lui. En revanche, un apprenti webmaster tel que vous doit, avant toute chose, connaître les bases du fonctionnement d'un site web. Qu'est-ce qu'un serveur et un client ? Comment rend-on son site dynamique ? Que signifient PHP et MySQL ? Ce premier chapitre est là pour répondre à toutes ces questions et vous montrer que vous êtes capable d'apprendre à créer des sites web dynamiques. Tous les lecteurs seront à la fin rassurés de savoir qu'ils commencent au même niveau !

                    

Nous savons désormais que PHP s'exécute sur le serveur et que son rôle est de générer des pages web. Cependant, seul un serveur peut lire du PHP ; or, votre ordinateur n'est pas un serveur. Comment allez-vous pouvoir créer un site dynamique si PHP ne fonctionne pas chez vous ? Qu'à cela ne tienne : nous allons temporairement transformer votre ordinateur en serveur pour que vous puissiez exécuter du PHP et travailler sur votre site dynamique. Vous serez fin prêt à programmer après avoir lu ce chapitre !

                    

Dans le premier chapitre, nous avons découvert le principe de fonctionnement du PHP. Ici, nous allons passer au concret et réaliser notre toute première page web en PHP. Ne vous attendez pas à un résultat extraordinaire, mais cela va nous permettre de prendre nos marques. Vous allez en particulier comprendre comment on sépare le code HTML classique du code PHP. Vous êtes prêt ? Allons-y !

                    

Avant d'aller plus loin, il est important de faire un petit stop au niveau de ce que vous allez sans doute beaucoup rencontrer (et ce n'est absolument pas grave !) : les erreurs. En effet, lorsqu'un script PHP plante, le comportement par défaut de PHP est de n'afficher qu'une page blanche (une page de navigateur sans contenu). Pour faciliter notre vie de développeur, il va falloir faire en sorte que les erreurs PHP s'affichent. Sinon, nous aurons de grosses difficultés par la suite pour comprendre pourquoi nos pages ne marchent pas. Nous allons donc changer la configuration de PHP.

                    

Attention, chapitre fondamental ! Les variables sont un élément indispensable dans tout langage de programmation, et en PHP on n'y échappe pas. Ce n'est pas un truc de programmeurs tordus, c'est au contraire quelque chose qui va nous simplifier la vie. Sans les variables, vous n'irez pas bien loin. Les variables nous permettent de mettre temporairement des informations en mémoire. Avec elles, nous allons pouvoir par exemple retenir le pseudonyme du visiteur, effectuer des calculs, et bien d'autres choses !

                    

Ce chapitre est d'une importance capitale. En effet, vous serez très souvent amené à employer des conditions dans vos pages web PHP. À quoi servent les conditions ? On a parfois besoin d'afficher des choses différentes en fonction de certaines données. Par exemple, si c'est le matin, vous voudrez dire « Bonjour » à votre visiteur ; si c'est le soir, il vaudra mieux dire « Bonsoir ». C'est là qu'interviennent les conditions. Elles permettent de donner des ordres différents à PHP selon le cas. Pour notre exemple, on lui dirait : Si c'est le matin, affiche « Bonjour ». Sinon, si c'est le soir, affiche « Bonsoir ». Vous allez voir que les conditions constituent vraiment la base pour rendre votre site dynamique, c'est-à-dire pour afficher des choses différentes en fonction du visiteur, de la date, de l'heure de la journée, etc. Voilà pourquoi ce chapitre est si important ! Allez, on y va !

                    

Dans la série des éléments de base de PHP à connaître absolument, voici les boucles ! Répéter des instructions, ça, l'ordinateur sait faire (et en plus, il ne bronche jamais) ! Imaginez que vous êtes en train de créer le forum de votre site. Sur une page, on affiche par exemple une trentaine de messages. Il serait bien trop long et répétitif de dire « Affiche le message 1 et le nom de son auteur », « Affiche le message 2 et le nom de son auteur », « Affiche le message 3 et le nom de son auteur », etc. Pour éviter d'avoir à faire cela, on peut utiliser un système de boucle qui nous permettra de dire une seule fois : « Affiche 30 messages et le nom de leur auteur à chaque fois ». Bien entendu, nous n'allons pas pouvoir apprendre à créer le forum de votre site dans ce chapitre, il est encore trop tôt. Néanmoins, prenez bien le temps de comprendre le fonctionnement des boucles car nous en aurons besoin tout au long de ce cours. Ce n'est pas bien compliqué, vous allez voir !

                    

Nous abordons ici un aspect très important du PHP : les arrays. Vous allez voir qu'il s'agit de variables « composées », que l'on peut imaginer sous la forme de tableaux. On peut faire énormément de choses avec les arrays, et leur utilisation n'est pas toujours très facile. Cependant, ils vont très rapidement nous devenir indispensables et vous devez bien comprendre leur fonctionnement. Si vous y parvenez, nous aurons fait le tour des bases du PHP, et vous serez fin prêt pour la suite, qui s'annonce concrète et passionnante.

                    

En PHP, on n'aime pas avoir à répéter le même code. Pour pallier ce problème, nous avons découvert les boucles, qui permettent d'exécuter des instructions un certain nombre de fois. Ici, nous allons découvrir un autre type de structure indispensable pour la suite : les fonctions. Comme les boucles, les fonctions permettent d'éviter d'avoir à répéter du code PHP que l'on utilise souvent. Mais alors que les boucles sont de bêtes machines tout juste capables de répéter deux cents fois la même chose, les fonctions sont des robots « intelligents » qui s'adaptent en fonction de ce que vous voulez faire, et qui automatisent grandement la plupart des tâches courantes.

                    

En programmation comme partout ailleurs, il y a deux types de personnes : celles qui effectuent leur travail rapidement, mais ne se soucient pas de la qualité, de la lisibilité, et de l'évolutivité de leur code, et celles qui font l'effort de soigner un peu leur travail, car elles ont conscience que ce petit travail supplémentaire sera un gain de temps énorme à l'avenir. Quand on débute, on a tendance à se dire « Ça marche, parfait, ne touchons plus à rien et laissons comme ça ». C'est un mauvais réflexe, et je ne serai pas le seul à vous le dire : n'importe quel programmeur PHP ayant un peu d'expérience sait qu'un code qui fonctionne n'est pas forcément bon. Cette annexe est en fait une suite de petits conseils apparemment peu importants, sur lesquels je voudrais que vous portiez toute votre attention. C'est peu de chose, et c'est pourtant ce qui fait la distinction entre un « bon » programmeur et euh… un programmeur du dimanche !

                    

Savez-vous ce qu'est une URL ? Cela signifie Uniform Resource Locator, et cela sert à représenter une adresse sur le web. Toutes les adresses que vous voyez en haut de votre navigateur, comme http://www.openclassrooms.com , sont des URL. Je me doute bien que vous ne passez pas votre temps à les regarder (il y a bien mieux à faire !), mais je suis sûr que vous avez déjà été surpris de voir que certaines URL sont assez longues et comportent parfois des caractères un peu curieux. Par exemple, après avoir fait une recherche sur Google, la barre d'adresse contient une URL longue qui ressemble à ceci : http://www.google.fr/search?rlz=1C1GFR343&q=openclassrooms Dans cet exemple, les informations après le point d'interrogation sont des données que l'on fait transiter d'une page à une autre. Nous allons découvrir dans ce chapitre comment cela fonctionne.

                    

Les formulaires constituent le principal moyen pour vos visiteurs d'entrer des informations sur votre site. Les formulaires permettent de créer une interactivité. Par exemple, sur un forum on doit insérer du texte, puis cliquer sur un bouton pour envoyer son message. Sur un livre d'or, sur un mini-chat, on procède de la même façon. On a besoin des formulaires partout pour échanger des informations avec nos visiteurs. Vous allez voir qu'il y a de nombreux rappels de HTML dans ce chapitre… et ce n'est pas un hasard : ici, le PHP et le HTML sont intimement liés. Le HTML permet de créer le formulaire, tandis que le PHP permet de traiter les informations que le visiteur a entrées dans le formulaire. Ce chapitre est particulièrement important ; nous réutiliserons ce que nous avons appris ici dans toute la suite du cours. Soyez attentif !

                    

Vous avez probablement remarqué que les arrays $_GET et $_POST sont des variables un peu particulières : leur nom est écrit en majuscules et commence par un underscore (le trait de soulignement) ; mais surtout, ces variables sont générées automatiquement par PHP. Ce sont ce qu'on appelle des variables superglobales. Il existe d'autres types de variables superglobales, que nous allons découvrir dans ce chapitre. Parmi elles, certaines permettent de stocker des informations pendant la durée d'une visite – c'est le principe des sessions – mais aussi de stocker des informations sur l'ordinateur de vos visiteurs pendant plusieurs mois – c'est le principe des cookies.

                    

Les variables superglobales sont des variables automatiquement créées par PHP. Elles se présentent sous la forme d'arrays contenant différents types d'informations. Dans les chapitres précédents, nous avons découvert deux superglobales essentielles : $_GET (qui contient les données issues de l'URL) et $_POST (qui contient les données issues d'un formulaire). La superglobale $_SESSION permet de stocker des informations qui seront automatiquement transmises de page en page pendant toute la durée de visite d'un internaute sur votre site. Il faut au préalable activer les sessions en appelant la fonction session_start() . La superglobale $_COOKIE représente le contenu de tous les cookies stockés par votre site sur l'ordinateur du visiteur. Les cookies sont de petits fichiers que l'on peut écrire sur la machine du visiteur pour retenir par exemple son nom. On crée un cookie avec la fonction setcookie() .

                    

Pour l'instant, vous avez découvert le fonctionnement du langage PHP, mais vous ne vous sentez probablement pas encore capable de créer de vrais sites web avec ce que vous avez appris. C'est parfaitement normal, car il vous manque un élément crucial : la base de données. Une base de données permet d'enregistrer des données de façon organisée et hiérarchisée. Certes, vous connaissez les variables, mais celles-ci restent en mémoire seulement le temps de la génération de la page. Vous avez aussi appris à écrire dans des fichiers, mais cela devient vite très compliqué, dès que vous avez beaucoup de données à enregistrer. Or, il va bien falloir stocker quelque part la liste de vos membres, les messages de vos forums, les options de navigation des membres… Les bases de données constituent le meilleur moyen de faire cela de façon simple et propre. Nous allons les étudier durant toute cette partie du cours !

                    

Nous allons maintenant faire des manipulations sur une base de données. Vous allez « voir » ce que peuvent contenir une base et ses tables. Il existe plusieurs façons d'accéder à sa base de données et d'y faire des modifications. On peut utiliser une ligne de commande (console), exécuter les requêtes en PHP ou faire appel à un programme qui nous permet d'avoir rapidement une vue d'ensemble. Ici, je vous propose de découvrir phpMyAdmin, un des outils les plus connus permettant de manipuler une base de données MySQL. phpMyAdmin est livré avec MAMP et XAMPP ; vous allez donc pouvoir vous en servir tout de suite. Presque tous les hébergeurs perm

                    

Dans ce chapitre, nous retournons à nos pages PHP. À partir de maintenant, nous allons apprendre à communiquer avec une base de données via PHP. Ce sera l'occasion de découvrir le langage SQL, que nous étudierons tout au long des prochains chapitres. Ici, nous allons nous entraîner à lire des données dans une table. Il est vivement conseillé d'avoir un peu manipulé phpMyAdmin au préalable : cet outil vous permettra de vérifier si les manipulations que vous faites en PHP ont bien l'impact que vous attendiez dans votre base de données.

                    

Nous avons vu dans le chapitre précédent que l'on pouvait facilement récupérer des informations de notre base de données. Nous avons également pu constater que le langage SQL est très puissant car il propose de nombreux critères de sélection et de tri ( WHERE , ORDER BY , etc.). Il est maintenant temps de découvrir comment on peut ajouter et modifier des données dans la base. Pour cela, nous allons aborder de nouvelles requêtes SQL fondamentales et qu'il vous faut connaître : INSERT , UPDATE et DELETE .

                    

Vous connaissez déjà les fonctions en PHP, mais vous allez découvrir dans ce chapitre que SQL propose lui aussi toute une série de fonctions ! Le langage SQL permet en effet d'effectuer des calculs directement sur ses données, à l'aide de fonctions toutes prêtes. Celles-ci sont moins nombreuses qu'en PHP, mais elles sont spécialement dédiées aux bases de données et se révèlent très puissantes dans la pratique. Pour reprendre notre exemple de la table jeux_video , elles permettent de récupérer très simplement le prix moyen de l'ensemble des jeux, de compter le nombre de jeux que possède chaque personne, d'extraire le jeu le plus cher ou le moins cher, etc. Les fonctions se révèlent également indispensables lorsqu'on doit travailler avec des dates en SQL, comme nous le ferons dans le chapitre suivant.

                    

MySQL permet de travailler avec plusieurs tables à la fois. Un des principaux intérêts d'une base de données est de pouvoir créer des relations entre les tables, de pouvoir les lier entre elles. Pour le moment, nous n'avons travaillé que sur une seule table à la fois. Dans la pratique, vous aurez certainement plusieurs tables dans votre base, dont la plupart seront interconnectées. Cela vous permettra de mieux découper vos informations, d'éviter des répétitions et de rendre ainsi vos données plus faciles à gérer. Tenez, par exemple, dans notre table jeux_video , on répète à chaque fois le nom du possesseur du jeu. Le mot « Patrick » est écrit de nombreuses fois dans la table. Imaginez que l'on souhaite stocker aussi son nom de famille, son adresse, son numéro de téléphone… On ne va quand même pas recopier ces informations pour chaque jeu qu'il possède ! Il est temps de créer une autre table et de la lier.