Ankündigung

Einklappen
Keine Ankündigung bisher.

counter für zugriffe gesamt, heute & gestern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • counter für zugriffe gesamt, heute & gestern

    Hallo,

    ich habe mir mit hilfe eines tutorial einen counter erstellt der auch soweit sehr gut funktioniert. aber ich möchte nicht nur die zugriffe auf die domain wissen, sondern auch von einigen unterseiten.

    auf den jeweiligen seiten habe ich entsprechend den script abgeändert. aber irgendwie werden die zugriffe nicht gezählt. ich vermute das es irgendwas mit "$_SERVER['REMOTE_ADDR'" zu tun hat. wird der wert irgendwo gespeichert , ähnlich wie bei Sessions?

    hier ist erstmal der script:

    PHP-Code:
    <?
    $db_host = "xxxxxxxx";
    $db_user = "xxxxxxx";
    $db_password = "xxxxxxxxxx";
    $db_name = "xxxxxxxxx";
    mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
    mysql_select_db($db_name) or die (mysql_error());

    function check($ip)
        {
            if(mysql_num_rows(mysql_query("SELECT ip FROM `counter_ip_aktuell` WHERE `ip` = '$ip' AND `day` = '".date("j")."'")) == 0)
                {
                    mysql_query("INSERT INTO counter_ip_aktuell (day, month, time, ip) VALUES ('".date("j")."', '".date("n")."', '".time()."', '$ip')") or die(mysql_error());
                    mysql_query("update counter_aktuell SET `count` = '".read(all)."'+1 WHERE `id` = '1' ") or die(mysql_error());
                }
        }
        
    function read($value)# $value ist entweder all, yesterday oder today
        {
            if($value == "all")
                {
                    $all = mysql_fetch_array(mysql_query("SELECT count FROM `counter_aktuell`"));
                    return $all[0];
                }
            elseif($value == "yesterday")
                {
                    $yesterday = date("j")-1;
                    return mysql_num_rows(mysql_query("SELECT * FROM `counter_ip_aktuell` WHERE `day` = '$yesterday'"));
                }
            elseif($value == "today")
                {
                    $today = date("j");
                    return mysql_num_rows(mysql_query("SELECT * FROM `counter_ip_aktuell` WHERE `day` = '$today'"));
                }
            else
                {
                    return "Ungültige Angabe. Bitte verwenden Sie entweder all, yesterday oder today als Parameter für die Funktion read().";
                }
        }
        
    function delete()
        {
            $yesterday = date("j", time()-60*60*24*2);
            mysql_query("DELETE FROM `counter_ip_aktuell` WHERE `day` <= '".$yesterday."'");
        }    
        
        
    echo check($_SERVER['REMOTE_ADDR']);
    echo delete();
    ?>
    Der script funktioniert bestens wenn ich nur zugriffe von auf die domain (index.php) zähle.

  • #2
    Du unterscheidest doch aber garnicht für welche Seite du zählst?!

    Finde auch die Namensgebung verwirrend, du baust einen Counter mit Funktionsnamen wie read() und delete()?!

    Kommentar

    Lädt...
    X