Livre d'or

Bonjour,
Je cherche a créé un livre d'or et j'aimerais que 1 fois que quelqu'un a écrit un message il ne puisse plus en réécrire donc jai pensez a un systeme pour garder lip jai donc créé une table qui concerve l'ip et cella marche pourtant dans mon code on peux réécrire autant de message que l'on veux :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Livre d'or</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <style type="text/css">
    form
    {
    text-align:center;
    }
    </style>
    <body>
 
<?php 
function get_ip(){ 
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ 
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} 
elseif(isset($_SERVER['HTTP_CLIENT_IP'])){ 
$ip = $_SERVER['HTTP_CLIENT_IP'];} 
else{ $ip = $_SERVER['REMOTE_ADDR'];} 
return $ip;}$ip = get_ip();

?>

<?php


if (isset($_POST['pseudo']) AND isset($_POST['message'])) 
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'])
    {
	  if ($reponse == NULL)
          {
        include("include.php");
 

        $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
		$message = nl2br($message);
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
		$timestamp = time();
		$reponse = mysql_query("SELECT ip FROM minichat WHERE ip='$ip'");
		
		mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', '$timestamp', '$ip')");
		
        mysql_close();
}
   }
}
echo $ip
?>

<form action="livreorr.php" method="post">
 
<p>
Pseudo : <p><input type="text" name="pseudo" /><br />
<p>
Laisser un commentaire :  <p><textarea name="message" rows="8" cols="45">
Tapez votre message ici !
</textarea><br />
<input type="submit" value="Poster votre message" />
</p>
</form>

<?php
 

include("include.php");


$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,15");
 

mysql_close();
 

while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p><h3>---------------------------------------</h3>
<p>
<strong><?php echo $donnees['pseudo']; ?></strong><i> à écrit : </i><p>

<?php echo $donnees['message']; ?></p>
 <p><sup><i>Merci à <?php echo $donnees['pseudo'] ?> pour ce commentaire écrit le <?php echo date('d/m/Y', $donnees['timestamp']) ?> à <?php echo date('H\h i\m\i\n s\s', $donnees['timestamp']) ?></i></sup> 

<?php
}

?>

    </body>
</html>
Configuration: Windows XP
Firefox 3.0.3


PS : include.php correspond au mysql_connect et mysql_db

3 réponses

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Livre d'or</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <style type="text/css">
        form
        {
        text-align:center;
        }
        </style>
        <body>
     
    <?php 
    function get_ip(){ 
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ 
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} 
    elseif(isset($_SERVER['HTTP_CLIENT_IP'])){ 
    $ip = $_SERVER['HTTP_CLIENT_IP'];} 
    else{ $ip = $_SERVER['REMOTE_ADDR'];} 
    return $ip;}$ip = get_ip();
    
    ?>
    
    <?php
    include("include.php");
     
    $reponsee = mysql_query("SELECT ip FROM minichat"); 
    
    while ($donneees = mysql_fetch_array($reponsee) )
    {
        echo $donneees['ip'];
        echo "<br />";
    }
     
    mysql_close(); 
    ?>
    
    
    <?php
    
    
    if (isset($_POST['pseudo']) AND isset($_POST['message'])) 
    {
        if ($_POST['pseudo'] != NULL AND $_POST['message'])
        {
    	  if ($don == 0)
    	    {
            include("include.php");
     
    
            $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
    		$message = nl2br($message);
            $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
    		$timestamp = time();
            $retour = mysql_query('SELECT COUNT(*) WHERE ip='$ip');
            $don = mysql_fetch_array($retour);
    
    		mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', '$timestamp', '$ip')");
    		
            mysql_close();
          }
       }
    }
    
    ?>
    
    
    <form action="livreorr.php" method="post">
     
    <p>
    Pseudo : <p><input type="text" name="pseudo" /><br />
    <p>
    Laisser un commentaire :  <p><textarea name="message" rows="8" cols="45">
    Tapez votre message ici !
    </textarea><br />
    <input type="submit" value="Poster votre message" />
    </p>
    </form>
    
    <?php
     
    
    include("include.php");
    
    
    $reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,15");
     
    
    mysql_close();
     
    
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
    <p><h3>---------------------------------------</h3>
    <p>
    <strong><?php echo $donnees['pseudo']; ?></strong><i> à écrit : </i><p>
    
    <?php echo $donnees['message']; ?></p>
     <p><sup><i>Merci à <?php echo $donnees['pseudo'] ?> pour ce commentaire écrit le <?php echo date('d/m/Y', $donnees['timestamp']) ?> à <?php echo date('H\h i\m\i\n s\s', $donnees['timestamp']) ?></i></sup> 
    
    <?php
    }
    
    ?>
    
        </body>
    </html>


    Enfaite je cherche à compter le nombre ip dans la colone ip qui son égale a $ip voila
    0
    1. L'ip est inscrit dans la base SQL quand quelqu'un post un message grace a se script l'ip se stock dans la dernière colone : ip maintenant j'aimerais que pour mettre un message l'ip ne doit pas être présente dans la colone sinon c'est qu'il a deja posté un message
      0
      1. je ne mis connais pas trop en php mais je pense qui faudrais dans ton codage une boucle qui controle l'ip de la personne qui va poster dans le livre d'or
        0