Livre en or PHP
Un livre d'or en PHP
Base de données
Avant de commencer, il vous faut créer une base de donnée MySQL chez votre hébergeur (Free, Wanadoo...). La première base est toujours gratuite et peut comporter plusieurs tables. Elle doit être demandée en ligne sur le site de votre hébergeur.
Par exemple, chez Free, en haut de la page d'accueil, saisissez votre login dans le champ "Abonnés, identifiez-vous".
Sélectionnez ensuite l'option "Activer votre base de données MySQL" du menu Php-MySQL. La plupart des hébergeurs donnent comme nom à cette base, votre nom d'utilisateur.
Une fois la base créé, il vous faut maintenant créer la table "livredor" (une table est aussi appelée une relation). Pour cela nous allons utiliser le langage SQL ci-dessous:
DROP TABLE IF EXISTS livredor;
CREATE TABLE livredor (
id int(11) NOT NULL auto_increment,
Pseudo varchar(65),
Commentaires text,
Date varchar(20) NOT NULL,
heure varchar(20) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO livredor VALUES(1,'Easy-Micro','Bienvenue sur mon nouveau livre d\'or.','20/01/2007','11:06');
Le code ci-dessus permet de créer une table de données avec 5 attributs (aussi appelés des colonnes) : "id", "Pseudo", "Commentaires", "Date" et "heure". L'attribut "id" est une cléf primaire auto-incrémentée qui permet de distinger les différents enregistrements (aussi appelés des lignes ou tuples).
Attention: Etant donné que les commentaires sont entre apostrophe, les apostrophes du texte doivent être précédées d'un anti slash (\) comme avec ci-dessus le mot "d'or".
Je vous recommande d'enregistrer le code SQL ci-dessus dans un fichier texte (type Bloc notes). Nommez-le "livredor.sql" (avec l'extention sql). Créez dans votre site web un dossier "livredor". Ce dossier contiendra tous les fichiers et les dossiers de notre futur livre d'or. Enregistrez le fichier "livredor.sql" dans ce dossier.
Comment réaliser cette table
Encore une fois, il vous faut aller sur le site de votre hébergeur...
Chez Free, en haut de la page d'accueil, saisissez votre login dans le champ "Abonnés, identifiez-vous". Sélectionnez ensuite l'option "Accéder et gérer votre base de données MySQL" du menu Php-MySQL.
Après avoir donné votre nom et mot de passe, vous devriez être dans l'interface de l'outil "phpMyAdmin" de Free (ou de tout autre hébergeur) qui permet l'administration de votre base. Cherchez ensuite l'option pour créer votre table "A partir d'un fichier" et cliquer sur le bouton parcourir afin de sélectionner le fichier texte "livredor.sql".
Interface avec PHP
Voici, maintenant, le code de votre page index.php
<?php
// définition des 4 variables de connexion (à renseigner correctement):
$base = "mabase";
$user = "root";
$pass = "";
$serveur = "localhost";
// connexion à la base:
mysql_connect("$serveur","$user","$pass") or die("Connexion impossible: ".mysql_error());
mysql_select_db("$base");
// requête SQL
$query = "SELECT Date, Heure, Pseudo, Commentaires FROM livredor ORDER BY Date DESC, Heure DESC LIMIT 0, 6";
$resultat = mysql_query("$query");
?>
<html><head>
<title>Mon livre dor</title></head>
<body>
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="0">
<?php
// si pas de connexion, on affiche "la base est vide"
if (!$resultat) { echo "La base est vide"; }
else {
// Affichage du contenu de la table livredor (mysql_fetch_array retourne les lignes de résultat)
while($ligne = mysql_fetch_array($resultat)) {
echo "<tr>";
echo "<td align='left' valign='top'> ".$ligne["Date"]." ".$ligne["Heure"]." <strong>".$ligne["Pseudo"]."</strong><br><br>";
echo "".$ligne["Commentaires"]."</td>";
echo "</tr>";
}
}
?>
</table>
// C'est ici que l'on installera le formulaire visible ci-dessous
</body>
</html>
Il ne nous reste plus qu'a insérer dans cette page (index.php) le code du formulaire qui va nous permettre de remplir notre livre d'or. Notez la premiere ligne du code qui appelle un fichier "traitement.php" fourni plus bas.
<form method="post" name="formulaire" action="traitement.php">
<table border="0" align="center" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="left" colspan="3">Insérer un commentaire</td>
</tr>
<tr>
<td>Nom / Pseudo</td>
<td align="left"><input type="text" size="38" name="Pseudo"></td>
<td align="left" width="90"><input type="submit" value=" Inserer "></td>
</tr>
<tr>
<td>Commentaire</td>
<td colspan="3" align="left">
<textarea name='Commentaires' rows="3" cols="50" size="10"></textarea></td>
</tr>
</table></form>
et enfin, voici le code du fichier "traitement.php" qui permet de traiter le formulaire:
<?php
if ( isset($_POST['Pseudo'])) {
$Pseudo = $_POST['Pseudo'];
}
if ( isset($_POST['Commentaires'])) {
$Commentaires = $_POST['Commentaires'];
//strip_tags supprime les balises HTML et PHP d'une chaîne (par sécurité)
$Commentaires2 = strip_tags(trim($Commentaires));
//nl2br insère un retour à la ligne HTML à chaque nouvelle ligne du textarea
$Commentaires3 = nl2br($Commentaires2);
}
// ici aussi, il faudra remplacer les 3 infos par les vôtres:
mysql_connect("localhost","root","") or die("Connexion impossible: ".mysql_error());
mysql_select_db("mabase");
$Date = date("d/m/Y");
$Heure = date("H:i");
if ($Pseudo && $Commentaires && $Date) {
$sql = "INSERT INTO livredor (Date, Heure, Pseudo, Commentaires) VALUES ('$Date', '$Heure', '$Pseudo', '$Commentaires3')";
$resultat2 = mysql_query("$sql");
echo "<script>document.location=\"livredor/index.php\";</script>";
}
else {
echo "<script>alert('Merci de remplir tous les champs')</script>";
echo "<script>document.location=\"livredor/index.php\";</script>";
}
?>