Livre d'or

Axblade28 Messages postés 95 Statut Membre -  
Axblade28 Messages postés 95 Statut Membre -
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>


PS : include.php correspond au mysql_connect et mysql_db

3 réponses

Utilisateur anonyme
 
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
Axblade28 Messages postés 95 Statut Membre 7
 
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
Axblade28 Messages postés 95 Statut Membre 7
 
<!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