1 Introduction... 17 1.1. Naissance de ce langage... 18 1.2. Evolution du langage... 18 1.3. Intérêt de ce langage... 19 La liberté... 19 La portabilité... 20 La facilité... 21 Un peu d histoire... 21 1.4. Fonctionnement... 22 1.5. Des chiffres.... 23 2 Ma première page PHP... 25 2.1. HTML... 26 2.2. Le cheminement d un apprenti webmestre... 27 2.3. Quelques notions de HTML... 28 Les images... 32 Les liens... 33 Les tableaux... 35 Les formulaires... 38 Les cadres ou frames... 40 2.4. Les outils... 43 Les logiciels d édition de code PHP... 43 EasyPHP... 45 Autres logiciels... 46 L hébergement... 47 2.5. Ma page... 48 Les commentaires... 51 PHPinfo()... 51 3 Les clefs du PHP... 53 3.1. Variables scalaires... 54 Le nom de variable... 54 Le type des variables... 55 Les guillemets... 57 Les constantes... 60 Les tableaux... 63 3.2. Les opérateurs... 67 Les opérateurs arithmétiques... 67 Les opérateurs d affectation... 67 Les opérateurs de bits... 68 Les opérateurs de comparaison... 68 Les opérateurs de contrôle d erreur... 70 Les opérateurs unaires... 71 Les opérateurs logiques... 72 Priorité des opérateurs... 72
Les opérateurs de chaîne de caractères... 73 3.3. Les structures de contrôle... 74 Les tests... 74 3.4. Les boucles... 77 La boucle while... 78 La boucle do while... 79 La boucle for... 80 Foreach... 82 Break et continue... 84 3.5. Les fonctions de PHP... 85 Chaînes de caractères... 86 Variables... 91 Date et heure... 91 Mathématiques... 95 3.6. Les fonctions... 97 Le rôle de la fonction... 97 La portée d une variable dans une fonction... 101 Les fonctions imbriquées... 101 Les fonctions récursives... 102 Afficher vos date et heure locales... 103 3.7. Récapitulatif pour votre application... 105 4 MySQL en action... 107 4.1. Le fichier face à la base de données... 108 4.2. Conception de l application du club... 108 4.3. Création d une table... 109 4.4. Modification d une table... 113 4.5. Les clés étrangères... 114 4.6. Les jointures de tables... 115 4.7. Les types de données MySQL... 116 4.8. La sauvegarde de la base... 118 4.9. Les formulaires... 119 L inscription au club... 119 4.10. Les fonctions du langage PHP pour MySQL... 133 4.11. La vérification des formulaires... 133 La vérification avec Javascript... 134 Le code PHP... 141 Variables prédéfinies liées au chemin ou à l URL... 145 4.12. Tout sur un seul fichier : oubli.php... 146 La réflexion... 146 La plate-forme commune... 147 Les variables comme marqueurs... 147 4.13. Récapitulation de la syntaxe des requêtes... 151 4.14. Les procédures stockées... 156 4.15. SQLite... 156
5 Le PHP et l approche objet... 159 5.1. Qu est-ce que l objet?... 161 5.2. L héritage... 163 5.3. Surcharger une méthode... 165 5.4. Le polymorphisme... 166 5.5. Passer un argument par référence... 167 5.6. PHP 5 et l objet... 168 Le pointeur... 168 Les privilèges... 168 Le constructeur et le destructeur... 168 6 L internaute est d abord une personne... 171 6.1. L authentification... 172 Le processus... 175 La première authentification... 176 La vérification de l identité de l internaute... 178 Le cookie... 179 La conservation des données personnelles... 183 6.2. Le tableau de bord du membre... 184 Modifier ou supprimer un profil... 185 6.3. Le tableau de bord d administration du site... 190 L accès restreint d un répertoire avec.htaccess... 191 Le tableau de bord... 192 6.4. Des aménagements dans l application... 198 6.5. En-têtes HTTP et variables globales... 201 En-têtes HTTP... 201 Variables PHP... 204 Variable d environnement... 205 6.6. Récapitulation... 207 7 Des algorithmes, des outils et des fonctions... 209 7.1. Tableaux... 210 Types d extraction... 212 Le pointeur... 213 Letri... 213 7.2. Calendriers, dates et autres agendas... 218 Durée après une date ou avant une date... 218 Affichage d un calendrier... 219 Un agenda à jour... 223 7.3. Un miniforum sur chaque page... 236 7.4. Sondages et concours... 239 Un sondage... 240 Un concours... 247 Les fonctions concernant le système de fichiers... 249 7.5. Compteurs et statistiques... 254
La réflexion... 254 Créer le compteur quotidien... 254 La page d affichage des statistiques de page... 256 7.6. Le chariot électronique... 258 La promotion... 259 Les prix... 260 Les tables à créer... 261 L action "acheter un produit"... 261 L action "voir le contenu du chariot"... 262 L action "commander les articles"... 263 7.7. Un magazine... 265 La réflexion... 266 Le formulaire pour entrer les images... 267 7.8. Une galerie photo... 270 Les données EXIF... 272 8 Moteurs de recherche et expressions rationnelles. 275 8.1. Un annuaire de liens... 276 Analyse du besoin... 276 Réflexions... 277 Élaboration des applications... 279 Moteur de recherche... 295 8.2. Les expressions rationnelles... 301 La méthode... 301 POSIX... 302 Les fonctions compatibles Perl... 307 8.3. Conclusion... 319 9 Parsez-vous XML?... 321 9.1. Un peu d histoire...... 322 9.2. Le fichier XML... 323 L espace de nommage... 323 Les éléments et les attributs... 323 9.3. La DTD... 326 Les différents types de déclarations... 326 9.4. Le XSLT... 328 L espace de nommage... 328 La feuille de style... 329 Les modèles... 330 9.5. Le fichier PHP... 332 9.6. Magasin électronique en XML... 332 La conception de la boutique... 333 Création du fichier XML... 333 Création d un nouveau fichier CSV à partir d un fichier XSLT... 335 Le fichier XSLT de la boutique... 336 Le fichier PHP de la boutique... 339
9.7. SimpleXML... 340 9.8. Conclusion... 342 10 Les frameworks ou cadriciels PHP... 345 10.1. Une méthodologie de travail... 347 10.2. L architecture Modèle/Vue/Contrôleur... 348 Modèle... 348 Vue... 348 Contrôleur... 349 10.3. Xataface, donnez un visage humain à votre base de données.. 349 L architecture... 350 Les tables... 352 Application Déléguée dans le répertoire conf... 354 Conclusion... 354 10.4. CakePHP, c est du gâteau... 355 10.5. JOOMLA, le meilleur gestionnaire de contenu... 357 Drupal contre Joomla... 360 10.6. Conclusion... 361 11 Mettre de l ordre... 363 11.1. Avant... 365 11.2. Après... 366 11.3. Le débogage... 366 11.4. Sachez anticiper... 369 12 La traversée de l écran... 371 12.1. La communication sur le Web... 373 L humour... 374 Le soutien... 374 Les émoticônes... 375 La nétiquette... 375 La mise à jour régulière... 376 La navigation... 376 Le référencement... 377 12.2. Conclusion... 377 13 PHP 6 en ligne de mire... 379 13.1. Unicode... 380 13.2. Le paramètre Register Globals n est plus disponible..... 381 13.3. Les Magic Quotes sont retirées... 382 13.4. Le Safe Mode n existe plus... 382 13.5. Utiliser Freetype 2 et GD 2... 383 13.6. Plus de HTTP_*_VARS... 383
13.7. Les extensions in et out... 383 13.8. Les ajouts... 383 14 Annexe... 387 14.1. PHP... 388 PHP Hypertext Preprocessor... 388 PHP Builder, the Resource for PHP developers... 389 PHP Index, la Passerelle française des technologies PHP... 389 Nexen... 390 PHP Facile... 391 ASP-PHP.NET... 391 PHP France... 392 PHP Heaven... 393 AFUP... 393 14.2. MySQL... 395 MySQL... 395 Nexen... 396 14.3. Autres... 396 Apache... 396 Easyphp... 397 14.4. Outils... 398 Éditeurs... 398 FTP... 400 Personnels... 401 14.5. Applications en PHP... 403 14.6. Les portails... 405 Typo3... 405 Spip... 405 14.7. Hébergement... 405 Gratuit... 405 Payant... 406 Noms de domaine... 407 14.8. Référencement... 407 Référencement 2000... 407 14.9. HTML et Javascript... 407 All HTML... 407 Le Journal du net... 408 Comment ça marche... 408 14.10.Les groupes de news... 408 Pour écrire à l auteur de ce livre... 408 15 Index... 409