Tutoriel : Comment faire un livre d'or ?

Pour divers tutos

Tutoriel : Comment faire un livre d'or ?

Messagede Vally8 le 09 Sep 2005 09:46

Aujourd'hui : Comment faire un livre d'or ????

Un livre d'or se décompose en 2 grandes parties : l'affichage du livre et l'enregistrement des messages par les utilisateurs.

1/ L'enregistrement des messages.

La methode la plus simple pour faire un livre d'or est bien sur d'utiliser une base de données. Il vous faut donc la créer.

Regardons les champs dont vous allez avoir besoin : l'email de la personne, le site internet de la personne, la date du message et le message bien sur !

Donc dans sql creez votre table : par exemple :

Code: Tout sélectionner
CREATE TABLE `monlivredor` (
  `pseudo` varchar(20) ,
  `mail` varchar(40),
  `web` varchar(40),
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `message` text,
  PRIMARY KEY  (`pseudo`,`date`)
)


Voilà :)

Maintenant, il vous faut un formulaire, qui sera dans la page signer par exemple :)

Le formulaire doit contenir les champs a remplir, un bouton pour valider et un lien vers la page qui se chargera de faire l'enregistrement (ici enregistrement.php, mais cela doit etre spécifié dans la balise form pour la valeur de l'attribut action)

Dans le corps de votre page (entre les balises <body> et </body> donc, mettez le formulaire qui ressemble à peu pres à ca :

Code: Tout sélectionner
<form method="POST" action="enregistrement.php" enctype="application/x-www-form-urlencoded" name="" >
<table cellpadding="1" cellspacing="0" align="center" bgcolor="#666666" border="0">
<tr>
  <th align="center" height="20"><b>Entrer vos commentaires ci dessous :</b>
  </th>
</tr>
<tr>
  <td>
  <table border=0 cellpadding=3 align="center" cellspacing="0" bgcolor="#555555">
  <tr>
    <td  width="32%"><u>Nom :</u>
    </td>
    <td  > <input class="input" type="text" name="pseudo" value="" size=40 >
    </td>
  </tr>
  <tr>
    <td  width="32%"><u>Email :</u>
    </td>
    <td  > <input class="input" type="text" name="mail" value="" size=40 >
    </td>
  </tr>
  <tr>
    <td  width="32%"> <u>URL :</u>
    </td>
    <td  > <input class="input" type="text" name="web" size=40 >
    </td>
  </tr>
  <tr>
    <td  valign="top" width="32%"> <u>Commentaires :</u>
    </td>
    <td  > <textarea class="input" name="message" cols="40" rows="10" ></textarea>
    </td>
  </tr>
  <tr>
    <td  width="32%"> <input class="button" type="reset" name="reset" value="Effacer" >
    </td>
    <td  align=RIGHT > <input class="button" type="submit" name="OK" value="Valider" >
    </td>
  </tr>
  </table>
  </td>
</tr>
</table>
</form>


Ensuite, il faut faire quelque chose de ces données : elle seront traitées dans enregistrement.php :
Code: Tout sélectionner
<?

//ici les parametres pour la connexion
   $host="monhost";
   $user="monuser";
   $base="mabase";
   $passe="monpass";

   $table="monlivredor";

//on effectue la connexion
       $serveur = @mysql_connect("$host","$user","$passe");

//Selection de la base de données
       $select_base=@mysql_selectdb("$base");

//Si la connexion echoue
if (!$select_base)
{
    echo "Mauvaise configuration!!!";
}
//Sinon
else
{
if (isset($HTTP_POST_VARS))
{
   $pseudo = $HTTP_POST_VARS['pseudo'];
   $mail = $HTTP_POST_VARS['mail'];
   $web = $HTTP_POST_VARS['web'];
   $pseudo = $HTTP_POST_VARS['pseudo'];
   $message = $HTTP_POST_VARS['message'];



  $query = "INSERT INTO `monlivredor` ( `pseudo` , `mail` , `web` , `message` , `date` )VALUES ('$pseudo', '$mail', '$web', '$message', NOW( ))";
  $result = MYSQL_QUERY($query);
   echo "<h1>Merci d'avoir signé mon livre d'or.</h1>
              <div align= center>
      <a href=index.php>Retourner au livre d'or</a>
      </div>
      ";

}
else
{
   echo "<h1>Erreur dans l'utilisation du fichier</h1>
              <div align= center>
      <a href=index.php>Retourner au livre d'or</a>
      </div>
      ";
}
}
?>




En fait, ici, c'est vraiment simple, il suffit de récuperer les valeurs entrées et de les mettres dans la base de données.... En verifiant quand meme 2 ou 3 petites choses...
Attention, chez free $user et $base ont la meme valeur ;) (en effet, votre base a pour nom votre login)

2/ L'affichage du livre d'or

En général, on affiche le livre d'or dans la page index.php. Dans votre corps de fichier, il vous suffit d'ajouter un lien vers la signature du livre, et la liste des messages que vous avez dans la base de données

Code: Tout sélectionner
<div align ="center">
<a href ="signer.php">Signer le livre d'or</a><br>
</div>

<?

//ici les parametres pour la connexion
   $host="monhost";
   $user="monuser";
   $base="mabase";
   $passe="monpass";

   $table="monlivredor";

//on effectue la connexion

       $serveur = @mysql_connect("$host","$base","$passe");

//Selection de la base de données qui porte le meme nom que votre login

       $select_base=@mysql_selectdb("$base");

//Si la connexion echoue

if (!$select_base)

{
//Afficher la ligne suivante

    echo "Mauvaise configuration!!!";

}
//Sinon

else
{
echo "<hr>";

   $res = mysql_query( "SELECT * FROM  `monlivredor`order by 'date' DESC", $serveur);
   if ($res)
   {
   while ( $q = mysql_fetch_array ($res, MYSQL_ASSOC) )
   {
      $pseudo = $q[pseudo];
      $mail = $q[mail];
      $web = $q[web];
      $message = $q[message];
      $date = $q[date];

      // il faut décortiquer la date pour avoir un affichage plus sympa
      $annee = substr("$date", 0, 4);
      $mois = substr("$date", 5, 2);
      $jour = substr("$date", 8, 2);
      $heure = substr("$date", 11, 18);

      // Pour garder les retours à la ligne
      $message = str_replace("\n","<br>",$message);
      
      echo "<b>$pseudo : <a href=\"mailto:$mail\">$mail</a> -$pageweb</b><br>\n
            Le $jour/$mois/$annee à $heure :<br>\n
            $message<br>
            <hr>";
   }
   }
}
?>



Voilà ;) vous savez tout sur les livres d'or maintenant :oui:

Il ne vous reste plus qu'à changer l'affichage comme vous le souhaitez ;)

Si vous avez la moindre question, n'hesitez pas :ok:
Dernière édition par Vally8 le 09 Sep 2005 12:36, édité 1 fois.
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15456
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 09 Sep 2005 09:51

Merci :pouce: (a cause de moi, tout ces tutos XD)
Bon je doit crée des tables si j'ai bien compris (javais pas fait)
J'ai pris les fichier de free, mais je doit créer alors encor un autre : enregistrement.php.
Let'go! Baby :pouce: (j'suis contente :goutter: )
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 09 Sep 2005 09:54

oui, tu as une table a enregistrer : le code dans le 1er encadré, tu le colles dans une fenetre SQL de ta base de données

ensuite, tu as 3 fichiers a sauvegarder :
dans l'ordre :

signer.php
enregistrer.php
index.php

et n'oublies pas de mettre ton entete et ton pied de page dans les fichiers signer et index (tout ce qu'il y a avant le <body> ET tout ce qu'il y a apres le <body>)
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15456
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 09 Sep 2005 11:05

Code: Tout sélectionner
$host="monhost";

quest qui faut mette a la place de monhost? merci
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 09 Sep 2005 11:09

sur ta machine avec easy php : localhost
sur le serveur free : sql.free.fr
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15456
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 09 Sep 2005 11:22

Ca marche :fete: !
Merci!! je doit voir la mise en forme ^^
http://ryoko.lila.free.fr/site/guestbook.php
mais comment je fais pour suprimer des messages, je dans le faire dans la tabla?
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 09 Sep 2005 12:34

oui, pour supprimer les messages, tu vas dans ta base de données, tu cliques sur monlivredor puis afficher, tu coches celui (ou ceux) que tu veux effacer et tu cliques sur la croix rouge : ca va te demander une confirmation : tu dis oui et voilà ;)

effectivement, il ne reste plus qu'a changer la couleur du tableau ;)
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15456
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9


Retourner vers Tutoriels

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron