Faire un livre d'or avec php le plus facilement possible

Soyez le premier à donner votre avis sur cette source.

Vue 24 798 fois - Téléchargée 1 297 fois

Description

code en php permettant de creer facilement un livre d'or avec base de données MySQL.. C'est très pratique!!

Source / Exemple :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Livre d'or</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        form, .pages
        {
            text-align:center;
        }
        .Style1 {font-family: "Book Antiqua"}
       </style>

</head>
   
    <body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("sofa");
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
  if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
    { 
    $pseudo = htmlentities($_POST['pseudo']);
    $message = htmlentities($_POST['message']);
    $message = nl2br($message); 
	mysql_query("INSERT INTO livreor VALUES('', '$pseudo', '$message')");
	mysql_close();
    }
}
?>
<form method="post" action="livreor.php">
    <br />
<p>
        <span class="Style1">Pseudo :</span> 
      <input name="pseudo" /><br />
  <br />
      <span class="Style1">Message :</span><br />
      <textarea name="message" rows="8" cols="35"></textarea> 
      <br />
    <input type="submit" value="Envoyer" />
</p>
</form>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("sofa");
$reponse = mysql_query("SELECT * FROM livreor ORDER BY ID DESC LIMIT 0,10");
mysql_close();
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>
<?php
}
?>
</body>
</html>

Conclusion :


tous ce que vous allez à faire c ouvrir le fichier livredor.sql se trouvan dans le dossier livredor et t'appez le code de dedans dans EasyPHP. ;)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

kiki9741
Messages postés
9
Date d'inscription
lundi 10 juillet 2006
Statut
Membre
Dernière intervention
4 juillet 2007

Un autre point que je soummet à vos critiques ^_^ :

Le livre d'or risque de recevoir un certain nombre de message à vocation publicitaire ...

Avant de valider l'insertion dans la bdd, pourquoi ne pas faire une petite série de contrôle :

$message_ok = TRUE ;
$mots_bannis = array("www, "http"", ".com", ".fr"); // etc ...

foreach($mots_bannis as $mot)
{
/* si on trouve un des mots bannis dans le message,
* on passe la variable $message_ok à FALSE
*/
if( strpos($_POST['message'], $mot) != FALSE )$message_ok = FALSE ;
}
// etc ...

Quand pensez-vous ?
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Comme d'hab pour ce genre de source plusieurs erreurs basiques...

Le second couple mysql_connect()/mysql_select() est inutile

-------------------------------------------------
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
{

===>

if(isset($_POST['pseudo']) && !empty($_POST['pseudo']) && isset($_POST['message']) && !empty($_POST['message']))
{

---------------------------------------

Le htmlentities doit se faire à l'affichage et non à l'insertion... les données ne sont pas échappées avant l'insertion permettant des sql injection...

mysql_query('INSERT INTO livreor VALUES(\'\', \''.mysql_real_escape_string($_POST['pseudo']).'\', \''.mysql_real_escape_string($_POST['message']).'\')');

le premier mysql_close() est à virer... .. .

----------------------------------------

le second couple connect/select est à virer... ta requête SELECT n'est pas optimisée... le * est inutile vu que tu sais de quels champs tu as besoin...

$result = mysql_query('SELECT pseudo,message FROM livreor ORDER BY ID DESC LIMIT 0,10');
mysql_close();

while(false !($msg mysql_fetch_array($result)))
echo '
'.htmlentities($msg['pseudo']).' : '.nl2br(htmlentities($msg['message'])).'


';

--------------------------------------------------

A regretter :

- aucune gestion des erreurs
- pas de possibilité d'éditer ou de supprimer un message (ça implique une authentification)
- manque éventuellement un champs mail pour les posteurs
- pas de possibilité de voir les messages précédant ceux affichés (ou alors faut intégrer un garbage collector)

4/10

@ tchaOo°

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.