• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit IP - Besucherzähler

_iChris_

Neues Mitglied
Hallo,

leider hab ich wieder mal ein kleines Problem mit meinem IP - Besucherzähler ... Vielleicht könnte sich ja einer von euch das Programm mal ansehen ... ?

Danke für eure Hilfe schonmal im Vorraus :D


PHP:
<?php
     
    mysql_connect(&quot;&quot;, &quot;&quot;, &quot;&quot;
    mysql_select_db(&quot;&quot;
     
     
    $abfrage  = mysql_query(&quot;SELECT `wert` FROM `daten` WHERE `bezeichnung` = 'zaehlerstand'&quot;
    $ergebnis = mysql_fetch_assoc($abfrage);
     
    $besucherGesamt = $ergebnis['wert'];
     
     
    mysql_query(&quot;DELETE FROM `besucher` WHERE `zeit` < (NOW() - INTERVAL 1 DAY)&quot;
     
     
    $besucherIp = $_SERVER['REMOTE_ADDR'];
     
    $abfrage    = mysql_query(&quot;SELECT COUNT(*) FROM `besucher` WHERE `ip` = '$besucherIp'&quot;
    $ergebnis   = mysql_fetch_assoc($abfrage);
     
    $besucherSG = $ergebnis['COUNT(*)'];
     
     
    if (!$besucherSG) {
    $besucherGesamt++;
    mysql_query(&quot;INSERT INTO `besucher` (`ip`, `zeit`) VALUES ('$besucherIp', NOW())&quot;
    mysql_query(&quot;UPDATE `daten` SET `wert` = $besucherGesamt WHERE `bezeichnung` = 'zaehlerstand'&quot;
    }
     
     
    echo &quot;Besucher insgesamt: $besucherGesamt&quot;;
     
    ?>
 
Werbung:
Werbung:
Aber wenigstens benutzt er die Datumsfunktionen von mySQL, dass ist hier im Forum nicht selbstverständlich :-)
 
Tut mir leid ... Hier nochmals das Skript:

PHP:
<?php

mysql_connect("", "", "");mysql_select_db("");

$abfrage  = mysql_query("SELECT `wert` FROM `daten` WHERE `bezeichnung` = 'zaehlerstand'");$ergebnis = mysql_fetch_assoc($abfrage);
$besucherGesamt = $ergebnis['wert'];

mysql_query("DELETE FROM `besucher` WHERE `zeit` < (NOW() - INTERVAL 1 DAY)");

$besucherIp = $_SERVER['REMOTE_ADDR'];
$abfrage    = mysql_query("SELECT COUNT(*) FROM `besucher` WHERE `ip` = '$besucherIp'");$ergebnis   = mysql_fetch_assoc($abfrage);
$besucherSG = $ergebnis['COUNT(*)'];

if (!$besucherSG) {$besucherGesamt++;mysql_query("INSERT INTO `besucher` (`ip`, `zeit`) VALUES ('$besucherIp', NOW())");mysql_query("UPDATE `daten` SET `wert` = $besucherGesamt WHERE `bezeichnung` = 'zaehlerstand'");}

echo "Besucher insgesamt: $besucherGesamt";
?>

Wenn ich mein Skript simuliere bekomme ich leider immer diese Fehlermeldung:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Beispiele\hompage\ipzaehler.php on line 9

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Beispiele\hompage\ipzaehler.php on line 20
Besucher insgesamt: 1
 
Die erste Meldung betrifft also diese Zeile:

PHP:
$abfrage    = mysql_query("SELECT COUNT(*) FROM `besucher` WHERE `ip` = '$besucherIp'");$ergebnis   = mysql_fetch_assoc($abfrage);

Die Meldung besagt, dass der 1. Parameter von mysql_fetch_assoc() nicht das erwartete Format hat.

Das kann nur der Fall sein, wenn die Ausführung von mysql_query() vorher und Speicherung des Ergebnisses davon in $abfrage fehlerhaft ablief. So etwas fängst Du nicht ab, daher kommt es auch zu so einer "seltsamen" Fehlermeldung.

Ändere o.g. Zeile in

PHP:
$abfrage    = mysql_query("SELECT COUNT(*) FROM `besucher` WHERE `ip` = '".$besucherIp."'") or die("Fehler in SQL-Statement");
$ergebnis   = mysql_fetch_assoc($abfrage);

Dann solltest Du sicherlich die Meldung "Fehler in SQL-Statement" bekommen, wenn Du es aufrufst. D.h. für dich, dass Du prüfen musst, ob das Statement überhaupt korrekt ist und wenn nicht, wieso es nicht funktioniert. Ich habe schon eine Vermutung, kann ich jedoch ohne dein Datenbankmodell nicht wirklich sagen.
 
Werbung:
Bleibt noch anzumerken, dass ein Besucherzähler nach IP nicht wirklich die Besucher zählt.
Nahezu alle Provider verwenden entweder dynamische IP´s oder NAT.
Bei dynamischen IP´s zählst du jeden Besucher mehrfach, sobald dieser seinen PC neu startet.
Bei NAT zählst du die Anzahl der Provider, bestenfalls die Anzahl Städte, von denen die Besucher kommen, weil die alle über dieselbe IP rein kommen.
 
Werbung:
Nach längerer Pause wollte ich meinen IP - Besucherzähler nun mal auf die HP hochladen ... leider sieht das ganze nicht so aus, wie ich's mir vorgestellt habe ... Seht selbst:
fehler.jpg
 
Zuletzt bearbeitet:
Hier nochmal die Fehlermeldung als Text:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in/home/www/web304/html/ipbesucher.phpon line 3

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in/home/www/web304/html/ipbesucher.phpon line 3

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in/home/www/web304/html/ipbesucher.phpon line 3

Warning: mysql_query() [function.mysql-query]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in/home/www/web304/html/ipbesucher.phpon line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in/home/www/web304/html/ipbesucher.phpon line 5

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in/home/www/web304/html/ipbesucher.phpon line 6

Warning: mysql_query() [function.mysql-query]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in/home/www/web304/html/ipbesucher.phpon line 9

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in/home/www/web304/html/ipbesucher.phpon line 9

Warning: mysql_query() [function.mysql-query]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in/home/www/web304/html/ipbesucher.phpon line 12

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in/home/www/web304/html/ipbesucher.phpon line 12
Fehler in SQL-Statement
 
Zuletzt bearbeitet:
Werbung:
Hab meine Zugangsdaten überprüft und dabei einen Fehler entdeckt ... Leider erscheint noch immer eine Fehlermeldung :

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in/home/www/web304/html/ipbesucher.phpon line 6
Fehler in SQL-Statement
 
Werbung:
Werbung:
Nach all den Angaben her, gehe ich stark davon aus, dass du eine Software runtergeladen hast und die zum laufen bringen willst.

So wie es aussieht, hast du:

- 1. die Configuration nicht richtig eingestellt im Script
- 2. Die Datenbank Struktur nicht Importiert

Wenn ich mich Irre und du das selbst versucht hast zu programmieren, dann lese bitte die Fehlermeldungen, die sind meistens selbsterklärend und wenn nicht, gibt es für fast alle Fehlermeldungen, zwei dutzend Beiträge in Google.
 
Zurück
Oben