Ce support s'adresse à un public de développeurs débutants connaissant déjà le HTML et les CSS et qui souhaitent bien comprendre le fonctionnement d'une application web pour créer leurs propres sites web dynamiques avec PHP et MySQL.Dans une première partie, le lecteur installera son environnement de développement WAMP puis découvrira les bases du langage PHP (en version 8 au moment de l'écriture), ses principales fonctions et structures de contrôle, ainsi que...
Ce support s'adresse à un public de développeurs débutants connaissant déjà le HTML et les CSS et qui souhaitent bien comprendre le fonctionnement d'une application web pour créer leurs propres sites web dynamiques avec PHP et MySQL.
Dans une première partie, le lecteur installera son environnement de développement WAMP puis découvrira les bases du langage PHP (en version 8 au moment de l'écriture), ses principales fonctions et structures de contrôle, ainsi que des explications sur la transmission des données entre les pages et sur la librairie graphique (les effets spéciaux sur une image). Ces apports théoriques sont accompagnés de nombreux exemples.
Il en est de même dans la deuxième partie du support, consacrée au langage SQL. Le lecteur découvrira ce qu'est une base de données MySQL et les différentes méthodes pour y accéder avec PHP (PDO, SQL Avancé) et comment assurer la sécurité de la base. Un chapitre est également consacré aux premiers pas sur la Programmation Orientée Objet et un autre à la gestion de laconfiguration et des performances.
Pour que le lecteur puisse se forger une première expérience significative, l'auteur a préparé de nombreux exercices à la fin de chaque chapitre (exemples : comme créer un blog, une newsletter, le MVC...) et propose aussi leurs corrigés.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr
1.4 Insertion de code XHTML avec l'instruction echo
1.5 Les commentaires
2. Les variables
2.1 Affectation
2.2 Les types de variables
2.3 Particularité du type string
2.4 La concaténation
2.5 Le transtypage
2.6 Les variables dynamiques
3. Les constantes
Les fonctions et structures de contrôle
1. Les conditions
1.1 if
1.2 switch
1.3 match
2. Les boucles
2.1 for
2.2 While
2.3 do while
2.4 foreach
3. Les tableaux
3.1 Tableaux numériques
3.2 Tableaux associatifs
3.3 Constantes de type tableau
3.4 Parcours d'un tableau
3.4.1 La boucle for
3.4.2 La boucle foreach
3.4.3 La fonction print_r
3.5 Fonctions sur les tableaux
3.5.1 Longueur d'un tableau
3.5.2 Existence d'une valeur dans un tableau
3.5.3 Existence d'une clé dans un tableau
3.5.4 Récupération de la première clé d'un tableau
3.5.5 Tri d'un tableau
3.5.6 Recherche dans un tableau
3.5.7 Découper une chaîne dans un tableau
3.5.8 Regrouper les valeurs d'un tableau dans une chaîne
3.5.9 Découper une chaîne en morceaux de longueur fixe
3.5.10 Ajouter des éléments à la fin du tableau
3.5.11 Suppression d'un élément à la fin du tableau
3.5.12 Sélection aléatoire d’un élément du tableau
3.5.13 Vérification si le tableau est une liste
3.5.14 Remplir un tableau avec une même valeur
3.5.15 Fusionner plusieurs tableaux
3.6 Tableaux à plusieurs dimensions
3.7 Exercices sur les tableaux
3.7.1 Énoncés
3.7.2 Corrigés
4. Traitement de chaînes de caractères
4.1 Les fonctions de manipulation de chaîne
4.1.1 strlen()
4.1.2 substr()
4.1.3 strstr()
4.1.4 str_replace()
4.1.5 trim()
4.1.6 strtolower()
4.1.7 strtoupper()
4.1.8 strpos()
4.1.9 str_word_count()
4.1.10 str_pad()
4.2 Les expressions régulières
4.2.1 Insensibilité à la casse
4.2.2 Recherche d'un mot et non d’une chaîne
4.2.3 Recherches de chaînes avec OU
4.2.4 Début de chaîne
4.2.5 Fin de chaîne
4.2.6 Un caractère dans une classe
4.2.7 Une plage de caractères dans une classe
4.2.8 La non-présence d'une plage de caractères dans une classe
4.2.9 Les quantificateurs
4.2.10 Les intervalles de reconnaissance
5. Les opérateurs
5.1 Les opérateurs de chaîne
5.1.1 La concaténation
5.1.2 L'assignation
5.2 Les opérateurs arithmétiques
5.2.1 L'addition
5.2.2 La soustraction
5.2.3 La multiplication
5.2.4 La division
5.2.5 Le modulo
5.2.6 L'incrémentation
5.2.7 La décrémentation
5.2.8 L’exponentiation
5.3 Les opérateurs de comparaison
5.3.1 L'égalité
5.3.2 La différence
5.3.3 La comparaison
5.3.4 L’opérateur à trois issues
5.4 L'opérateur ternaire
5.5 Les opérateurs logiques
5.5.1 ET
5.5.2 OU
6. Les fonctions
6.1 Création
6.2 Les exceptions
6.3 Retour du type des déclarations
6.4 Portée des variables
6.5 Les variables globales
6.6 Les variables statiques
6.7 Fonctions utiles
6.8 Passage par référence
6.9 Fonctions sur la gestion de fonction
6.10 Fonctions variables via l’opérateur ...
6.11 Décompression des arguments via l’opérateur ...
6.12 Arguments nommés
6.13 Fonctions anonymes
6.14 Fonctions fléchées
6.15 Fonctions dynamiques interdites
6.16 Fonctions générateurs
6.17 Récursivité
6.18 Fonctions prédéfinies dans PHP
6.18.1 Générer un nombre aléatoire
6.18.2 Arrondir un nombre décimal
6.18.3 Récupérer la valeur absolue d'un nombre
6.18.4 Créer un identifiant unique
6.18.5 Afficher les informations sur PHP
6.18.6 Envoyer un e-mail
6.19 Stocker une fonction dans une variable
6.20 Gérer la mémoire tampon
6.21 Exercices sur les fonctions
6.21.1 Énoncés
6.21.2 Solutions
7. Les dates
8. Les fichiers
8.1 Introduction
8.2 Lecture rapide
8.3 Écriture rapide
8.4 Ouverture et fermeture d’un fichier
8.5 Lecture et écriture
8.6 Accès concurrent
8.7 Manipulation de fichiers
8.8 Manipulation de répertoires
9. Les includes
10. Exercices sur les fichiers
10.1 Énoncés
10.2 Corrigés
Transmettre des données d'une page à l'autre
1. Les variables superglobales
1.1 $GLOBALS
1.2 $_SERVER
1.3 $_ENV
1.4 $_SESSION
1.5 $_COOKIE
1.6 $_FILES
2. La méthode GET
2.1 Utilisation de la méthode GET
2.2 Test de la présence de la variable dans l'URL
2.3 Test de la valeur de la variable dans l'URL
2.4 Informations complémentaires
2.4.1 Paramètres avec le même nom
2.4.2 Paramètres de type tableau
2.4.3 Paramètres avec des caractères spéciaux
3. La méthode POST
3.1 Utilisation de la méthode POST
3.2 Les différents éléments du formulaire
3.2.1 Zone de type texte
3.2.2 Zone de type mot de passe
3.2.3 Grande zone de texte
3.2.4 Liste déroulante à choix unique
3.2.5 Liste déroulante à choix multiple
3.2.6 Cases à cocher
3.2.7 Boutons radio
3.2.8 Champs cachés
3.2.9 Bouton de type submit
3.2.10 Bouton de type reset
3.2.11 Formulaire complet
4. La méthode $_REQUEST
5. Extraction de données
6. Zones portant le même nom
7. Plusieurs formulaires dans la même page
8. Contrôle des données et redirection de pages
8.1 Introduction
8.2 Données obligatoires
8.3 Les filtres
8.4 Suppression des espaces indésirables
8.5 Longueur maximale
8.6 Caractères autorisés
8.7 Magic quotes
8.8 Redirection de page
9. Exercices
9.1 Énoncés
9.2 Solutions
Les effets spéciaux sur une image
1. La librairie GD
2. Création d'une image
2.1 Le header
2.2 Création d'une image vide
2.3 Création et affichage d'une image complète
2.4 Résolution de l’image
3. Texte et couleur
3.1 La couleur
3.2 Le texte
3.3 La transparence
4. Redimensionnement d’une image
5. Superposition d’images
6. Les formes
7. Différents exemples
7.1 Exemple 1
7.2 Exemple 2
Base de données MySQL
1. Présentation
1.1 Introduction
1.2 Structure
2. phpMyAdmin
3. Le langage SQL
3.1 Présentation
3.2 Lire des données
3.3 Écrire des données
3.4 Filtrer des données
3.5 Les alias
3.6 Tri des données
3.7 Supprimer des données
3.8 Modifier des données
3.9 Les jointures
3.10 Le regroupement
4. SQL avancé
4.1 Les fonctions et instructions SQL
4.1.1 Limiter des données
4.1.2 Valeurs distinctes
4.1.3 Convertir en majuscules
4.1.4 Convertir en minuscules
4.1.5 Arrondir un nombre décimal
4.1.6 Valeur absolue d'un nombre décimal
4.1.7 Nombre aléatoire
4.1.8 Longueur d'un champ
4.1.9 Supprimer les espaces d'un champ
4.1.10 Extraire une sous-chaîne d'un champ
4.1.11 Concaténer plusieurs champs
4.1.12 Position d'une chaîne de caractères dans un champ
4.1.13 Ajout d'une séquence de caractères
4.1.14 Remplacement d'une chaîne de caractères
4.1.15 Tester la valeur d'un champ
4.1.16 Affichage de la date courante
4.1.17 Extraire la date d'un champ date et heure
4.1.18 Différence entre deux dates
4.1.19 Ajout d'un intervalle de temps à une date
4.1.20 Ajout d'un intervalle de temps à une heure
4.1.21 Soustraction d'un intervalle de temps à une date
4.1.22 Soustraction d'un intervalle de temps à une heure
4.1.23 Unir deux requêtes
4.2 Les fonctions de chiffrement et de compression
4.3 La commande SHOW
4.4 La commande SHOW PROCESSLIST
4.5 Les expressions rationnelles
4.6 Les sous-requêtes
4.7 Les procédures stockées et les fonctions
4.8 Les autres objets de MySQL
4.8.1 Les tables
4.8.2 Les index
4.8.3 Les vues
4.8.4 Les déclencheurs
5. Exercices SQL
5.1 Énoncés
5.2 Corrigés
6. L'accès aux bases de données avec PHP
6.1 Introduction
6.2 Connexion
6.3 Déconnexion
6.4 Requêtes non préparées
6.4.1 Lire des données
6.4.2 Écrire des données
6.4.3 Supprimer des données
6.4.4 Mettre à jour des données
6.5 Requêtes préparées
6.5.1 Introduction
6.5.2 Lire des données
6.5.3 Écrire des données
6.5.4 Modifier des données
6.5.5 Supprimer des données
6.5.6 Stocker un résultat
6.5.7 Afficher les erreurs d'une requête préparée
7. PDO
7.1 Introduction
7.2 Connexion
7.3 Requêtes non préparées
7.3.1 Lire des données
7.3.2 Écrire des données
7.3.3 Supprimer des données
7.3.4 Mettre à jour des données
7.4 Requêtes préparées
7.4.1 Lire des données
7.4.2 Écrire des données
7.4.3 Supprimer des données
7.4.4 Modifier des données
7.4.5 Appeler une procédure stockée
8. Exercices
8.1 Énoncés
8.2 Corrigés
L’objet
1. Introduction
2. Les classes
2.1 Introduction
2.2 L'encapsulation
2.3 Visibilité des attributs et des méthodes
2.4 Ajout d'une méthode dans une classe
2.5 Utilisation d’une classe
2.6 Mettre à jour et lire les attributs de l'instance
2.7 Passage en paramètre de type objet
2.8 Le constructeur
2.9 Le destructeur
2.10 Exercice
2.11 Les constantes de classe
2.12 Les attributs et méthodes statiques
2.12.1 Méthode statique
2.12.2 Attribut statique
2.13 Les exceptions
2.14 Les types UNION et null
2.15 Le chaînage des méthodes
3. L'héritage
3.1 Introduction
3.2 Protected
3.3 Substitution
3.4 Héritage en cascade
4. Les classes abstraites
5. Substitution de méthodes abstraites
6. Les interfaces
7. Les énumérations
8. Les classes readonly
9. Les classes finales
10. Les méthodes magiques
11. Les classes anonymes
12. Les traits
13. Uniform Variable Syntax
14. Les espaces de noms
15. Autoload
16. Exercices
16.1 Énoncés
16.2 Corrigés
Configuration
1. Fichier de configuration PHP : php.ini
2. Fichier de configuration MySQL : my.ini
3. Fichier de configuration Apache : httpd.conf
Sécurité
1. Failles XSS
1.1 XSS non permanent
1.2 XSS permanent
1.3 Page d'erreur
2. Droits sur la base de données
3. Injection SQL (addslashes)
4. Vérification de la session
5. Performances
5.1 PHP 7
5.2 Utilisation d’AST
5.3 Optimiser les performances en PHP
5.4 Optimiser les performances en MySQL
Cas pratiques et corrigés
1. Créer un blog (procédural)
2. Créer un blog (objet)
3. Créer un blog (MVC)
4. Créer une newsletter
5. Créer un flux RSS
6. Gestion d’un parc informatique en MVC
7. Créer un site de gestion d'élèves
Index
Olivier ROLLET
Titulaire d’un diplôme d’ingénieur maître en Génie électrique et Informatique Industrielle, Olivier ROLLET a travaillé comme développeur sur de nombreux projets de sites web pendant 12 ans. Il est aujourd’hui formateur dans le domaine du développement autour des nouvelles technologies web et connaît parfaitement les attentes des lecteurs néophytes.