MySQL et CSS- P8

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

0
45
lượt xem
9
download

MySQL et CSS- P8

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

MySQL et CSS- P8: 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- P8

  1. Xataface, donnez un visage humain à votre base de données leur apparence aux pages ou à des parties de page. Il suffit de créer un dossier de même nom dans l’application particulière en y insérant un fichier template modifié, avec le même nom de fichier, pour qu’il soit utilisé en lieu et place de l’original. Index.php Le fichier index.php indique la vue par défaut de l’application, le chemin vers le fichier xataface-public-api.php et l’URL vers le répertoire de Xataface sur le serveur. Ensuite, il charge une instance de l’objet Xataface et l’affiche dans l’interface standard ou une autre interface : $time = microtime(true); if (!@$_GET[’-sort’] and @$_GET[’-table’] == ’fichestravaux’){ $_GET[’-sort’] = ’moment desc’; $_REQUEST[’-sort’] = ’moment desc’; $_GET[’-table’] = ’fichestravaux’; $_REQUEST[’-table’] = ’fichestravaux’; } if (empty($_GET[’-action’])) $_GET[’-action’] = "list"; require_once ’/var/www/html/dataface-0.7.1/dataface-public-api.php’; // include the initialization file df_init(__FILE__, ’http://lintranet/dataface-0.7.1’); // initialize the site $app =& Xataface_Application::getInstance(); // get an application instance and perform initialization $app->display(); // display the application; ?> conf.ini Le fichier conf.ini est un fichier texte qui contient la configuration générale comprenant le codage des caractères, la langue, les coordonnées de connexion à la base de données MySQL, les tables qui s’afficheront, les coordonnées de l’authentification et les préférences. Chaque partie dans ce fichier est introduite par le nom entre crochets : [languages], [_database], [_tables], [_auth], [_prefs]. Ces 5 parties gèrent respectivement la langue du site, les données de connexion de la base de données, les tables qui seront affichées, la table et les champs utilisés pour l’authentification et les préférences d’affichage. Double Poche PHP & MySQL • 351
  2. 10 Les frameworks ou cadriciels PHP b Figure 10.4 : Exemple d’arborescence Les tables Ensuite, la partie la plus importante est celle des tables. Le répertoire tables contient un répertoire pour chaque table, chaque répertoire portant le nom de la table.Ces répertoires contiennent 3 fichiers texte avec une extension .ini. fields.ini Le premier, fields.ini, est attaché aux champs du formulaire qui attaque- ront la table pour agir sur les données. Ce fichier permet de choisir les champs qui seront affichés, d’agir sur leur nature, sur leur mode d’affichage, sur l’ordre d’affichage... Le fichier .ini est un fichier texte où les lignes commençant par un ; sont des commentaires. relationships.ini Le deuxième, relationships.ini, contient les modalités de relation entre la table et les autres tables (clé étrangère) : Le code est de type : table.id = "$id_table" Ici le premier membre désigne la clé étrangère de la table en relation et le deuxième membre concerne la clé de la table courante. 352 • Double Poche PHP & MySQL
  3. Xataface, donnez un visage humain à votre base de données Ou alors, il est possible d’y inscrire une requête SQL qui identifie la relation entre les deux tables. __sql__ = "SELECT * FROM table1, table2 WHERE table1.id= table2.id_table1" Plusieurs relations peuvent ainsi être définies sur ce même fichier, chaque table étrangère étant identifiée par [table1], [table2]... valuelists.ini Ce fichier regroupe les valeurs des champs de sélection (select, checkbox, boutons radio...) et celles des champs autocomplétés. Autocomplétion L’autocomplétion est cette fonction qui, quand on commence à saisir un mot dans le champ d’un formulaire, fait apparaître une liste de mots commençant par les mêmes lettres et qui ainsi peuvent être validés comme valeur du champ. Ces valeurs sont données sous forme de liste ou par une requête SQL sur une valeur : [select_OUI] __sql__ = "SELECT clef, libelle from select_OUI" [Creneaux] M = Matin A = Après-midi J = Journée Classe pour la table La classe de la table peut être créée quand le besoin de fonctions originales se fait sentir. Ainsi il peut être nécessaire de formater les dates dans les champs date ou d’afficher une valeur par défaut dans un champ quelconque. Le fichier prend le nom de la table table.php, table étant mis pour le nom de la table et donc du répertoire où le fichier se trouve. Double Poche PHP & MySQL • 353
  4. 10 Les frameworks ou cadriciels PHP class tables_repertoires { function after_action_new(){ header(’Location: ’.’http://www.monsite.net/admin/ index.php?-action=list&-table=’.@$_REQUEST[’-table’]); exit; } } Les fonctions ont des conventions de nommage dans la classe. Ainsi, par exemple, cette fonction est déclenchée une fois qu’on a créé une nouvelle entrée dans une table quelconque comme repertoires. Cette fonction, dans cet exemple, affiche la liste des répertoires dans la table. De nombreuses fonctions existent, en particulier pour afficher une date avec un format spécifique, ou afficher par défaut les valeurs d’un champ, avec, à chaque fois, une convention de nommage dans le nom de la fonction. Application Déléguée dans le répertoire conf L’application Déléguée est une application qui agit sur toutes les actions déployées. Ainsi ce fichier peut contenir l’authentification. Il se trouve dans le répertoire conf : class conf_ApplicationDelegate { function getPermissions(&$record){ $auth =& Dataface_AuthenticationTool::getInstance(); $user =& $auth->getLoggedInUser(); if ( !isset($user) ) return Dataface_PermissionsTool::NO_ACCESS(); $role = $user->val(’role’); return Dataface_PermissionsTool::getRolePermissions($role); } } Cette fonction, ici, identifie chaque utilisateur et retourne la permission qu’il détient. Il est possible d’affiner la granularité en définissant les accès aux tables et même aux champs d’un formulaire qui dès lors que l’usager n’y aura pas accès, ne sera pas actif. Conclusion Xataface permet de monter un site en quelques minutes. Ce qui prend le plus de temps est de changer l’interface graphique mais si vous créer juste une application pour quelques personnes, elle sera opérationnelle immé- 354 • Double Poche PHP & MySQL
  5. CakePHP, c’est du gâteau diatement. Une autre utilisation possible consiste à créer toute l’adminis- tration d’un site qui lui, se sert de la base de données gérée par Xataface. C’est une plateforme dont on ne peut plus se passer une fois qu’on y a goûté. La documentation est encore en anglais mais l’application a été traduite et la prochaine version sera plus aboutie, avec une traduction plus complète et une documentation en français. 10.4 CakePHP, c’est du gâteau Le projet CakePHP (www.cakephp.org, www.cakepourtous.org) a dé- marré en 2005, avec comme ambition de proposer un Ruby on Rails pour PHP. Ruby on Rails ou RoR Ruby on Rails est sorti en juillet 2004 et a été créé à partir du langage Ruby qui est un langage de script orienté objet. La sortie de RoR fut un coup de tonnerre dans la communauté des développeurs car il répondait exactement aux exigences d’interactivité du Web 2.0. Il permettait de créer rapidement un site avec du code concis, peu de configuration et de l’ajax pour la convivialité. Il est utilisé par un certain nombre de sites web 2.0. L’arborescence reflète parfaitement ce modèle. Le répertoire cake est le répertoire auquel le développeur ne touche pas, excepté quand il fait une mise à jour pour passer à la version supérieure de Cake. L’autre répertoire important est app qui contient l’application avec les dossiers models, controller et views. b Figure 10.5 : Cake Chaque partie de l’application doit avoir sa part de modèle, de contrôleur et de vue. À ces répertoires s’ajoutent le répertoire tmp qui contient les Double Poche PHP & MySQL • 355
  6. 10 Les frameworks ou cadriciels PHP fichiers de cache, de sessions, de logs et tous les fichiers temporaires. Le dossier config contient les rares fichiers de configuration dont les réglages pour la base de données. Le dossier vendors sert à ajouter des scripts à l’application. Un autre dossier vendors, situé en dehors du répertoire app, rassemble les scripts génériques destinés à toutes les applications. m Figure 10.6 : www.cakephp.org Cake offre les mêmes fonctionnalités que Xataface, avec un plus large spectre (différents types de bases de données) mais aussi plus de complexité. Cake simplifie l’usage des bases de données et il présente un certain nombre de caractéristiques. Cake utilise le mod_rewrite d’Apache pour réécrire les URL à la volée. Ainsi l’URL http://localhost/club/edit/1/ ira chercher le contrô- leur club, la méthode edit(), le modèle pour aller trouver la donnée avec l’id 1 puis l’affichera dans la vue edit.thtml. C’est très logique et pour utiliser cette application, il suffit de se conformer à ces conventions. En ajoutant la variable $scaffold (échafaudage) dans le contrôleur, Cake crée les fichiers par défaut. Il suffit ensuite de les modifier pour les rendre conformes au résultat désiré. var $scaffold; 356 • Double Poche PHP & MySQL
  7. JOOMLA, le meilleur gestionnaire de contenu Sous le dossier app, il reste deux dossiers importants : webroot qui contient tous les fichiers qui apparaissent en vitrine (images, css, javascript...) et le dossier helpers. Ces helpers ou aides sont des fichiers PHP qui modifient l’affichage d’un élément dans les vues. Il existe des helpers natifs pour Cake comme les helpers HTML qui permettent au développeur d’écrire son code très rapidement. Ainsi pour écrire le code d’une aire de texte : $html->textarea(’Note/body’, array(’cols’=>’60’, ’rows’=>’10’)); La notion de rappel (callback) qui a déjà été vue pour Xataface intervient. Ainsi une action déclenche une nouvelle action qui se déroule avant ou après. Cake est une application copiée sur Ruby on Rails ; la conception est dérivée de Ruby contrairement à Xataface qui est plus axée MySQL et PHP et respecte davantage l’esprit de Ruby on Rail dans un sens de légèreté. 10.5 JOOMLA, le meilleur gestionnaire de contenu Joomla (www.joomla.fr) est le meilleur gestionnaire de contenu car il est très complet et utilisé largement. Ainsi, il enrôle de nombreux déve- loppeurs et contient de nombreuses fonctionnalités pour répondre à diverses situations. Joomla est né d’une scission avec la plateforme Mambo. Joomla signifie "tous ensemble" en Swahili. b Figure 10.7 : Joomla Le principe de ce type d’application est que le contenu est géré séparément de la présentation : ¶ Ils permettent à plusieurs rédacteurs de travailler sur un même document. Double Poche PHP & MySQL • 357
  8. 10 Les frameworks ou cadriciels PHP ¶ Ils suivent un document de la conception à la publication. ¶ Ils regroupent et gèrent des documents de nature différente (articles, documents à télécharger, formulaires, FAQ, calendriers d’événe- ments...). Joomla permet de séparer la technique web de la rédaction de billets. Ainsi un site Joomla a un webmestre qui s’occupe de la technique et plusieurs rédacteurs pour rédiger le contenu. Les rédacteurs sont aidés par des traitements de texte avec leur barre de texte et des mini-calendriers pour choisir une date et l’insérer dans un bon format. m Figure 10.8 : Joomla À une plateforme commune s’agglutinent des extensions, petites applica- tions qui ajoutent des fonctionnalités au tronc commun. Joomla est donc un standard avec une grande diversité en raison de ses extensions. Cette diversité explique aussi la possibilité de failles de sécurité ou d’impasses, l’extension n’étant plus mise à jour au gré des nouvelles versions de Joomla. 358 • Double Poche PHP & MySQL
  9. JOOMLA, le meilleur gestionnaire de contenu Permissions Joomla propose un diagnostic de votre site à l’installation. Un certain nombre de répertoires demandent une permission 0777 pour l’installation. Veillez à remettre 0755, une fois l’installation finie. Les extensions personnalisent Joomla. Elles sont de quatre types : ¶ Les composants sont des mini-applications, agissant aussi bien en avant-scène (frontend) qu’en coulisses (backend ou administration) et rattachées souvent à une ou plusieurs tables de la base de données. ¶ Les modules sont des éléments d’interface qui se trouvent générale- ment dans les colonnes de droite et de gauche dans la page d’accueil. Ils présentent souvent une information, des liens d’une manière différente pour les mettre en valeur. ¶ Les mambots sont des fonctions qui sont actionnées par des événe- ments et permettent de transformer les informations avant leur affichage. ¶ Les templates (ou patron, comme des patrons de couture) sont la peau dans laquelle se glisse l’application. Un patron est composé d’un fichier PHP, d’images et d’un ou plusieurs fichiers CSS pour régler l’apparence de votre site. Choisir Joomla 1.0.15 ou 1.5 La version 1.0.15 est la plus ancienne et propose 2 700 ex- tensions qui fonctionnent. La version 1.5 est internationalisée et elle est normalisée pour un développement. Si les extensions sont primordiales, il vaut mieux adopter l’ancienne version. Si c’est pour un nouveau site où les extensions ne sont pas fondamentales, il vaut mieux passer au 1.5.1 directement. Le code a été simplifié et normalisé. Son développement a demandé deux ans de travail. Double Poche PHP & MySQL • 359
  10. 10 Les frameworks ou cadriciels PHP Drupal contre Joomla b Figure 10.9 : Drupal Un autre CMS très complet et bien écrit est Drupal (http://drupalfr .org/ ).Son code est mieux écrit et répond mieux aux normes de codage. Il a cependant moins de thèmes et d’extensions disponibles. S’il fallait départager les deux, il faudrait tenir compte de l’utilisation et du type de site. Drupal 6.8 permet : ¶ de créer un site multi-sites et donne plus de latitude pour moduler les catégories ; ¶ de déployer une granularité plus fine des permissions ; ¶ de modifier facilement les quelques thèmes pour les rendre originaux ; ¶ de monter un site communautaire avec de nombreux membres ; ¶ de l’intégrer dans d’autres sites grâce à son code aux normes. Joomla 1.5.8 est : ¶ facile à comprendre, à installer et à enrichir ; ¶ implémenté avec un espace d’administration ergonomique ; ¶ parasité par des interactions entre les modules (SEF…) et des bogues dû à un code mille-feuilles ; ¶ difficile à intégrer à d’autres sites ; ¶ riche d’innombrables modules et extensions. 360 • Double Poche PHP & MySQL
  11. Conclusion 10.6 Conclusion m Figure 10.10 : Ruby on Rails Les plateformes sont des aides précieuses pour créer de nouveaux sites, collaborer et maintenir un site web évolutif mais elles ne peuvent servir pour reprendre un site déjà fait. PHP est un langage de script très souple et un site web peut être créé de multiples façons dans l’architecture et la syntaxe ; les cadriciels imposent un certaine "normalité" dans le code et la méthode, ce qui rend plus facile la maintenance et accélère les temps de développement, une fois les conventions assimilées. Certains d’entre vous souhaiteront aller boire à la source et utiliseront Ruby on Rails (www.rubyonrails.org) et le langage Ruby (www .ruby-lang.org/fr/), d’autres employant le PHP5 s’orienteront vers Symfony (www.symfony-project.org) mais le système reste le même et le langage PHP a tout à gagner dans le développement et le foisonnement de ces plateformes. Double Poche PHP & MySQL • 361
  12. 11 M ettre de l’ ordre
  13. 11 Mettre de l’ordre Vous voilà maintenant avec un certain nombre de fichiers et d’applications codées sur des centaines de lignes. Vous pouvez continuer à créer de nouvelles applications, si vous aimez concevoir et développer, ou choisir de vous pencher sur l’architecture de vos applications et leur maintenance, pour construire vraiment et améliorer les fichiers au fur et à mesure que vous progressez. Vous changerez ainsi le code circonstanciel en code élégant, réutilisable et explicite. L’application idéale pourra être placée sur n’importe quel serveur et fonctionnera sans modification. Si des changements sont nécessaires, créez des variables que vous grouperez en tête de fichier. Une autre solution, si vous avez de nombreuses variables à modifier, consiste à créer un fichier de configuration que vous incluez en tête d’application. Personne n’aime se replonger dans des vieilleries pour les trier. Aujourd’hui, votre application est nouvelle et vous codez avec lyrisme, emporté par l’enthousiasme. Tout vous paraît clair. Telle variable possède une utilité évidente, telle autre s’articule avec telle donnée. Mais demain, un de vos utilisateurs trouvera peut-être un bogue, vous aurez appris de nouvelles façons de coder du langage PHP ou la nouvelle version du moteur PHP sera sortie et vous aurez envie d’uniformiser votre code, ce qui n’est pas forcément une bonne idée. Pourquoi toucher en effet à une application qui remplit son rôle ? Ce jour-là, vous comprendrez à peine la logique qui a présidé à vos applications construites sans méthode. Pour qu’une application vive, elle doit être conçue avec soin. Utilisez des conventions qui ne varient pas et vous donnent des repères. Par exemple, les noms de variables $resultat, $passage ou $rang, que vous employez dans chaque application, créeront des repères dans des applications de milliers de lignes. Aménagez des ruptures dans vos pages avec des barres obliques de commentaires pour marquer les limites d’un module indépendant. Commentez abondamment pour que la logique sous-jacente apparaisse. Expliquez vos choix. Donnez des noms explicites à vos variables et à vos fonctions. Au besoin, créez de la documentation technique. Sa rédaction vous obligera à préciser des points flous. Elle sera un élément déterminant pour communiquer avec d’autres développeurs. 364 • Double Poche PHP & MySQL
  14. Avant À certains endroits de votre application, vous aurez des idées de développement, de fonctionnalités supplémentaires pour l’utilisateur mais il se peut que vous soyez pressé par le temps. Si vous ne pouvez réaliser votre idée, prenez soin tout de même de l’exposer clairement dans vos commentaires ou une documentation à part. Créez un document qui répertorie les fonctions que vous avez conçues avec leur description. Imprimez-le et placez-le à votre portée. L’élaboration d’une application se fait en trois étapes : la conception et l’architecture, la réalisation, les tests. Ces trois étapes sont réalisées par une personne, ou trois ou quatre personnes disposant d’une plus grande spécialisation. Les termes varient selon les entreprises et l’aspect privilé- gié pour chaque tâche. 11.1 Avant m Figure 11.1 : Importance du travail préparatoire Essayez de prendre quelques jours de réflexion avant d’entrer dans votre application. Imaginez les différents moments de votre application, esquis- sez quelques lignes de code sans les développer. Explorer les directions Double Poche PHP & MySQL • 365
  15. 11 Mettre de l’ordre possibles à chaque aiguillage de votre arborescence. Si vous travaillez pour quelqu’un, essayez de lui faire préciser ses objectifs et les contraintes incontournables. Par exemple pour le magazine, il est intéressant de savoir combien de pages peut faire un article ou une rubrique, combien d’images, comment elles sont placées, comment est faite l’accroche… Préparez vos questions. La clarté d’une réponse dépend de la précision de la question. La relation au client est l’art de poser les questions avec des termes précis, clairement compris par l’interlocuteur. 11.2 Après Après la conception de l’application, des tests en profondeur sont indis- pensables. D’abord pour déceler les bogues qui peuvent se nicher dans des recoins insoupçonnés, aussi pour emprunter toutes les avenues ouvertes à l’internaute et vérifier que pour chaque action, une réponse est prévue. Votre application n’est pas linéaire, elle est arborescente et vous devez, en tant qu’auteur, visiter la moindre ramure. Dessinez un arbre de possibili- tés et certaines éventualités oubliées vous sauteront aux yeux. Rendez les pages d’erreur agréables à l’œil. Reprenez les fonctions qui retournent un résultat ou un entier booléen et créez un bloc d’exécution pour chaque erreur d’exécution. Incluez une fonction mail() qui vous envoie un courriel avec la variable $PHP_SELF pour avoir l’identité du fichier et le type d’erreur rencontré. N’oubliez pas de tester votre communication auprès de "candides". Soyez explicites dans vos indications sans noyer l’internaute avec des directives trop longues. Ceci fait l’objet du chapitre 11. 11.3 Le débogage Faire une erreur est facile, la déceler peut parfois demander beaucoup de temps et d’effort. Il existe plusieurs types d’erreur pour un programmeur. Cela va de la simple faute de frappe à une inversion de paramètres dans une fonction, en passant par une confusion de nom de variable. Les plus faciles à déceler donnent le numéro de la ligne fautive en précisant la cause du problème. Parfois, cette indication est une fausse amie car elle indique la dernière ligne de votre application, ce qui constitue souvent une erreur d’accolade, de parenthèse ou de guillemets. 366 • Double Poche PHP & MySQL
  16. Le débogage Une astuce pour les corriger consiste à faire une recherche multiple avec votre éditeur de code sur chaque élément de la paire pour les accolades et les parenthèses. Si le nombre de parenthèses ouvrantes et celui des parenthèses fermantes ne sont pas identiques, le problème se situe à cet endroit. Pour les guillemets, en général, la ligne faussement accusée est un peu plus bas que la fautive. Remontez et vous trouverez un guillemet manquant, un guillemet double qui répond à un guillemet simple, un guillemet interne sans signe d’échappement ou un point-virgule man- quant. Parfois ce ne sera pas si facile. Vos fonctions ne doivent pas contenir l’opérateur @ qui empêche l’affi- chage de l’erreur. Vous l’ajouterez une fois les tests effectués, en prenant soin de mettre un dispositif qui vous prévienne de l’erreur avec une identification claire du fichier et de l’erreur. Le débogage est d’abord une analyse. Elle consiste à séparer les éléments qui composent l’application afin de déceler la cause de l’erreur : séparer les éléments dans le temps et dans l’espace du code. Si vous avez déjà testé le code et qu’il fonctionnait jusqu’à tel moment, remontez la chronologie. La confusion vient souvent du fait que nous avons accompli plusieurs actions en même temps et que nous pouvons partir dans une mauvaise direction et compliquer la recherche. L’erreur s’est-elle produite quand vous avez changé de machine ou de serveur, ou simplement changé la configuration, ou la version de PHP ? Vérifiez l’ordre des paramètres dans les fonctions appliquées sur les chaînes de caractères ou sur les expressions rationnelles. Tab. 11.1 : Ordre des paramètres Fonction Place des éléments explode() Séparateur, texte split() Motif, texte ereg() Motif, texte ereg_replace() Motif, texte de provenance, texte de destination strchr() Texte, motif strstr() Texte, motif Double Poche PHP & MySQL • 367
  17. 11 Mettre de l’ordre Lorsque vous êtes certain que le problème vient du code, analysez votre code et clarifiez-en la structure en créant des blocs séparés par des lignes de barres obliques. Ensuite, appuyez-vous sur le code essentiel en désactivant les lignes qui ne font qu’améliorer votre algorithme. Pour les désactiver, mettez-les en commentaires, c’est-à-dire faites-les précéder de deux barres obliques. Le moteur PHP les prendra pour des lignes de commentaires et ne les exécutera pas. Dans le code restant, affichez la valeur des différentes variables, du début vers la fin. Nous avons suggéré précédemment de créer des ruptures dans vos applications pour délimiter les modules. Créez des points d’arrêt pour connaître la teneur des variables en sortie de traitement avec des echo $variable; exit; ou à l’intérieur des boucles avec exit ou break echo "$variable"; break; } exit; Ajoutez des return dans vos fonctions, ils ont pour effet d’arrêter l’exécution de la fonction et de retourner une valeur. Une fois que tout fonctionne comme vous le désirez, réactivez votre code secondaire par étapes. L’erreur peut provenir d’une partie du code qui neutralise l’autre partie. Si vous êtes dans les fonctions de systèmes de fichiers, vous voulez par exemple obtenir le filemtime en pensant obtenir le TIMESTAMP de la dernière modification du fichier. En fait, juste avant, vous devez utiliser le chmod() pour changer les propriétés du fichier. Cette commande va aussi modifier le filemtime(). Votre logique serait contradictoire. Vérifiez vos blocs conditionnels. Avez-vous un signe = ou == ? Les signes > ou < peuvent être à l’envers. Soyez méticuleux sur les noms de variables et les chemins de fichier. Une lettre manquante ou supplémentaire, et votre variable ne renverra aucune valeur, votre programme ne trouvera pas le fichier ciblé. Assurez-vous que le fichier ou le répertoire possède les permissions requises (chmod). 368 • Double Poche PHP & MySQL
  18. Sachez anticiper Si vous n’avez rien sur l’écran, affichez le code source dans le navigateur. Soit vous avez un code HTML tellement corrompu, notamment avec des tables, que le navigateur n’affiche rien, soit votre requête SQL contient une erreur et ne retourne aucun résultat. Souvent, le moteur PHP écrit une phrase d’erreur dans le code source qui n’apparaît pas dans la fenêtre du navigateur. L’erreur peut générer également un temps d’exécution trop important. Si vous avez une erreur d’affichage HTML, vous pouvez récupérer le code HTML obtenu et l’imprimer pour en voir les erreurs ou le mettre dans un éditeur HTML wysiwyg, comme Dreamweaver (sigle de What You See Is What You Get : ce que vous voyez est ce que vous obtenez). Pour une erreur de requête SQL, lancez la requête dans PhpMyAdmin pour déceler la cause. Si une requête n’est pas comprise par la base, vérifiez le nom des colonnes et la place des clauses. Simplifiez votre requête et testez-la en ajoutant les clauses peu à peu. Les clauses LIMIT ou ORDER BY sont toujours après la clause WHERE. Pour une insertion, avez-vous le même nombre de valeurs que de colonnes citées ? 11.4 Sachez anticiper Nous avons vu les fonctions, les variables communes, les constantes, l’authentification, la connexion à la base de données et les statistiques. Vous pouvez ajouter une fenêtre de publicité ou une gestion de vos bannières, une personnalisation de toutes les pages du site, y compris les pages qui ne font pas partie du club, pour tous ceux qui utilisent le cookie… Ces idées sont intéressantes. Elles vous demanderont de créer d’autres applications pour vos pages. Si vous avez de telles idées avant de créer votre site, vous gagnerez du temps et serez plus efficace. Avec la méthode des fichiers inclus, l’ajout d’applications supplémentaires sera cependant facilité. Faites en sorte d’avoir le moins de données à ajouter pour chaque application, comme dans le mini-forum où le nom de la table prend le nom du fichier en enlevant le chemin et l’extension au moyen d’une expression rationnelle. Utilisez au maximum des fonctions PHP pour avoir peu de paramètres à approvisionner. Dans vos applications, laissez la porte ouverte à des extensions de programmes afin que l’ajout d’applications ne commence pas par des tâches fastidieuses. Double Poche PHP & MySQL • 369
Đồng bộ tài khoản