![]()
|
||||||||||||
|
dernière mise à jour le
27/08/2006 |
Le livre d'or de TmPPrincipeLe principe du livre d'or n'est pas très compliqué. C'est principalement un accès à une base de données MySQL. La table associée au livre d'or s'appelle livre_or. Elle contient 5 colonnes : Date, Nom, Mail, Message et ID. ID est autoincrémenté, il est donc inutile de le mettre dans la requête d'ajout. L'intérêt de ce script est qu'il se suffit à lui-même : le formulaire d'ajout appelle la page elle-même ce qui évite d'avoir à utiliser une petite page externe ne contenant que trois mots de remerciement. De plus, la personne rajoutant un message le voit tout de suite apparaître dans la liste. La seule difficulté du script, peut-ête, est la façon de gérer l'affichage sur plusieurs pages. Il y a une variable, passée en paramètre dans l'URL (page) qui indique le numéro de la page à afficher. Cette variable est initialisée à 0 pour la première page, 1 pour la deuxième... S'il n'y a pas de paramètre page dans l'URL, ou si c'est une valeur négative, on prend la valeur 0, et si on demande une page trop avancée (page 10 alors qu'il n'y a que 3 messages en tout et pour tout à afficher), on considère que l'on demande la dernière page. Voir l'affichage des messages. ImplémentationLe script PHP peut être découpé en 2 parties : une première partie traitant l'éventuel message à ajouter, et une deuxième traitant l'affichage des messages enregistrés. Les deux manipulations se font toutefois avec une seule et même connexion au serveur MySQL. Nouveau messageOn utilise un formulaire avec une méthode POST. Ceci a l'avantage de permettre des passages de messages longs et de laisser la barre d'URL des navigateurs propre. Autre intérêt pour la programmation en PHP : on récupère directement des variables PHP initialisées avec les données entrées dans le formulaire. La première chose à faire est vérifier que toutes les informations nécessaire à la validation du message sont là : Le htmlentities permet de tranformer les éventuels codes HTML écrits dans le message dans un format qui ne sera pas interprété par le navigateur. Lorsqu'il manque quelque chose, on affiche un message. Sinon, on ajoute le message dans la table : On avait auparavant calculé la date comme suit : $date = date("YmdHis", time());Affichage des messagesIci, rien de particulier. On fait une requête auprès du serveur pour récupérer les messages, et on les affiche avec une mise en page. Pour ne pas trop charger la page, on n'en affiche que 10 à la fois . La seule subtilité est la gestion de l'affichage sur plusieurs pages. Pour savoir quelle page afficher, on utilise une variable (page) passée en argument dans l'URL. La première chose à faire est donc de récupérer cette variable. Cela se fait très simplement avec la fonction parse_str qui a pour principal avantage de créer les variables detectées : parse_str(getenv("QUERY_STRING"));On se retrouve donc avec une variable $page. Après, ce n'est qu'un jeu pour déterminer les messages à récupérer. Dans le cas de ce script, on effectue une requête sur tous les messages en cours, et avec mysql_data_seek, on ne garde que les messages intéressants : Auparavant, on a fait des tests pour savoir quelle page exactement afficher : Au début de programme : Puis après avoir récupéré le nombre de messages ( Dernier point : lorsqu'il manque un élément nécessaire à la validation du message, les autres données valables sont recopiées dans leur champ par un dernier script PHP : Et ainsi de suite avec $mail et $message. Ce qui se passe en fait est que ces trois variables ($nom, $mail et $message) sont toujours ajoutées ; elles sont initialisées à chaque fois avec les valeurs envoyées par le formulaire et remise à zéro lorsque le message à été ajouté. Tout à la fin, il ne reste plus qu'à afficher des liens vers les pages précédentes ou suivantes en fonction du numéro de la page affichée. Fonctions utiles
|
|||||||||||
|
Copyright © 2000-2006 themanualpage.org - Ce site est soumis aux conditions décrites dans les licences GNU GPL et FDL. |
||||||||||||