Notice: Undefined variable avec un script pris sur le web

doudou34
Invité n'ayant pas de compte PHPfrance

03 mai 2007, 10:47

Bonjour a tous le monde ;

J'ai trouvé sur le web un script qui me sera utile, j'ai donc collé et adapté le code sur ma page. Au lancement de ma page, j'ai un message d'erreur du type :

Notice: Undefined variable: REMOTE_ADDR in c:\web\exercice\compt\index.php on line 5

voici le code :

Code : Tout sélectionner

<? require_once('../Connections/exerc.php'); // IP du visiteur $IP = $REMOTE_ADDR; // Date/heure courante en minutes $date0 = time()/60; // Durée de vie max $vie = 5; // Suppression des anciens $SQL = "DELETE FROM compteur"; $SQL.= " WHERE start<".($date0-$vie); $result = mysql_query($SQL); // Stockage du hit courant $SQL = "SELECT * FROM compteur WHERE IP='$IP'"; $result = mysql_query($SQL); if(mysql_num_rows($result)>0) { // Si déjà là, on modifie $SQL = "UPDATE compteur SET start=$date0"; $SQL.= " WHERE IP='$IP'"; $result = mysql_query($SQL); } else { // sinon on ajoute $SQL = "INSERT INTO compteur(IP,start)"; $SQL.= " VALUES('$IP',$date0)"; $result = mysql_query($SQL); } // Nombre de visiteurs en ligne $SQL = "SELECT count(IP) FROM compteur"; $val= mysql_fetch_array(mysql_query($SQL)); $online = $val[0]; // Déconnnexion mysql_close(); // Affichage ?>
Si quelqu'un a une idée

Merci d'avance a tous

Mammouth du PHP | 1353 Messages

03 mai 2007, 11:59

C'est pas une question d'idée... C'est une question de logique... Ton erreur te dit de regarder la ligne 5 sur laquelle une variable n'existe pas, du nom de REMOTE_ADDR...

Or tu as cette ligne $IP = $REMOTE_ADDR;
Je te conseille donc de faire plutot $IP = $_SERVER['REMOTE_ADDR']; mais cela ne garantie pas que le script marchera, ce qui peut etre le probleme quand on prend un script et qu on le colle tel quel...

A voir... Bon courage...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

doudou34
Invité n'ayant pas de compte PHPfrance

03 mai 2007, 12:46

Oui ca marche !!! merci beaucoup beaucoup a toi pour ton aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 mai 2007, 15:24

Pour l'explication malgré tout, c'est parce que ton serveur ne doit pas avoir la directive register_globals d'activée (ce qui est bien).
Tu ne peux donc pas accéder aux variables du serveur par leurs petits noms (ce qui est mal), et il te faut spécifier explicitement qu'il s'agit d'une variable du serveur en passant par le tableau super global $_SERVER[] :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...