Ankündigung

Einklappen
Keine Ankündigung bisher.

Counter - Ip+Uhrzeit speichern und auswerten

Einklappen

Neue Werbung 2019

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

  • Counter - Ip+Uhrzeit speichern und auswerten

    Ich beschäftige mich noch nciht sehr lange mit Php (2-3 Tage) und hab eine Frage.
    Und zwar wollte ich einen Counter erstellen, nur die Hp hat mehrere Seiten. Somit würde sich der Counterstand bei jedem Seitenwechsel erhöhen.
    Also dachte ich mir, dass ich ja die Ip des Benutzers in einer Datei speichern könnte und die Besuchszeit. Wenn er nun wieder auf die Homepage geht, wird geprüft, ob die letzte Erhöhung des Counters durch diese Ip mehr als xx Minuten zurückliegt. Wenn die letzte Erhöhung mehr als xx Minuten zurückliegt, wird der Counter erhöht, sonst nicht. Ich weiß aber nicht, wie ich das machen kann. Kann mir da jemand helfen? Mein Script sieht bis jetzt so aus:
    PHP-Code:
    <?php
    $zeit
    =date("H:i:s");
    $ip=getenv("REMOTE_ADDR");
    $file=fopen("datei.txt""a")

    ?>
    Weiter komme ich nicht
    Oder muss/sollte ich das ganz anders angehen? Wenn ja, wie?
    Bin dankbar für jede Hilfe.

  • #2
    PHP-Code:
    $dateinamen "ipadress.txt";
    $handle fopen($dateinamen"w+") or die('Datei kann nicht zum Schreiben geöffnet werden');
    fwrite($handle$_SERVER['REMOTE_ADDR'] . "\n"); 
    Guggst du Google :P

    http://www.php.de/php-einsteiger/502...speichern.html

    Kommentar


    • #3
      Wie ich die Ip in eine Datei schreibe weiß ich ja, es geht mir nur drum, auch noch die Uhrzeit mit reinzuschreiben und zu prüfen, ob die letzte Erhöhung des Counters von dieser Ip länger als xx Minuten ist.

      Kommentar


      • #4
        Zitat von Ineluki Beitrag anzeigen
        Wie ich die Ip in eine Datei schreibe weiß ich ja, es geht mir nur drum, auch noch die Uhrzeit mit reinzuschreiben und zu prüfen, ob die letzte Erhöhung des Counters von dieser Ip länger als xx Minuten ist.
        Achso ok:

        Also für die Zeit kannst du das sicher mit einem Array lösen ich verwende folgendes script:

        PHP-Code:
        <?php
            $monatsnamen 
        = array(
                
        'Januar',
                
        'Februar',
                
        'M&auml;rz',
                
        'April',
                
        'Mai',
                
        'Juni',
                
        'Juli',
                
        'August',
                
        'September',
                
        'Oktober',
                
        'November',
                
        'Dezember'
            
        );
            
        $wochentagsnamen = array(
                
        'Sonntag',
                
        'Montag',
                
        'Dienstag',
                
        'Mittwoch',
                
        'Donnerstag',
                
        'Freitag',
                
        'Samstag'
            
        );
            echo 
        sprintf('%s, %d. %s %d, %s',
                
        $wochentagsnamen[date('w')],
                
        date('t'),
                
        $monatsnamen[date('n')-1],
                
        date('Y'),
                
        date('H:i')
            );
        ?>
        Das kannst du ja aber abändern. Sonst sieht es so aus:

        Freitag, 30. Juni 2010, 20:23

        Du könntest ja auch mit eine If schleiffe lösen nicht? die IP testen ob schon eingetragen und noch die Zeit abfragen und die differenz ausrechnet.

        Bin auch nur ein Anfänger.

        Kommentar


        • #5
          Danke, ich glaube, du hast mich auf eine Idee gebracht.
          Eine Frage noch: Gibt es in Php eine Funktion um einen String zwischen zwei Strings zu ermitteln?

          Kommentar


          • #6
            Zitat von Ineluki Beitrag anzeigen
            Danke, ich glaube, du hast mich auf eine Idee gebracht.
            Eine Frage noch: Gibt es in Php eine Funktion um einen String zwischen zwei Strings zu ermitteln?
            Hab noch was gefunden zwar nicht auf deine Zitierte Frage aber hier mit JavaScript + PHP:

            Index.php / .html
            Code:
            html>
            <head>
            <script language="JavaScript">
            <!--
            var Aufrufzeit = new Date();
            var Differenz = 0;
            
            function Zeitberechnung()
            {
                var AktuelleZeit = new Date();
                Differenz = parseInt((AktuelleZeit.getTime() - Aufrufzeit.getTime()) / 1000);
                setTimeout("Zeitberechnung()", 1000);
            }
            
            function OnlineZeitSpeichern()
            {
                Differenz = String(Differenz);
                Webseite = document.URL.replace(/.*\\/,"");
                Webseite = Webseite.replace(/\./,"_");
                OnlineZeitSpeichern = window.open("onlinezeitspeichern.php?Verweildauer="+Differenz+"&Webseite="+Webseite, "OnlineZeitSpeichern", "toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=0,height=0");
                OnlineZeitSpeichern.close();
            }
            //-->
            </script>
            <title>Online-Zeit des Besuchers ermitteln und Verweildauer speichern</title>
            </head>
            </html>
            <body onLoad="Zeitberechnung();" onUnLoad="OnlineZeitSpeichern();">
            Hier steht der Inhalt Ihrer Webseite.
            </form>
            </body>
            </html>

            onlinezeitspeichern.php

            PHP-Code:
            <?php

            if($Verweildauer && $Webseite)
            {
                
            $IP $_SERVER['REMOTE_ADDR'];
                
            $FilePointer fopen("verweildauer.txt""a");
                
            fwrite($FilePointer$IP." # ".$Webseite." # ".$Verweildauer."\n");
                
            fclose($FilePointer);
            }
            else
            {
                
            $FilePointer fopen("verweildauer.txt""r");
                
            $Dateiinhalt fread($FilePointerfilesize("verweildauer.txt"));
                
            fclose($FilePointer);
                echo 
            nl2br($Dateiinhalt);
            }

            ?>

            Kommentar


            • #7
              Hallo,

              bitte überarbeite deinen Threadtitel! Warum? Wie? Und bitte in Zukunft auch immer darauf achten, danke!

              Eine Frage noch: Gibt es in Php eine Funktion um einen String zwischen zwei Strings zu ermitteln?
              Evtl. suchst du http://php.net/strpos ? Oder du versuchst es mit einem regulären Ausdruck und mit http://php.net/preg_match .

              Gruß
              [URL]http://hallophp.de[/URL]

              Kommentar


              • #8
                Das Script hilft mir leider überhaupt nicht weiter, weil ich das überhaupt nicht verstehe und daher nicht weiß, wie ich die Zeit seit der letzten Erhöhung des Counters messen soll. Trotzdem Danke.

                Kommentar


                • #9
                  Warum arbeitest du nicht mit einer Datenbank, das würde einiges erleichtern.

                  Du kannst zwei Daten voneinadern abziehen, indem du sie in den entsprechenden Zeitstempel umwandelst: PHP: strtotime - Manual . Du erhälst dann die Zeit in Sekunden, die zwischen den beiden Daten vergangen ist. Damit kannst du dann einen Vergleich anstellen.
                  [URL]http://hallophp.de[/URL]

                  Kommentar


                  • #10
                    Danke, aber mit Datenbanken kenne ich mich überhaupt nicht aus Wie würde das funktionieren?

                    Kommentar


                    • #11
                      Naja, wenn du noch nicht mit Datenbanken gearbeitet hast, empfehle ich zuerst mal ein gutes Tutorial, z.B. Quakenet/#php Tutorial - de - MySQL für den Anfang (oder einfach mal selbst googlen).

                      Ansonsten schau dir mal strtotime() an, vielleicht kommst du damit ja schon weiter.

                      Je nachdem wir groß dein Projekt werden soll, solltest du dir aber gut überlegen, ob du nicht doch lieber auf Datenbanken umsteigen möchtest.
                      [URL]http://hallophp.de[/URL]

                      Kommentar

                      Lädt...
                      X