Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage bzgl eines vllt bisschen komplexen counters...

Einklappen

Neue Werbung 2019

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

  • Frage bzgl eines vllt bisschen komplexen counters...

    Also - ich bin neu hier und kenn mich fast garnet mit php aus - also net bös sein :wink:

    Ich bräuchte einen Counter, der folgende Eigenschaften hat:

    1.) der Counter soll auf der Startseite meiner HP oder halt in meinem Menüframe die Besucher zählen, aber nicht den Zählerstand anzeigen !
    2.) man soll den Counter auf einer anderen Seite meiner HP auslesen können (s. oben)
    3.) der Counter sollte eine IP-Sperre haben (1 stunde)
    4.) der Counter soll nicht durch Zahlen angezeigt werden, sondern durch Bilder (da ich Bilder für die einzelnen Zahlen hab)
    5.) eine Anzeige von Besuchern heute, gestern und total wäre auch nicht verkehrt

    ich hab schon mal das Forum durchwühlt und bin dabei auf den counter von hier gestoßen, der müsste also nur noch durch die Punkte 1,2 und 4 erweitert werden

    kann mir da jmnd helfen ???

  • #2
    Gesuche Forum wäre sicher das richtige

    code just for fun ? ( oder wie sehe ich das ? )

    mfg

    Kommentar


    • #3

      ich wollt ja nur mal fragen ob mir jemand helfen könnte...

      Kommentar


      • #4
        Nimm doch einfach den Code. Befasse Dich ein wenig damit und Du wirst feststellen das der Counter genau das ist was Du suchst.

        Du musst nur noch den "Zähler Teil" vom "Anzeige Teil" trennen und den Zähler Teil da einbauen wo er zählen soll und den Anzeige Teil da wo er anzeigen soll.

        Und die Angezeigte Zahl zerlegst Du einfach ein einzele Zahlen (falls es mehr als 1 Stelle ist) und machst das mit einer switch-Abfrage die dann den "Bilder-Code" zurückgibt.

        Ganz einfach und mit etwas begeisterung auch für einen Anfänger zu schaffen.

        Lernen durch Probieren!!

        Kommentar


        • #5
          Zitat von Zyk|øm

          ich wollt ja nur mal fragen ob mir jemand helfen könnte...
          Helfen schon aber nicht alles servieren!

          Kommentar


          • #6
            Ok - den 1. Teil krieg ich vllt noch hin - gibts da irgendwas zu beachten ??

            Zitat von KayZee
            Und die Angezeigte Zahl zerlegst Du einfach ein einzele Zahlen (falls es mehr als 1 Stelle ist) und machst das mit einer switch-Abfrage die dann den "Bilder-Code" zurückgibt.
            versteh ich net

            ich sagte ja, dass ich mich net auskenn, sondern nur die eine funktion in meiner hp bräuchte...

            Kommentar


            • #7
              Zitat von juhuwoorps
              Zitat von Zyk|øn

              ich wollt ja nur mal fragen ob mir jemand helfen könnte...
              Helfen schon aber nicht alles servieren!
              was heißt alles servieren - sowas wie KayZee geschrieben hat würde schon langen (wenn ich nur den 2. Teil verstehen würde)

              Kommentar


              • #8
                Wenn Du jetzt auch noch ganz dezent angemerkt hättest was genau Du nicht verstehst hätte ich Dir schon noch mal weitergeholfen

                Kommentar


                • #9
                  garnix, von dem was du gesagt hast

                  klingt komisch, is aber so

                  kann ich den code einfach so zwischen zähler und anzeige trennen, oder muss ich da beim zähler noch schlusscodes einfügen wie z.B. </xyz> und bei der anzeige wieder solche anfangscodes ??

                  Kommentar


                  • #10
                    müsste dann der folgende code gehen - hab einfach getrennt und <php / ?> eingefügt - oder muss ich bei der anzeige auch nochmal die variablen angeben ?
                    Code:
                    <?php
                    $count = "count.txt"; // Hier steht der Dateiname der Datei, in der der Counter-Stand gespeichert werden soll.
                    $ipdatei = "ip.txt"; // Hier steht der Dateiname der Datei, in der der die IPs gespiechert werden sollen.
                    $dauer = 60; // Hier steht, wie lange eine IP gespeichert werden soll (Angabe in Minuten)
                    
                    $countnew = $count;
                    $aktip = $_SERVER['REMOTE_ADDR']; // Die IP des Busuchers wird abgefragt
                            if (($aktip == "127.0.0.1") && ($_SERVER['HTTP_X_FORWARDED_FOR'] != ""))
                                    {
                                    $aktip = $_SERVER['HTTP_X_FORWARDED_FOR'];
                                    }
                    checkip($aktip); // Die Funktion checkip wird aufgerufen
                    
                    // Es wird eine Funktion für den IP-Check erstellt:
                    function checkip($ip)
                    {
                    global $dauer,$ipdatei;
                    $exists = FALSE;
                    $timestamp = time();
                    $file = file($ipdatei);
                    $ipdatei = fopen($ipdatei,"w+");
                    foreach ($file as $line) 
                        {
                        $exp_line = explode("|", $line);
                            if ($exp_line[0] == $ip) // Wenn die IP schon vorhanden ist:
                                {
                                $exists = TRUE; // Die IP existiert schon ... 
                                if(($exp_line[1]+ 60*$dauer) < $timestamp) // Es wird getestet ob die Ip noch gespeert ist (ob der letzte Besuch länger als $dauer her ist. 
                                    {
                                    fputs($ipdatei, "$exp_line[0]|$timestamp\n"); // Es werden neue Daten für diese IP geschrieben
                                    zaehlen(); // Hier wird der Zähler für die Statistik aufgerufen
                                    }
                                else // Die IP ist noch gespeert ... 
                                    {
                                    fputs($ipdatei, "$line");
                                    }
                                }
                            else // Wenn die IP noch nicht vorhanden ist:
                                {
                                if(($exp_line[1]+ 60*$dauer) > $timestamp)
                                    {
                                    fputs($ipdatei, "$line"); 
                                    }
                                }
                            }
                    if ($exists == FALSE) // Wenn $exists nicht TRUE ist, ist die IP neu und sie wird eingefügt:
                            {
                            fputs($ipdatei, "$ip|$timestamp\n"); 
                            zaehlen(); //  Hier wird der Zähler für die Statistik aufgerufen
                            }
                    fclose($ipdatei);
                    statis();
                    }        
                    
                    // Hier wird die Funktion zum zählen der Besucher erstellt
                    function zaehlen()
                    {
                    global $count;    
                    $date = date("d.m.y.");
                    $tstamp  = mktime(0, 0, 0, date("m"), date("d")-1, date("y")); // $tstamp bekommt den gestrigen Tag zugewiesen
                    $gestern = date("d.m.y.", $tstamp);
                    $time = date("H:i:s");
                    $counttemp = fopen($count,"r");
                    $inhalt = fgets($counttemp, 1000);
                    list($ctotalold,$dateold,$hits,$dategestern,$hitsgestern) = explode("|",$inhalt);
                    $ctotalold++;
                    $ctotal = $ctotalold;
                    if ($dateold == $date)
                    {
                    $hits++;
                    }
                    elseif ($dateold == $gestern)
                        {
                        $dategestern = $dateold;
                        $hitsgestern = $hits;
                        $hits = 1;
                        }
                    else
                    {
                    $hits = 1;
                    $dategestern = $gestern;
                    $hitsgestern = 0;
                    }
                    $new_line = "$ctotal|$date|$hits|$dategestern|$hitsgestern";
                    fclose ($counttemp);
                    $count = fopen($count,"w+");
                    fputs ($count,$new_line);
                    fclose ($count);
                    }
                    ?>
                    
                    ===================================================================================================
                    ===================================================================================================
                    ===================================================================================================
                    
                    <?php
                    // Und noch eine Funktion um die Zählerstände auszugeben:
                    function statis()
                    {
                    global $countnew,$dauer;
                    $countnew = fopen($countnew,"r");
                    $inhalt = fgets($countnew, 1000);
                    list($ctotalold,$dateold,$hits,$dategestern,$hitsgestern) = explode("|",$inhalt);
                    echo "Besucherz&auml;hler:
                    ";
                    echo "heute: $hits Zugriffe
                    ";
                    echo "gestern: $hitsgestern Zugriffe
                    ";
                    echo "total: $ctotalold Zugriffe
                    ";
                    echo "Ihre IP wird f&uuml;r $dauer min gespeert!
                    ";
                    fclose ($countnew);
                    }
                    ?>

                    Kommentar


                    • #11
                      Hmmmm, naja, ich denke Du solltest Dir dann doch erst mal die Grundlagen von PHP zugute führen.

                      Ich hab mir den Code grade nochmal genau angeschaut. Der ist sogar in einzelne Funktionen unterteilt. Also ich mein, die letzte Funktion ist praktisch der "Anzeige-Teil" ... Der Teil der für die Anzeige des Counters zuständig ist.

                      Der Teil drüber ist für die IP-Sperre und das Zäglen verantwortlich.

                      Und Du musst das jetzt nur noch trennen. je nachdem wo Du was haben willst musst Du den Code mit einbinden.

                      Und wenn Du anstatt Zahlen Deine Bilder haben willst musst Du in dem "Anzeige-Teil" (letzte Funktion) die zurückgegebenen zahlen ... also $hits, $hitsgestern und $ctotalold ...ein einzelne Ziffern zerlegen. und diesen Ziffern den Bilder-Code zuweisen. (Am besten mit einer Switch-Abfrage)

                      Weitere Infos findest Du unter den Links in meiner Signatur ...Ich hoffe Du kommst weiter

                      Kommentar


                      • #12
                        Die Variablen musst Du auch nochmal angeben. Woher soll der "Anzeige Teil" denne sonst wissen in welcher Datei er die Counterstände findet ...

                        Kommentar


                        • #13
                          genau das war meine frage - das mit den zahlen probier ich mal und schau mal was geht...

                          Kommentar


                          • #14
                            so - ich würde jetzt auf den code kommen (ohne die bilder)

                            Code:
                            <?php
                            $count = "count.txt"; // Hier steht der Dateiname der Datei, in der der Counter-Stand gespeichert werden soll.
                            $ipdatei = "ip.txt"; // Hier steht der Dateiname der Datei, in der der die IPs gespiechert werden sollen.
                            $dauer = 60; // Hier steht, wie lange eine IP gespeichert werden soll (Angabe in Minuten)
                            
                            $countnew = $count;
                            $aktip = $_SERVER['REMOTE_ADDR']; // Die IP des Busuchers wird abgefragt
                                    if (($aktip == "127.0.0.1") && ($_SERVER['HTTP_X_FORWARDED_FOR'] != ""))
                                            {
                                            $aktip = $_SERVER['HTTP_X_FORWARDED_FOR'];
                                            }
                            checkip($aktip); // Die Funktion checkip wird aufgerufen
                            
                            // Es wird eine Funktion für den IP-Check erstellt:
                            function checkip($ip)
                            {
                            global $dauer,$ipdatei;
                            $exists = FALSE;
                            $timestamp = time();
                            $file = file($ipdatei);
                            $ipdatei = fopen($ipdatei,"w+");
                            foreach ($file as $line) 
                                {
                                $exp_line = explode("|", $line);
                                    if ($exp_line[0] == $ip) // Wenn die IP schon vorhanden ist:
                                        {
                                        $exists = TRUE; // Die IP existiert schon ... 
                                        if(($exp_line[1]+ 60*$dauer) < $timestamp) // Es wird getestet ob die Ip noch gespeert ist (ob der letzte Besuch länger als $dauer her ist. 
                                            {
                                            fputs($ipdatei, "$exp_line[0]|$timestamp\n"); // Es werden neue Daten für diese IP geschrieben
                                            zaehlen(); // Hier wird der Zähler für die Statistik aufgerufen
                                            }
                                        else // Die IP ist noch gespeert ... 
                                            {
                                            fputs($ipdatei, "$line");
                                            }
                                        }
                                    else // Wenn die IP noch nicht vorhanden ist:
                                        {
                                        if(($exp_line[1]+ 60*$dauer) > $timestamp)
                                            {
                                            fputs($ipdatei, "$line"); 
                                            }
                                        }
                                    }
                            if ($exists == FALSE) // Wenn $exists nicht TRUE ist, ist die IP neu und sie wird eingefügt:
                                    {
                                    fputs($ipdatei, "$ip|$timestamp\n"); 
                                    zaehlen(); //  Hier wird der Zähler für die Statistik aufgerufen
                                    }
                            fclose($ipdatei);
                            statis();
                            }        
                            
                            // Hier wird die Funktion zum zählen der Besucher erstellt
                            function zaehlen()
                            {
                            global $count;    
                            $date = date("d.m.y.");
                            $tstamp  = mktime(0, 0, 0, date("m"), date("d")-1, date("y")); // $tstamp bekommt den gestrigen Tag zugewiesen
                            $gestern = date("d.m.y.", $tstamp);
                            $time = date("H:i:s");
                            $counttemp = fopen($count,"r");
                            $inhalt = fgets($counttemp, 1000);
                            list($ctotalold,$dateold,$hits,$dategestern,$hitsgestern) = explode("|",$inhalt);
                            $ctotalold++;
                            $ctotal = $ctotalold;
                            if ($dateold == $date)
                            {
                            $hits++;
                            }
                            elseif ($dateold == $gestern)
                                {
                                $dategestern = $dateold;
                                $hitsgestern = $hits;
                                $hits = 1;
                                }
                            else
                            {
                            $hits = 1;
                            $dategestern = $gestern;
                            $hitsgestern = 0;
                            }
                            $new_line = "$ctotal|$date|$hits|$dategestern|$hitsgestern";
                            fclose ($counttemp);
                            $count = fopen($count,"w+");
                            fputs ($count,$new_line);
                            fclose ($count);
                            }
                            ?>
                            
                            ===================================================================================================
                            ===================================================================================================
                            ===================================================================================================
                            <?php
                            $dauer = 60;
                            $count = fopen($count,"w+");
                            $countnew = $count;
                            $ctotal = $ctotalold;
                            $inhalt = fgets($counttemp, 1000);
                            
                            
                            // Und noch eine Funktion um die Zählerstände auszugeben:
                            function statis()
                            {
                            global $countnew,$dauer;
                            $countnew = fopen($countnew,"r");
                            $inhalt = fgets($countnew, 1000);
                            list($ctotalold,>>>>$dateold,$hits,$dategestern,$hitsgestern<<<<) = explode("|",$inhalt);
                            echo "Besucherz&auml;hler:
                            ";
                            echo "heute: $hits Zugriffe
                            ";
                            echo "gestern: $hitsgestern Zugriffe
                            ";
                            echo "total: $ctotalold Zugriffe
                            ";
                            echo "Ihre IP wird f&uuml;r $dauer min gespeert!
                            ";
                            fclose ($countnew);
                            }
                            ?>
                            sind das alle variablen, die ich brauch - die für "$dateold $hits $dategestern $hitsgestern" kann ich net finden - da finde ich nur angaben von werten, die es ausgeben soll, aber keine angaben, die beschreiben, was die variablen sind...


                            btw:
                            wenn da steht
                            Code:
                            $countnew = $count
                            und der skript nach $count fragt - kann er dass erkennen, oder muss ich noch
                            Code:
                            $count = $countnew
                            schreiben ?

                            Kommentar


                            • #15
                              meiner ansicht nach nicht die besten .. aber vielleicht helfen dir ja die tutorials:
                              http://www.tutorials.de/tutorials146689.html
                              http://www.tutorials.de/tutorials13268.html
                              http://www.tutorials.de/tutorials10216.html

                              etc.

                              grüße ben.

                              Kommentar

                              Lädt...
                              X