Enregistrer l'adresse IP des posteurs

Résolu
Bonjour,

J'ai un petit script de livre d'or qui marche très bien.
Je me suis créer une petite partie admin, ou l'adresse IP devrait apparaitre mais elle apparait mal ! J'ai ca "91121" au lieu de l'ip du posteur :s

Je vous donne mon code :

Partie index :
<form method="post" action="suite.php">
Pseudo<br>
<input type="text" name="pseudo">
<br>Message <br>
<input type="password" name="message"><br><br>

<input type="submit" value="Go !"></form>


La sauvegarde du message et de l'ip :
<?php
mysql_connect("sql.olympe-network.com", "xxx", "xxx");
mysql_select_db("xxx");

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$ip = $_SERVER["REMOTE_ADDR"]; 

mysql_query("INSERT INTO livre VALUES('', '$pseudo', '$message', '$ip')");

mysql_close();
?>

Sachant que j'ai un champ id(mediumint), un champ pseudo(text), un champ message(text) et un champ ip(mediumint)

Ma partie d'administration est :
<?php
mysql_connect("sql.olympe-network.com", "xxx", "xxx");
mysql_select_db("xxx");
 
$reponse = mysql_query("SELECT * FROM livre");
 
 

 
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p>
Message n°<?php echo $donnees['id']; ?> poste par <?php echo $donnees['pseudo']; ?><br />
Message : <?php echo $donnees['message']; ?> <br />
IP : <?php echo $donnees['ip']; ?>
</p><br /><br /><br />
 
<?php
}
 
mysql_close(); 
?>


Comme dit plus haut, tout fonctionne sauf l'ip !
Ca ne vient pas de $_SERVER["REMOTE_ADDR"]; car quand je fait :
echo $_SERVER["REMOTE_ADDR"]; 


J'ai ma vrai IP

Je ne vois pas du tout où est l'erreur !

Je vous remercie d'avance !

--
Qui peut le plus peut le moins
Configuration: Windows Vista
Firefox 2.0.0.13

3 réponses

  1. bonsoir,

    pour le formulaire de mon site, je le fais de la manière suivante:

    j'ai rajouter le champs caché dans la balise du formulaire:

    <input name="ip" type="hidden" value="<? echo $ip; ?>">


    Avant la balise du formulaire il y a:
    <? $ip = $_SERVER["REMOTE_ADDR"]; ?>


    bonne soirée, si jamais ça peux aider.
    0
    1. Arf merci mais ca ne marche toujours pas, j'ai encore "91121 " en IP
      0
      1. voici comment je fais:

        page d'enregistrement dans la bbd (Form_MSG.php)

        <!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">
        <head>
        <link rel="icon" type="image/gif" href="dependant/favicon.gif" />
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>confirmation d'envoi</title>
        </head>
        <?
        $date = $_POST['date'];
        $ip = $_POST['ip'];
        $message = nl2br($_POST['message']);
        mysql_connect("localhost", "base", "MDP"); // Connexion à MySQL
        mysql_select_db("base"); // Sélection de la base 
        $reponse = mysql_query("SELECT * FROM table"); // Requête SQL
        mysql_query("INSERT INTO table VALUES(' ','$date','$ip','$message')");
        mysql_close(); // Déconnexion de MySQL
        echo'<p class="Style21">Votre site à été ajouter. Vous allez être redirigé. Bonne journée'
        ?>

        la page d'ajout:
        <!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">
        <head>
        <script language="JavaScript">function verifSelection() 
        {if (document.forml.site.value == "") {
        alert("Ecrire le message avant de l'envoyer !")
        return false
        }
        </script>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Formateur JSP</title>
        
        <link href="http://infoxp.leobaillard.org/dependant/css.css" rel="stylesheet" type="text/css" />
        <link href="../dependant/css.css" rel="stylesheet" type="text/css" />
        </head>
        
        <body {background-color="#CABOFF"}>
        <?php
        mysql_connect("localhost", "base", "MDP"); // Connexion à MySQL
        mysql_select_db("base"); // Sélection de la base 
        $reponse = mysql_query("SELECT * FROM table"); // Requête SQL
         
        // On fait une boucle pour lister tout ce que contient la table :
         
        while ($donnees = mysql_fetch_array($reponse) )
        {
        ?>
              <?php echo '<p align="left" class="boitemsg">LE : <strong>' .$donnees['date'] .'</strong><br /> PAR : <strong>' .$donnees['formateur'].'</strong><br />Message: <strong>' .$donnees['message'].'</strong>'; ?> 
                <?php
        }
        mysql_close(); // Déconnexion de MySQL
        ?>
        <?php
         $ip = $_SERVER['REMOTE_ADDR'];//On obtient l'adresse IP
         ?>
        	</p>
            <p align="left" class="Style24">Formulaire d'ajout d'un message:</p>
            <form id="form1" name="form1" method="post" action="Form_MSG.php" onSubmit="return verifSelection()">
              <p>
                <input type="hidden" name="date" value="<?php
              setlocale( LC_TIME, 'fr_FR.ISO88591' );
              echo strftime("%A %e %B %Y", time() );
              ?>" />
                Date:<span class="Style3"> </span><?php
              setlocale( LC_TIME, 'fr_FR.ISO88591' );
              echo strftime("%A %e %B %Y", time() );
              ?>
                <br />
                <input type="hidden" name="ip" value="<?	echo $ip; ?>" />
                Adresse IP: <span class="Style3">
                  <?	echo $ip; ?>
                  </span>
                <br />
                Message:
                <textarea name="message" cols="70" rows="4"></textarea>
                </p>
              <p align="center">
                <input name="Submit" type="submit" class="Style34" value="Ajouter le message" />
                <br />      
                  <input name="Submit2" type="reset" class="Style36" value="R&eacute;initialiser le message" />
              </p>
            </form>   

        les champs de ma bbd:

        ID (mediumint) EXTRA auto-incremente
        date (texte)
        ip (texte)
        message (texte)

        PS: pour ce qui est de la date, il se peux que ça ne fonctionne pas, c'est le code de l'hébergeur pour avoir la date en français.
        bonne soirée
        0
    2. Merci beacoup j'ai compris l'erreur,

      Pour le champ ip il fallait un "text" pas un "mediumint"

      0
      1. bonjour,

        pas de problème !

        Bonne journée
        0