Album photoForum-Chatt Livre d'or Liens-Cours Tutorial-Exo
Visite guidée
|
MAGICIEN D'ABOBE |
|
Attoumani Nadhoir Etudiant au Maroc, 3 eme année en Infor matique Industrielle est-un magicien de l' Adobe: lire la suite
|
|
Tout sur les Comores |
Voici des sites web sur les musiques,les actua lités et divers des Iles Comores,'pays des hommes intègres!!:' |
| |
| |
|
|
|
|
Réalisation d'un livre d'or avec PHP & MySQL (Tutorial écrit par : Chanfi) |
|
| |
|
| |
Introduction
Dans ce nouveau tutorial, je vais vous présenter de la façon la plus claire possible, comment réaliser un script de livre d’or pour votre site codé en PHP et utilisant une table SQL. Comme vous le savez tous, un livre d’or permet à vos visiteurs de laisser une appréciation concernant votre site, ce qui vous permettra par la suite d’apporter vos améliorations à ce dernier pour le rendre plus attrayant. |
| |
Description de notre script
Pour réaliser notre livre d’or, nous aurons tout d’abord besoin d’une base de données MySQL ainsi que de 2 fichiers php :
- guestbook.php (fichier du livre d’or)
- config.php (fichier stockant les variables de connexion à la base de données)
Notre script sera le plus simple possible afin que vous puissiez comprendre facilement le principe de dialogue entre PHP et MySQL, mais aussi la syntaxe de ce puissant langage et enfin le traitement des données extraites d’un formulaire HTML. En effet, afin d’éviter de nous surcharger avec une multitude de variables et pour rester le plus clair possible, nous limiterons notre formulaire à 3 champs :
- Pseudo
- Email
- Commentaire
Nous verrons quand même brièvement à la fin de ce tutorial comment nous pouvons améliorer notre script pour le rendre encore plus sympathique à utiliser (ex : ajoût de smylies).
|
| |
Réalisation
C’est ici que commence réellement la conception de notre livre d’or. Nous allons donc débuter par la création de la table SQL qui se charge de stocker tous les messages du livre d’or. Dans votre interface de gestion de base de données (ex : PHPMyAdmin), exécuter la structure de table suivante
| |
CREATE TABLE guestbook (
id INT(3) AUTO_INCREMENT PRIMARY KEY,
pseudo VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
message TEXT NOT NULL,
date VARCHAR(21) NOT NULL
);
|
|
| |
Vous constatez que nous avons créé une table comportant 5 champs. Le premier champ que l’on nomme « id » est la clé primaire de la table et est automatiquement incrémenté (augmenté de 1) à chaque nouveau message enregistré. Pour les autres champs, il est inutile de s’y attarder car ils ne présentent que peu d’importance dans la réalisation du script PHP. J’insiste juste sur le fait que VARCHAR(X) signifie que ce champ peut contenir au maximum X caractères et qu’il ne peut être vide (NOT NULL).
Si vous souhaitez approfondir le sujet, consultez le tutorial sur la manipulation de table sous MySQL.
De plus, je rappelle qu’il est important de mettre des noms évocateurs aux champs de sa table pour une meilleure compréhension et réalisation des scripts.
Passons désormais à l’écriture de notre fichier de configuration des variables de connexion à la base de données. Je n’ajouterai que peu de choses concernant ce listing du fait qu’il soit commenté :
| |
<?
$serveur = 'XXXXX'; // Votre serveur. Ex : localhost.
$login = 'XXXXX'; // Votre Login de connexion à la base.
$pass = 'XXXXX'; // Votre Password de connexion à la base.
$base = 'XXXXX'; // Le Nom de votre Base de Données.
$nb = 10; // Nombre de messages max par page.
//------A partir de la touchez plus à rien --------------------//
$now_Y = date("Y");
$now_m = date("m");
$now_d = date("d");
$now_H = date("H");
$now_i = date("i");
$now_s = date("s");
$date = "$now_d-$now_m-$now_Y à $now_H:$now_i:$now_s";
@MYSQL_CONNECT($serveur,$login,$pass) or die ("Le Serveur ne répond pas");
@MYSQL_SELECT_DB("$base") or die ("Connexion à la base $base impossible");
?>
|
Comme vous pouvez le voir, nous avons créé la date du jour du type JJ/MM/AAAA à HH :MM :SS à l’aide de la variable $date. De plus, nous réalisons la connexion au serveur MySQL distant avec la fonction MYSQL_CONNECT() ; ainsi que la sélection de la base de données à l’aide de la fonction MYSQL_SELECT_DB() ;. Si une erreur apparaît au cours de l’une de ces deux opérations, un message d’erreur sera affiché grâce à la fonction DIE() ;.
Ceci étant fait, nous pouvons nous consacrer à la réalisation du script principal du livre d’or, c’est à dire, le fichier guestbook.php qui contient à la fois le formulaire d’envoi du message mais aussi la portion de script qui se charge d’afficher un à un les messages enregistrés dans la table SQL.
Je vais vous présenter la page guestbook.php par morceaux afin de bien détailler chaque détail important. Voici donc tout d’abord la partie qui contient le formulaire compris entre les deux balises <form></form> : les codes |
| |
|
| |
La source étant commentée, je vais approfondir quelques petites choses qui ne sont pas à négliger. Vous avez remarqué dans cette partie du script que nous avons extrait les données avec une boucle While(). C’est cette boucle qui est toujours utilisée pour l’extraction de données d’une table.
De plus, vous avez constaté des variables du type $row[XXX] ;. Ces variables sont celles qui stockent les données extraites de la table guestbook.
Notez au passage l’utilisation de la fonction nl2br() ; qui permet de convertir les sauts de ligne en balise <br />. Sans elle, les sauts de ligne de votre message n'apparaiterait pas une fois insérée dans le code HTML (si toutefois le visiteur en avait fait).
C’est tout ce qu’il y a d’important à savoir concernant ce script. Je ne ferais pas d’explications au sujet de la portion qui se charge de la pagination. Celui-ci meritant de faire l'objet d'un tutorial. Il est plus simple pour le moment de la copier telle quelle dans vos scripts quand vous en avez besoin. Votre livre d’or est désormais opérationnel. |
| |
|
| |
- -Optimisation |
| |
Voyons rapidement comment vous pouvez le rendre plus convivial en permettant l’ajout de smilies :
Si vous souhaitez afficher ce smilies ;-) par exemple en tant qu’image dans votre message, il suffit de positionner juste après l’accolade du While() ; le code ci-dessous. Nous allons supposer que l’image correspondante à ce smiley se nomme good.gif et qu’il se situe dans le répertoire /images/smiles/good.gif de votre site.
Voici la regex permettant cette transformation. Il faut en faire une pour chaque smiley : |
| |
|
| |
<?php
$row[message] = str_replace(";-)","<img src=\"images/smiles/good.gif\">",$row[message]);
?>
|
|
| |
Conclusion |
| |
Vous avez appris au travers de ce tutorial comment réaliser simplement un livre d’or pour votre site avec un outil puissant qui est le couple PHP et MySQL.
Les sources complètes de livre d'or ainsi que le tutorial au format pdf se trouvent dans dans l'archive disponible en téléchargement(voir enhaut).Vous pouvez modifier à votre guise cette source pour l’améliorer et la mettre aux couleurs de votre site.
|
| |
Un problème ? n'hésitez pas, je suis là!! Posez vos questions surmon< forum >!
|
|