Eigener, werbefreier Website-Counter

    • Offizieller Beitrag

    Jo und um zu testen ob es auch wirklich funktioniert kannst du die Zeitspanne ja mal auf 0 setzen oder so, dann ist die IP-Sperre auf 0 sec gesetzt, dann sollte jede Akualisierung als Visit gezählt werden.

    • Offizieller Beitrag

    im ersten Script ist die Zeile...


    [php]$block = "86400"; // Zeitspanne in Sec für IP-Sperre[/php]
    ...da stellst du einfach 0 ein und dann ist die Sperre aufgehoben, klar oder? Dann aktualisierst du den Script einfach ein paar Mal und schaust bei Script Nummer 3 nach ob sich die "15" verändert hat...

  • Dies sind die Zeilen, die ich für den Counter verwende:



    <?


    // Konfiguration



    $tbl_imp = "stats_imps"; // Tablename für Impressions
    $tbl_visits = "stats_visits"; // Tablename für Visits
    $tbl_ips = "stats_ips"; // Tablename für IPs


    $db_server = "localhost"; // MySQL-Server (normal: localhost)
    $db_name = "XXX"; // Name der Datenbank
    $db_user = "XXX"; // Benutzername
    $db_pw = "XXX"; // Passwort



    // Counter



    $connect = @mysql_pconnect("$db_server","$db_user","$db_pw");
    mysql_select_db("$db_name",$connect);


    $select_count = mysql_query("select sum(value) from $tbl_visits");
    $sel = mysql_fetch_array($select_count);


    echo $sel[0];


    ?>

    • Offizieller Beitrag

    Äääähm... das von dir oben genannte Script ist nur zum Auslesen des aktuellen Besucherstands zuständig, sonst für NICHTS! Script Nummer 1 ist der Zähler, der bei jedem Aufruf zählt oder nicht zählt, je nachdem wie die Sperre in Sec. angegeben wurde. Script Nummer 2 war lediglich zur Erstellung der MySQL-Struktur. Verstanden?

  • und skript nur 3?


    <?


    // Konfiguration



    $tbl_imp = "stats_imps"; // Tablename für Impressions
    $tbl_visits = "stats_visits"; // Tablename für Visits
    $tbl_ips = "stats_ips"; // Tablename für IPs


    $db_server = ""; // MySQL-Server (normal: localhost)
    $db_name = ""; // Name der Datenbank
    $db_user = ""; // Benutzername
    $db_pw = ""; // Passwort



    // Counter



    $connect = @mysql_pconnect("$db_server","$db_user","$db_pw");
    mysql_select_db("$db_name",$connect);


    $select_count = mysql_query("select sum(value) from $tbl_visits");
    $sel = mysql_fetch_array($select_count);


    echo $sel[0];


    ?>




    gut, nachdem ich es umgestellt habe, auf post 1, bleibt noch genau eine Frage offen
    Wie kann ich es auslesen?

  • Also, ich habe mal Babes Script und das vom Black Sheep zusammengefasst und dabei kommt folgendes raus:


    [php]
    <?


    // Konfiguration



    $tbl_imp = "stats_imps"; // Tablename für Impressions
    $tbl_visits = "stats_visits"; // Tablename für Visits
    $tbl_ips = "stats_ips"; // Tablename für IPs


    $block = "0"; // Zeitspanne in Sec für IP-Sperre


    $db_server = ""; // MySQL-Server (normal: localhost)
    $db_name = ""; // Name der Datenbank
    $db_user = ""; // Benutzername
    $db_pw = ""; // Passwort



    // Counter



    $connect = @mysql_pconnect("$db_server","$db_user","$db_pw");
    mysql_select_db("$db_name",$connect);


    $time = time();
    $ip = getenv("REMOTE_ADDR");


    $hour = date("H",time());
    $day = date("d",time());
    $month = date("m",time());
    $year = date("Y",time());


    $select_imps = mysql_query("select value from stats_imps where month=$month AND year=$year");
    $select_visits = mysql_query("select nr from stats_visits where hour=$hour && day=$day && month=$month && year=$year");
    $select_user = mysql_query("select time from stats_ips where ip=$ip");


    $sel = mysql_fetch_array($select_visits);
    $sel2 = mysql_fetch_array($select_user);
    $count = 0;


    if(mysql_num_rows($select_imps)){
    mysql_query("update stats_imps set value=value+1 where month=$month AND year=$year");
    }
    else{
    mysql_query("insert into stats_imps (month,year,value) values ($month,$year,1)");
    }


    if(mysql_num_rows($select_user)!=0){
    if(($sel2[0] + $block)<=time() || (date("j",$sel2[0])!=date("j",time()))) $count = 1;
    }
    else $count = 2;


    if($count!=0){
    if(mysql_num_rows($select_visits)!=0){
    mysql_query("update stats_visits set value=value+1 where nr=$sel[0]");
    }
    else mysql_query("insert into stats_visits (hour,day,month,year,value) values ($hour,$day,$month,$year,1)");


    if($count==1) mysql_query("update stats_ips set time=$time where ip=$ip");
    if($count==2) mysql_query("insert into stats_ips (ip,time) values ($ip,$time)");
    }



    // Ausgabe



    $db = mysql_connect("$db_server","$db_user","$db_pw ") or die ("Verbindung fehlgeschlagen, Einstellungen überprüfen");
    mysql_select_db("$db_name",$db);
    $result = mysql_query("SELECT SUM(value) as gesamt FROM stats_visits");
    while($row = mysql_fetch_array($result))
    {
    echo Anzahl Impressions: ;
    echo $row[gesamt];
    }




    echo <br>;


    $news_SQL="SELECT * FROM stats_imps";
    $news_result=mysql_query($news_SQL);
    while($news=mysql_fetch_array($news_result)){
    echo Anzahl Besucher: ;
    echo $news[value];
    }


    mysql_close();




    ?>
    [/php]


    Wenn du jetzt einfach noch deine Serverdaten richtig einfügst und diesen Quelltext irgendwo in deine HP einbindest, sollte es so aussehen Link.
    Und du solltest nicht vergessen die Zeitspanne der gebockten IP zu ändern, bei mir ist sie auf Null. D.h Impressions=Besucheranzahl.


    Lg

    • Offizieller Beitrag
    Zitat

    Original von Tobi
    Also, ich habe mal Babes Script und das vom Black Sheep zusammengefasst und dabei kommt folgendes raus:


    Wenn du jetzt einfach noch deine Serverdaten richtig einfügst und diesen Quelltext irgendwo in deine HP einbindest, sollte es so aussehen Link.
    Und du solltest nicht vergessen die Zeitspanne der gebockten IP zu ändern, bei mir ist sie auf Null. D.h Impressions=Besucheranzahl.


    genau, endlich hat mich jemand verstanden ^^ ...kopier einfach den Quelltext oben, damit sollten wir das Topic jetzt endlich schließen können.

  • Nebenbei würd ich dir noch empfehlen, falls dich das Thema PHP & MySQL wirklich interessiert, ein Buch zu kaufen. Das ganze ist nämlich gar nicht so kompliziert.


    Dynamische Webseiten mit PHP 5 echt einfach
    Jochen Franke


    Verlag: Franzis
    ISBN: 3-7723-6150-1


    Ist sehr einfach aufgebaut, und haste schnell durch.
    Und für den Anfang reichts..


    Grüsse Bl@CkSheep

    AMD Athlon XP 2600+ (Tbred) | Asus A7N8X Deluxe 1.04 | 2x Kingston 256 DDR-Ram (333Mhz) | Hercules 9500Pro | Creative Audigy 2 | Samsung 160GB | WesternDigital