$REMOTE_ADDR auf lokalem Server nein, bei Lycos ja.

NoGi

Mitglied
Hi,

ich habe wieder mal ein kleines Problem.

Ich nutze zur Entwicklung eine Jana2Server mit PHP&MySQL einbindung (Hat bis jetzt auch alles super geklappt). Für meine Homepage im Internet habe ich mir bei Lycos Webspace gekauft (incl. PHP & MySQL).

Ich habe mir jedenfalls einen Zähler eingebaut. Dieser speichert die IP Adresse über den Befehl $REMOTE_ADDR in einer MySQL Tabelle. Im Web funktioniert dies super.

Nutze ich das gleiche Script auf der Serverumgebung zu Hause bekomme ich die Fehlermeldung Notice:

"Undefined variable: REMOTE_ADDR in e:\www\html\html\homepage\top.php on line 10"

Ich habe mir daraufhin die eine weitere PHP-Datei mit folgendem Inhalt geschrieben um mir einige Infos über meine PHP-Einstellungen zu ziehen.

<?php
phpinfo();
?>

Hier wird allerdings die REMOTE_ADDR richtig angezeigt.


Woran kann das liegen?

Gruß

NoGi
 
Hi,

wenn ich mit den folgenden Befehl benutze

echo $_SERVER['REMOTE_ADDR'];

bekomme ich jetzt die IP-Adresse angezeigt. Aber leider gibt es jetzt eine neue Fehlermeldung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in e:\www\html\html\homepage\top.php on line 10

der code:

05: $ip = $_SERVER['REMOTE_ADDR'];
...
...
09: $sql = mysql_query("select * from ip where ip=$ip");
10: if(mysql_num_rows($sql) < 1)
11: {
12: mysql_query("update hits set hits=hits+1");
13: mysql_query("insert into ip (zeit, ip) values ($zeit, $ip)");
14: }

keine Ahnung woran das liegt.

Kann mir jemand helfen, wäre super.

Gruß

NoGi
 
...

Habe nochmal etwas probiert.

Die gleiche Datei nochmal auf Lycos übertragen auch kein Fehler.

Ich nutze die PHP ver. 4.3.0

Ich es hilft bei der Lösung des Problems.


Gruß

NoGi
 
PHP:
$sql = mysql_query("select * from ip where ip=$ip");
wird zu
PHP:
$sql = mysql_query("SELECT * FROM `ip` WHERE `ip`='$ip'");

Das eigentliche Problöem waren nur die Hochkomatas bei $ip, der Rest is nur zur Übersichtlichkeit (also nich dringen notwendig!)
 
PHP:
$sql = mysql_query("SELECT * FROM `ip` WHERE `ip`='$ip'");

kann so nicht funktionieren ..oder heisst deine datenbank 'ip' ? ;)

probier mal dies:

PHP:
$sql = mysql_query("SELECT * FROM ip WHERE ip='$ip'");

aber um das ganze etwas zu vereinfachen, mach doch einfach :

PHP:
$sql = mysql_query("SELECT * FROM ip WHERE ip='".$_SERVER["REMOTE_ADDR"]."'");

dann brauchst Du nicht die variable $ip zu setzen.. nur so am rande.

wenn du die variable von einer anderen seite aus uebergibst, musst du die variable mit $_POST[var] oder $_GET[var] abrufen .. halt je nach der whal der request methode (post/get)
 
Zuletzt bearbeitet:
Ähhm :rolleyes:
Bei deinem Beispiel heist die Datenbank (heist übrigens Tabelle) auch ip!!

Was ist dann bitteschön der Unterschied zwischen meinem Query und deinem?

Diese Teile hier: `` werden benutzt, um Tabellen und Felder zu kennzeichen! Siehe phpMyAdmin, da isses genauso.

Also: ' != `
 
Zurück