MySQL et CSS- P1

Chia sẻ: Thanh Cong | Ngày: | Loại File: PDF | Số trang:50

0
86
lượt xem
13
download

MySQL et CSS- P1

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

MySQL et CSS- P1: Dans la première partie, lancez-vous dans la création de votre premier site web dynamique en PHP. Au travers d’exemples simples et concrets, apprenez à votre rythme à développer un site web complet, relié à une base de données MySQL

Chủ đề:
Lưu

Nội dung Text: MySQL et CSS- P1

  1. Please purchase PDF Split-Merge on www.verypdf.com to remove this waterma
  2. Copyright © 2009 Micro Application 20-22, rue des Petits-Hôtels 75010 PARIS 1re Edition - Mars 2009 Auteur Jean CARFANTAN Toute représentation ou reproduction, intégrale ou partielle, faite sans le consentement de MICRO APPLICATION est illicite (article L122-4 du code de la propriété intellectuelle). Cette représentation ou reproduction illicite, par quelque procédé que ce soit, constituerait une contrefaçon sanctionnée par les articles L335-2 et sui- vants du code de la propriété intellectuelle. Le code de la propriété intellectuelle n’autorise aux termes de l’article L122-5 que les reproductions strictement destinées à l’usage privé et non destinées à l’utilisation collective d’une part, et d’autre part, que les analy- ses et courtes citations dans un but d’exemple et d’illustration. Avertissement Les informations contenues dans cet ouvrage sont données à titre indicatif et aux utilisateurs n’ont aucun caractère exhaustif voire certain. A titre d’exemple non limitatif, cet ouvrage peut vous proposer une ou plusieurs adresses de sites Web qui ne seront plus d’actualité ou dont le contenu aura changé au moment où vous en prendrez connaissance. Aussi, ces informations ne sauraient engager la responsabilité de l’Editeur. La société MICRO APPLICATION ne pourra être tenue responsable de toute omis- sion, erreur ou lacune qui aurait pu se glisser dans ce produit ainsi que des conséquences, quelles qu’elles soient, qui résulteraient des informations et indications fournies ainsi que de leur utilisation. Tous les produits cités dans cet ouvrage sont protégés, et les marques dépo- sées par leurs titulaires de droits respectifs. Cet ouvrage n’est ni édité, ni pro- duit par le(s) propriétaire(s) de(s) programme(s) sur le(s)quel(s) il porte et les marques ne sont utilisées qu’à seule fin de désignation des produits en tant que noms de ces derniers. ISBN : 978-2-300-017599 Couverture réalisée par Emilie Greenberg MICRO APPLICATION Support technique 20-22, rue des Petits-Hôtels Également disponible sur 75010 PARIS www.microapp.com Tél. : 01 53 34 20 20 Fax : 01 53 24 20 00 http://www.microapp.com Retrouvez des informations sur cet ouvrage ! Rendez-vous sur le site Internet de Micro Application www.microapp.com. Dans le module de recherche, sur la page d’accueil du site, entrez la référence 1759 à 4 chiffres indiquée sur le présent livre. Vous accédez directement à sa fiche produit.
  3. Avant-propos Cette collection fournit des connaissances essentielles sur un sujet donné sans jamais s’éloigner de leur application pratique. Les volumes de la collection sont basés sur une structure identique : ¶ Les puces introduisent une énumération ou des solutions alternatives. 1. La numération accompagne chaque étape d’une technique. Il s’agit d’informations supplémentaires relatives au sujet traité. Met l’accent sur un point important, souvent d’ordre technique, qu’il ne faut négliger à aucun prix. Propose conseils et trucs pratiques. Conventions typographiques Afin de faciliter la compréhension des techniques décrites, nous avons adopté les conventions typographiques suivantes : ¶ Gras : menu, commande, boîte de dialogue, bouton, onglet. ¶ Italique : zone de texte, liste déroulante, case à cocher, bouton radio. ¶ Police bâton : touche, instruction, listing, texte à saisir. ¶ ✂ : indique un retour ligne volontaire dû aux contraintes de la mise en page.
  4. PHP & MySQL
  5. 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
  6. 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
  7. 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 Le tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
  8. 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. 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
  10. 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
  11. Préface Ce livre s’adresse à tous les publics. Que vous soyez débutant, webmestre ou programmeur, vous tirerez profit de cet ouvrage en vous amusant. Si vous avez l’intention de créer un site Internet mais que vous vous sentiez démuni, incapable, dépassé, PHP & MySQL en ligne constitue le début idéal de votre aventure. Les pages qui vont suivre sont issues de ma pratique quotidienne d’analyste-programmeur et de webmestre. J’ai veillé à parsemer ce livre d’astuces et d’exemples complets avec des explica- tions claires et une évolution progressive. Pour cette deuxième édition, nous abordons PHP 5, qui entame une vraie révolution dans la manière d’appréhender le code et la grammaire. PHP 5 garde cependant une compatibilité ascendante qui garde opérationnelles des fonctions obsolètes. Les points saillants de cette révolution sont le renforcement de la programmation objet, l’arrivée d’une nouvelle base de données SQLite et un vrai espace pour le XML. Le langage PHP est un vrai continent, composé, pour la version 4, de plus de 2 700 fonctions et de 80 extensions. Au cours de notre exploration, vous apprendrez des méthodes et maîtriserez progressivement les outils dans le but de créer un site interactif. Vous étudierez donc les principales fonctions et notions du langage PHP. À travers des exemples, vous verrez comment créer facilement vos applications. En douceur et sans vous encombrer de notions superflues, vous assemblerez ces applications simples pour réaliser une application "complexe". Ce livre est fondé sur mon expérience. En 1994, j’étais vendeur de vidéo numérique dans une grande surface informatique (Surcouf) ; c’est là que j’ai découvert l’Internet. À cette époque, il existait peu de sites en français. J’ai d’ailleurs réalisé mon premier site en anglais. Après avoir enrichi ce site et arpenté longtemps l’Internet, j’ai voulu aller plus loin. C’est là que j’ai découvert le langage Perl, sous la forme d’un script capable de traiter des données de formulaire envoyées par e-mail. Par simple curiosité, j’ai acheté un livre, puis deux… et j’ai été happé par la programmation. Seul, j’ai donc réalisé des algorithmes de plus en plus complexes et acquis des méthodes. Double Poche PHP & MySQL • 13
  12. Introduction Après cinq ans de pratique, je suis entré en 1999 à l’IUT de Marne-la- Vallée pour étudier d’autres méthodes de programmation et aborder Java et le langage objet. À la sortie de l’université, mon diplôme en poche, j’ai intégré Nexus Développement, où j’ai pratiqué le langage PHP à temps complet pour le Web et expérimenté les bonnes (et mauvaises) méthodes de programmation. Pour restituer un savoir, il est nécessaire de l’expérimenter, c’est pourquoi j’ai emprunté pour vous des chemins que je n’avais jamais foulés auparavant. De ce fait, ce livre est utile pour des programmeurs chevronnés. Au long de cet ouvrage, j’ai eu à cœur de rester accessible à tous. Quels que soient votre âge et vos connaissances, vous pourrez programmer. La complexité réside non pas dans le langage PHP — l’outil est simple —, mais dans la conception de votre programme, dans son architecture et sa richesse. Un langage est fait pour la communication hommes/hommes, hommes/ machines et machines/machines. La plus grande compétence d’un analyste-programmeur reste sa capacité à concevoir, à communiquer et à adapter son outil. L’outil est au service d’une fonction. Les langages deviennent trop souvent des chapelles de spécialistes, de savantes cons- tructions mentales qui perdent de vue leur fonction et brillent uniquement dans les yeux des experts. Périodiquement, des langages tombent dans l’oubli parce qu’ils ont oublié la vie. L’informatique, comme le droit ou la médecine, peut malheureusement devenir une affaire d’experts en jargon. Ainsi, certains spécialistes sont à même de manipuler un client pour le faire payer des prestations interminables. Le langage PHP est différent. J’aimerais que ce langage soit enseigné à l’école car les élèves peuvent programmer facilement et obtenir des résultats immédiats, ce qui les encourage à approfondir. Tout langage de programmation enseigne la rigueur et la structure. La programmation informatique ouvre sur les mathématiques, bien sûr, par la logique, mais aussi sur la grammaire et la rédaction, par son souci de précision et la nécessité de communiquer convenablement. Il est indispensable d’être compris par l’internaute sur un site mais également par le collègue qui reprendra le programme derrière vous. 14 • Double Poche PHP & MySQL
  13. Introduction Je dédie ce livre à mon père, Maurice, qui a toujours encouragé mon goût d’apprendre, et à mon filleul cambodgien, Touch Ra, qui un jour, je l’espère, pourra lire cet ouvrage et s’amuser avec du code informatique, s’il le souhaite. Double Poche PHP & MySQL • 15
  14. 1 Introduction
  15. 1 Introduction PHP. Encore un sigle comme l’informatique les affectionne. On fait souvent des plaisanteries sur leur signification. Pourtant, les inventeurs de langage, ces forgerons de la syntaxe, possèdent aussi de l’humour, c’est pourquoi fréquemment, surtout dans la communauté du Libre (ou Open Source), le nom du langage est fondé sur une plaisanterie pour initiés (private joke). Ainsi, comme Java signifie café en argot américain, il faut croire que la cafetière a fourni le carburant aux créateurs de ce langage. PHP est d’abord le sigle de Personal Home Page. Rasmus Lerdorf, son concepteur, s’est souvenu des fonctions récursives et l’a baptisé (PHP Hypertext processor). Si vous développez le sigle, vous générez une boucle infinie, crainte des programmeurs. PHP signifie PHP Hypertext Processor Hypertext Processor Hypertext Processor… C’est une fonction "Vache qui rit", suivant la logique de cette boîte de fromage célèbre qui affiche une vache avec des boîtes comme boucles d’oreille affichant une vache avec des boîtes… Justement, les boucles sont les éléments qui caractérisent un langage de programmation. Reportez-vous au chapitre intitulé Les clefs du PHP pour obtenir plus de détails sur la fonction récursive et les boucles. 1.1 Naissance de ce langage Le langage PHP est né en 1994 d’un programme en langage Perl écrit par Rasmus Lerdorf pour analyser les visites de son CV en ligne. Il réécrit l’application en langage C puis ouvre son programme à la communauté du Libre. Ainsi, il pourra désormais compter sur l’aide de nombreux développeurs. Son application PHP fusionne avec un moteur de traitement de formulaires, FI, ce qui donne la version 2. Avec la version 3, les fonctions deviennent nombreuses et la popularité grandit. 1.2 Evolution du langage Le langage PHP a encore beaucoup évolué. Nous en sommes actuellement à PHP 6. Les usagers ne sont pas obligés de prendre le train à chaque avancée technique pour plusieurs raisons : ¶ De nombreux sites en production sont faits en PHP 3 ou PHP 4 et fonctionnent très bien ; 18 • Double Poche PHP & MySQL
  16. Intérêt de ce langage ¶ Les hébergeurs de sites proposent souvent une configuration PHP 4 ; ¶ Le langage objet demande un raisonnement plus élaboré. Plusieurs raisons peuvent pousser à changer de version : ¶ Une plateforme ou framework passe à cette version et nous intéresse ; ¶ Par défi et goût d’apprendre de nouvelles syntaxes ou cadres de travail . Reportez-vous au chapitre intitulé Les frameworks ou cadriciels PHP pour obtenir plus de détails sur le sujet. 1.3 Intérêt de ce langage PHP est libre, portable et facile à comprendre. C’est un langage pour tous. Ce n’est pas un langage ésotérique destiné uniquement aux profession- nels, avec un jargon incompréhensible. Certains langages dits complexes sont à la mode car leur complexité permet à des entreprises de passer beaucoup de temps sur des applications cher payées. Le langage PHP est suffisamment souple, robuste et rapide pour intéresser les professionnels et sa richesse d’outils en fera, dans les années qui viennent, le langage privilégié de toutes les entreprises. La liberté PHP est gratuit. Ainsi, la plupart des hébergeurs gratuits le proposent avec la base de données MySQL, gratuite elle aussi. Libre signifie également que toute personne peut l’enrichir, à condition d’en faire profiter tout le monde gracieusement. À l’intérieur de la communauté du Libre, les licences déclinent des droits d’auteur distincts. En effet, Libre ne signifie pas que tout est permis ni que tout est gratuit. Le langage PHP évolue constamment grâce à une communauté de 200 développeurs environ. La documentation est continuellement mise à jour et des milliers de sites à travers le monde s’y consacrent en publiant des articles, des forums, des astuces ou en proposant des applications gratuites. Le langage PHP est porté par une vague de popularité qui ne cesse de croître. Nous espérons à travers cet ouvrage participer modestement à son essor. Double Poche PHP & MySQL • 19
  17. 1 Introduction La communauté du logiciel libre (communauté du Libre) En 1969, les chercheurs ressentent le besoin de partager leurs travaux. Ils créent donc un réseau de machines. Le système d’exploi- tation Unix est inventé la même année. Il définit l’ordinateur comme un nœud de communication. Ce système fonctionne sur tout type de machine. Les deux inventions constituent les fondations d’Internet. La coopération engendrée par ce réseau de chercheurs accélère le rythme des découvertes et des inventions. Vers la fin des années 70 se créent les grandes entreprises de logiciels. Le droit sur le logiciel apparaît, posant que le logiciel appartient à celui qui l’a créé. L’auteur (individu ou société) a le droit exclusif de le copier, de le distribuer et de vendre une licence à un utilisateur. La licence donne à l’utilisateur le droit d’installer le programme sur sa machine, de l’exécuter et d’en faire une copie de sauvegarde. Les éditeurs de logiciels dissimulent le code source pour empêcher quiconque de se servir de leurs connaissances et d’en faire un produit concurrent. Ainsi, une guerre des standards se déclenche avec, à la clef, des profits extravagants. Dans cette course, seuls les plus gros survivent, ce qui nuit à la concurrence et rend le marché dépendant de certains produits. Un chercheur qui partageait ses découvertes, Richard Stallman, s’aper- çoit que ses connaissances sont utilisées par des entreprises qui vendent leurs produits sans qu’il en reçoive un quelconque retour. Il imagine alors la GPL (General Public License). Cette licence accorde à l’utilisateur le droit de diffusion, d’utilisation et de modification. Une clause supplémentaire donne l’obligation d’utiliser la même licence, que le logiciel soit modifié ou non. En 1991, le Finlandais Linus Thorvalds invente Linux, un système d’exploitation libre et gratuit. Le combat actuel contre le brevet logiciel a lieu dans ce contexte car son application signifierait, à terme, la mort du Libre. La portabilité PHP peut être exécuté sur n’importe quelle machine. Les programmes que vous créerez dans ce livre sont exécutables sur Unix, Linux, Windows ou Macintosh. Cette caractéristique vous affranchit des décisions prises par Microsoft ou Apple et sécurise l’avenir de votre application. 20 • Double Poche PHP & MySQL
Đồng bộ tài khoản