Manuel de cours de développement Web PHP et MySQL

Telechargé par Yann Foka
Concevez votre site
web avec PHP et
MySQL
Par Mathieu Nebra (Mateo21)
www.openclassrooms.com
Licence Creative Commons 6 2.0
Dernière mise à jour le 26/07/2013
Sommaire
2Sommaire ...........................................................................................................................................
6Lire aussi ............................................................................................................................................
8 Concevez votre site web avec PHP et MySQL ..................................................................................
9Partie 1 : Les bases de PHP ...............................................................................................................
9Introduction à PHP ............................................................................................................................................................
9Les sites statiques et dynamiques ..............................................................................................................................................................................
9Comment fonctionne un site web ? .............................................................................................................................................................................
10Cas d'un site statique ................................................................................................................................................................................................
11Cas d'un site dynamique ...........................................................................................................................................................................................
11Les langages du Web ................................................................................................................................................................................................
11Pour un site statique : HTML et CSS .........................................................................................................................................................................
12Pour un site dynamique : ajoutez PHP et MySQL .....................................................................................................................................................
13PHP génère du HTML ...............................................................................................................................................................................................
13Et la concurrence ? ...................................................................................................................................................................................................
13Les concurrents de PHP ...........................................................................................................................................................................................
14Les concurrents de MySQL .......................................................................................................................................................................................
14Plusieurs combinaisons sont possibles .....................................................................................................................................................................
14En résumé .................................................................................................................................................................................................................
16Préparer son ordinateur ..................................................................................................................................................
16De quels programmes a-t-on besoin ? ......................................................................................................................................................................
16Avec un site statique .................................................................................................................................................................................................
16Avec un site dynamique ............................................................................................................................................................................................
17Sous Windows : WAMP ............................................................................................................................................................................................
21Sous Mac OS X : MAMP ...........................................................................................................................................................................................
24Sous Linux : XAMPP .................................................................................................................................................................................................
27Utiliser un bon éditeur de fichiers ..............................................................................................................................................................................
28Sous Windows ..........................................................................................................................................................................................................
32Sous Mac OS X .........................................................................................................................................................................................................
32Sous Linux .................................................................................................................................................................................................................
33En résumé .................................................................................................................................................................................................................
34Premiers pas avec PHP ..................................................................................................................................................
34Les balises PHP ........................................................................................................................................................................................................
34La forme d'une balise PHP ........................................................................................................................................................................................
35Insérer une balise PHP au milieu du code HTML .....................................................................................................................................................
36Afficher du texte ........................................................................................................................................................................................................
36L'instruction echo ......................................................................................................................................................................................................
38Enregistrer une page PHP ........................................................................................................................................................................................
38Tester la page PHP ...................................................................................................................................................................................................
39Comment PHP génère du code HTML ......................................................................................................................................................................
40Les commentaires .....................................................................................................................................................................................................
40Les commentaires monolignes .................................................................................................................................................................................
41Les commentaires multilignes ...................................................................................................................................................................................
41En résumé .................................................................................................................................................................................................................
41Inclure des portions de page ...........................................................................................................................................
42Le principe .................................................................................................................................................................................................................
42Le problème ..............................................................................................................................................................................................................
43La solution .................................................................................................................................................................................................................
43La pratique ................................................................................................................................................................................................................
45En résumé .................................................................................................................................................................................................................
46Les variables ...................................................................................................................................................................
47Qu'est-ce qu'une variable ? .......................................................................................................................................................................................
47Un nom et une valeur ................................................................................................................................................................................................
47Les différents types de variables ...............................................................................................................................................................................
48Affecter une valeur à une variable .............................................................................................................................................................................
48Premières manipulations de variables ......................................................................................................................................................................
49Utiliser les types de données ....................................................................................................................................................................................
51Afficher et concaténer des variables .........................................................................................................................................................................
51Afficher le contenu d'une variable .............................................................................................................................................................................
51La concaténation .......................................................................................................................................................................................................
53Faire des calculs simples ..........................................................................................................................................................................................
53Les opérations de base : addition, soustraction… ....................................................................................................................................................
54Le modulo .................................................................................................................................................................................................................
54Et les autres opérations ? .........................................................................................................................................................................................
54En résumé .................................................................................................................................................................................................................
55Les conditions .................................................................................................................................................................
55La structure de base : if… else .................................................................................................................................................................................
55Les symboles à connaître .........................................................................................................................................................................................
55La structure if… else .................................................................................................................................................................................................
57Le cas des booléens .................................................................................................................................................................................................
58Des conditions multiples ...........................................................................................................................................................................................
59L'astuce bonus ..........................................................................................................................................................................................................
60Une alternative pratique : switch ...............................................................................................................................................................................
62Les ternaires : des conditions condensées ...............................................................................................................................................................
63En résumé .................................................................................................................................................................................................................
2/308
www.openclassrooms.com
63Les boucles .....................................................................................................................................................................
64Une boucle simple : while .........................................................................................................................................................................................
66Une boucle plus complexe : for .................................................................................................................................................................................
67En résumé .................................................................................................................................................................................................................
67Les fonctions ...................................................................................................................................................................
68Qu'est-ce qu'une fonction ? .......................................................................................................................................................................................
68Dialogue avec une fonction .......................................................................................................................................................................................
69Les fonctions en PHP ................................................................................................................................................................................................
70Les fonctions prêtes à l'emploi de PHP .....................................................................................................................................................................
71Traitement des chaînes de caractères ......................................................................................................................................................................
72Récupérer la date ......................................................................................................................................................................................................
73Créer ses propres fonctions ......................................................................................................................................................................................
73Premier exemple : dis bonjour au Monsieur ..............................................................................................................................................................
75Deuxième exemple : calculer le volume d'un cône ...................................................................................................................................................
76En résumé .................................................................................................................................................................................................................
77Les tableaux ....................................................................................................................................................................
77Les deux types de tableaux .......................................................................................................................................................................................
77Les tableaux numérotés ............................................................................................................................................................................................
79Les tableaux associatifs ............................................................................................................................................................................................
80Parcourir un tableau ..................................................................................................................................................................................................
80La boucle for ..............................................................................................................................................................................................................
81La boucle foreach ......................................................................................................................................................................................................
82Afficher rapidement un array avec print_r .................................................................................................................................................................
83Rechercher dans un tableau .....................................................................................................................................................................................
83Vérifier si une clé existe dans l'array : array_key_exists ...........................................................................................................................................
84Vérifier si une valeur existe dans l'array : in_array ....................................................................................................................................................
84Récupérer la clé d'une valeur dans l'array : array_search ........................................................................................................................................
85En résumé .................................................................................................................................................................................................................
86Partie 2 : Transmettre des données de page en page ......................................................................
86Transmettre des données avec l'URL .............................................................................................................................
86Envoyer des paramètres dans l'URL .........................................................................................................................................................................
86Former une URL pour envoyer des paramètres ........................................................................................................................................................
87Créer un lien avec des paramètres ...........................................................................................................................................................................
87Récupérer les paramètres en PHP ...........................................................................................................................................................................
88Ne faites jamais confiance aux données reçues ! .....................................................................................................................................................
88Tous les visiteurs peuvent trafiquer les URL .............................................................................................................................................................
89Tester la présence d'un paramètre ............................................................................................................................................................................
90Contrôler la valeur des paramètres ...........................................................................................................................................................................
93En résumé .................................................................................................................................................................................................................
93Transmettre des données avec les formulaires ..............................................................................................................
94Créer la base du formulaire .......................................................................................................................................................................................
94La méthode ...............................................................................................................................................................................................................
94La cible ......................................................................................................................................................................................................................
95Les éléments du formulaire .......................................................................................................................................................................................
95Les petites zones de texte ........................................................................................................................................................................................
97Les grandes zones de texte ......................................................................................................................................................................................
97La liste déroulante .....................................................................................................................................................................................................
98Les cases à cocher ...................................................................................................................................................................................................
99Les boutons d'option .................................................................................................................................................................................................
99Les champs cachés ..................................................................................................................................................................................................
100Ne faites jamais confiance aux données reçues : la faille XSS ..............................................................................................................................
100Pourquoi les formulaires ne sont pas sûrs ..............................................................................................................................................................
102La faille XSS : attention au code HTML que vous recevez ! ...................................................................................................................................
104L'envoi de fichiers ....................................................................................................................................................................................................
104Le formulaire d'envoi de fichier ...............................................................................................................................................................................
105Le traitement de l'envoi en PHP ..............................................................................................................................................................................
109En résumé ...............................................................................................................................................................................................................
110TP : page protégée par mot de passe ...........................................................................................................................
110Instructions pour réaliser le TP ................................................................................................................................................................................
110Les prérequis ...........................................................................................................................................................................................................
110Votre objectif ............................................................................................................................................................................................................
110Comment procéder ? ...............................................................................................................................................................................................
111À vous de jouer ! ......................................................................................................................................................................................................
111Correction ................................................................................................................................................................................................................
113Aller plus loin ...........................................................................................................................................................................................................
115Variables superglobales, sessions et cookies ...............................................................................................................
115Les variables superglobales ....................................................................................................................................................................................
115Les sessions ............................................................................................................................................................................................................
115Fonctionnement des sessions .................................................................................................................................................................................
116Exemple d'utilisation des sessions ..........................................................................................................................................................................
118L'utilité des sessions en pratique .............................................................................................................................................................................
118Les cookies ..............................................................................................................................................................................................................
118Qu'est-ce qu'un cookie ? .........................................................................................................................................................................................
119Écrire un cookie .......................................................................................................................................................................................................
120Afficher un cookie ....................................................................................................................................................................................................
121Modifier un cookie existant ......................................................................................................................................................................................
121En résumé ...............................................................................................................................................................................................................
122Lire et écrire dans un fichier ..........................................................................................................................................
123Autoriser l'écriture de fichiers (chmod) ....................................................................................................................................................................
124Ouvrir et fermer un fichier ........................................................................................................................................................................................
125Lire et écrire dans un fichier ....................................................................................................................................................................................
Sommaire 3/308
www.openclassrooms.com
125Lire ..........................................................................................................................................................................................................................
126Écrire .......................................................................................................................................................................................................................
127En résumé ...............................................................................................................................................................................................................
127Partie 3 : Stocker des informations dans une base de données .....................................................
128Présentation des bases de données .............................................................................................................................
128Le langage SQL et les bases de données ..............................................................................................................................................................
128Les SGBD s'occupent du stockage .........................................................................................................................................................................
129Vous donnez les ordres au SGBD en langage SQL ................................................................................................................................................
129PHP fait la jonction entre vous et MySQL ...............................................................................................................................................................
130Structure d'une base de données ...........................................................................................................................................................................
131Mais où sont enregistrées les données ? ................................................................................................................................................................
131En résumé ...............................................................................................................................................................................................................
132phpMyAdmin .................................................................................................................................................................
133Créer une table ........................................................................................................................................................................................................
135Les types de champs MySQL ..................................................................................................................................................................................
136Les clés primaires ...................................................................................................................................................................................................
137Modifier une table ....................................................................................................................................................................................................
139Autres opérations ....................................................................................................................................................................................................
139SQL .........................................................................................................................................................................................................................
140Importer ...................................................................................................................................................................................................................
141Exporter ...................................................................................................................................................................................................................
143Opérations ...............................................................................................................................................................................................................
143Vider ........................................................................................................................................................................................................................
143Supprimer ................................................................................................................................................................................................................
143En résumé ...............................................................................................................................................................................................................
143Lire des données ...........................................................................................................................................................
144Se connecter à la base de données en PHP ..........................................................................................................................................................
144Comment se connecte-t-on à la base de données en PHP ? .................................................................................................................................
145Activer PDO .............................................................................................................................................................................................................
145Se connecter à MySQL avec PDO ..........................................................................................................................................................................
146Tester la présence d'erreurs ....................................................................................................................................................................................
147Récupérer les données ...........................................................................................................................................................................................
148Faire une requête ....................................................................................................................................................................................................
148Votre première requête SQL ...................................................................................................................................................................................
149Afficher le résultat d'une requête .............................................................................................................................................................................
151Afficher seulement le contenu de quelques champs ...............................................................................................................................................
152Les critères de sélection .........................................................................................................................................................................................
152WHERE ...................................................................................................................................................................................................................
153ORDER BY ..............................................................................................................................................................................................................
154LIMIT .......................................................................................................................................................................................................................
156Construire des requêtes en fonction de variables ...................................................................................................................................................
156La mauvaise idée : concaténer une variable dans une requête ..............................................................................................................................
156La solution : les requêtes préparées .......................................................................................................................................................................
158Traquer les erreurs ..................................................................................................................................................................................................
159En résumé ...............................................................................................................................................................................................................
160Écrire des données .......................................................................................................................................................
161INSERT : ajouter des données ................................................................................................................................................................................
161La requête INSERT INTO permet d'ajouter une entrée ..........................................................................................................................................
162Application en PHP .................................................................................................................................................................................................
162Insertion de données variables grâce à une requête préparée ...............................................................................................................................
163UPDATE : modifier des données .............................................................................................................................................................................
163La requête UPDATE permet de modifier une entrée ...............................................................................................................................................
164Application en PHP .................................................................................................................................................................................................
165Avec une requête préparée .....................................................................................................................................................................................
165DELETE : supprimer des données ..........................................................................................................................................................................
165En résumé ...............................................................................................................................................................................................................
165TP : un mini-chat ...........................................................................................................................................................
166Instructions pour réaliser le TP ................................................................................................................................................................................
166Prérequis .................................................................................................................................................................................................................
166Objectifs ..................................................................................................................................................................................................................
167Structure de la table MySQL ...................................................................................................................................................................................
167Structure des pages PHP ........................................................................................................................................................................................
168Rappel sur les consignes de sécurité .....................................................................................................................................................................
168À vous de jouer ! .....................................................................................................................................................................................................
169Correction ................................................................................................................................................................................................................
169minichat.php : formulaire et liste des derniers messages .......................................................................................................................................
170minichat_post.php : enregistrement et redirection ..................................................................................................................................................
170Aller plus loin ...........................................................................................................................................................................................................
171Les fonctions SQL .........................................................................................................................................................
172Les fonctions scalaires ............................................................................................................................................................................................
172Utiliser une fonction scalaire SQL ...........................................................................................................................................................................
174Présentation de quelques fonctions scalaires utiles ...............................................................................................................................................
175Les fonctions d'agrégat ...........................................................................................................................................................................................
175Utiliser une fonction d'agrégat SQL .........................................................................................................................................................................
177Présentation de quelques fonctions d'agrégat utiles ...............................................................................................................................................
179GROUP BY et HAVING : le groupement de données .............................................................................................................................................
179GROUP BY : grouper des données .........................................................................................................................................................................
180HAVING : filtrer les données regroupées ................................................................................................................................................................
180En résumé ...............................................................................................................................................................................................................
180Les dates en SQL ..........................................................................................................................................................
181Les champs de type date ........................................................................................................................................................................................
Sommaire 4/308
www.openclassrooms.com
181Les différents types de dates ..................................................................................................................................................................................
182Utilisation des champs de date en SQL ..................................................................................................................................................................
183Les fonctions de gestion des dates .........................................................................................................................................................................
183NOW() : obtenir la date et l'heure actuelles ............................................................................................................................................................
183DAY(), MONTH(), YEAR() : extraire le jour, le mois ou l'année ...............................................................................................................................
184HOUR(), MINUTE(), SECOND() : extraire les heures, minutes, secondes .............................................................................................................
184DATE_FORMAT : formater une date .......................................................................................................................................................................
185DATE_ADD et DATE_SUB : ajouter ou soustraire des dates .................................................................................................................................
185En résumé ...............................................................................................................................................................................................................
185TP : un blog avec des commentaires ............................................................................................................................
186Instructions pour réaliser le TP ................................................................................................................................................................................
186Prérequis .................................................................................................................................................................................................................
186Objectifs ..................................................................................................................................................................................................................
188Structure des tables MySQL ....................................................................................................................................................................................
189Structure des pages PHP ........................................................................................................................................................................................
189À vous de jouer ! .....................................................................................................................................................................................................
189Correction ................................................................................................................................................................................................................
189index.php : la liste des derniers billets ....................................................................................................................................................................
191commentaires.php : affichage d'un billet et de ses commentaires ..........................................................................................................................
193Aller plus loin ...........................................................................................................................................................................................................
193Un formulaire d'ajout de commentaires ...................................................................................................................................................................
193Utiliser les includes .................................................................................................................................................................................................
193Vérifier si le billet existe sur la page des commentaires .........................................................................................................................................
194Paginer les billets et commentaires ........................................................................................................................................................................
194Réaliser une interface d'administration du blog ......................................................................................................................................................
195Les jointures entre tables ..............................................................................................................................................
196Modélisation d'une relation ......................................................................................................................................................................................
197Qu'est-ce qu'une jointure ? ......................................................................................................................................................................................
198Les jointures internes ..............................................................................................................................................................................................
199Jointure interne avec WHERE (ancienne syntaxe) .................................................................................................................................................
201Jointure interne avec JOIN (nouvelle syntaxe) ........................................................................................................................................................
202Les jointures externes .............................................................................................................................................................................................
202LEFT JOIN : récupérer toute la table de gauche .....................................................................................................................................................
202RIGHT JOIN : récupérer toute la table de droite .....................................................................................................................................................
203En résumé ...............................................................................................................................................................................................................
204Partie 4 : Utilisation avancée de PHP .............................................................................................
204Créer des images en PHP ............................................................................................................................................
204Activer la bibliothèque GD .......................................................................................................................................................................................
204Les bases de la création d'image ............................................................................................................................................................................
204Le header ................................................................................................................................................................................................................
205Créer l'image de base .............................................................................................................................................................................................
206Quand on a terminé : on affiche l'image ..................................................................................................................................................................
208Texte et couleur .......................................................................................................................................................................................................
208Manipuler les couleurs ............................................................................................................................................................................................
210Écrire du texte .........................................................................................................................................................................................................
211Dessiner une forme .................................................................................................................................................................................................
211ImageSetPixel .........................................................................................................................................................................................................
211ImageLine ................................................................................................................................................................................................................
212ImageEllipse ............................................................................................................................................................................................................
212ImageRectangle ......................................................................................................................................................................................................
213ImagePolygon .........................................................................................................................................................................................................
213Des fonctions encore plus puissantes .....................................................................................................................................................................
214Rendre une image transparente ..............................................................................................................................................................................
214Mélanger deux images ............................................................................................................................................................................................
217Redimensionner une image ....................................................................................................................................................................................
219En résumé ...............................................................................................................................................................................................................
220Les expressions régulières (partie 1/2) .........................................................................................................................
220Où utiliser une regex ? ............................................................................................................................................................................................
220POSIX ou PCRE ? ..................................................................................................................................................................................................
220Les fonctions qui nous intéressent ..........................................................................................................................................................................
221preg_match .............................................................................................................................................................................................................
221Des recherches simples ..........................................................................................................................................................................................
222Et tu casses, tu casses, tu casses… .......................................................................................................................................................................
223Le symbole OU ........................................................................................................................................................................................................
223Début et fin de chaîne .............................................................................................................................................................................................
224Les classes de caractères .......................................................................................................................................................................................
224Des classes simples ................................................................................................................................................................................................
224Les intervalles de classe .........................................................................................................................................................................................
225Et pour dire que je n'en veux pas ? .........................................................................................................................................................................
226Les quantificateurs ..................................................................................................................................................................................................
226Les symboles les plus courants ..............................................................................................................................................................................
227Être plus précis grâce aux accolades .....................................................................................................................................................................
228En résumé ...............................................................................................................................................................................................................
228Les expressions régulières (partie 2/2) .........................................................................................................................
229Une histoire de métacaractères ..............................................................................................................................................................................
229Alerte mon Général ! Les métacaractères s'échappent ! ........................................................................................................................................
230Le cas des classes ..................................................................................................................................................................................................
230Les classes abrégées .............................................................................................................................................................................................
231Construire une regex complète ...............................................................................................................................................................................
231Un numéro de téléphone .........................................................................................................................................................................................
233Une adresse e-mail .................................................................................................................................................................................................
234Des regex… avec MySQL ! .....................................................................................................................................................................................
Sommaire 5/308
www.openclassrooms.com
1 / 307 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!