Ankündigung

Einklappen
Keine Ankündigung bisher.

Besucher zähler alle Aufrufe und Reloads in Datenbank eintragen

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

  • Besucher zähler alle Aufrufe und Reloads in Datenbank eintragen

    ALL-INKL.COM - Webhosting Server Hosting Domain Provider
    Hallo Forum,
    ich habe ein kleines Problem.

    Ich habe damit begonnen auf meiner Homepage [Dashboard] einige Statistiken zu erheben. nun möchte ich neben meinem "Unique Counter" auch noch einen Gesamt Counter haben.
    Das Problem dabei ist nun, dass nur 1mal der Wert in die Datenbank eingetragen wird und dann bei jedem weiteren Aufruf oder Neuladen nicht mehr.

    Die Mysql Tabelle ist wie folgt aufgebaut:
    - id (primarykey)
    - ip_address [user_ip]
    - visit_date [datetime stamp]

    Und hier das Script welches beim Laden der Homepage aufgerufen wird:
    PHP-Code:
    <?php
        $visitor_ip
    =$_SERVER['REMOTE_ADDR'];
        
    $visitor_hash_ip md5($visitor_ip,);

        
    $query "SELECT * FROM visitors_unique WHERE ip_address='$visitor_hash_ip'";
        
    $result mysqli_query($conn$query);

        if(!
    $result){
            die(
    "Retriving Query Error<br>".$query);
        }
        
    $total_visiotrs=mysqli_num_rows($result);
        if(
    $total_visiotrs<1){
            
    $query="INSERT INTO visitors_unique(ip_address) VALUES('$visitor_hash_ip')";
            
    $result=mysqli_query($conn$query);
        }

        
    /* ------------------------------------------------------------------- */

        
    $query="INSERT INTO visitors(ip_address) VALUES('$visitor_hash_ip')";
        
    $result=mysqli_query($conn$query);
    ?>

    Wie schaffe ich es nun immer einen neuen Eintrag zu erstellen um die Aufrufe zu zählen?

    Über hilfreiche Antworten würde ich mich freuen.

    mfg ThegreenY
    A computer program does what you tell it to do, not what you want it to do.

  • #2
    Hast du in der Tabelle visitors evtl. einen unique Index auf das Feld ip_address gesetzt?
    sigpic

    Kommentar


    • #3
      Erstmal Danke für die Antwort,
      Die Tabelle hatte wirklich im Feld ip_address den Index auf unique gesetzt, obwohl ich das garnicht gesetzt habe.
      Jetzt funktioniert es.
      A computer program does what you tell it to do, not what you want it to do.

      Kommentar


      • #4
        Ich bin es nochmal, ich glaube für die Sql Abfragen bin ich einfach nicht Lernfähig, ich habe einen blöden fehler.

        Ich möchte einfach nur überprüfen ob der Nutzer mit "ip: wasweißich" in den letzten 24Stunden schon einmal in die Datenbank eingetragen wurde, wenn dem so ist einfach nichts machen, falls dem nicht so ist den nutzter eintragen.
        Nun zerhaut mir aber genau diese Abfrage seid 3Tagen die gesamte Seite und ich finde den fehler einfach nicht.

        Hier die Abfrage:
        PHP-Code:
        /*(Daily)*/
        $sql "SELECT * FROM visitors WHERE left(`visit_date`,10)= curdate() AND ip_address='$visitor_hash_ip'";
        if (
        $erg $conn->query($sql)) {
        while (
        $datensatz $erg->fetch_object()) {
        $daten[] = $datensatz;
        }
        }
        $result $conn->query($sql);

        if(!
        $result){
        die(
        "Retriving Query Error<br>".$query);
        }

        $visiotrs=mysqli_num_rows($result);
        if(
        $visiotrs<1){
        $query="INSERT INTO visitors(ip_address) VALUES('$visitor_hash_ip')";
        $result=mysqli_query($conn$query);

        Über schnelle Hilfe würde ich mich freuen.
        A computer program does what you tell it to do, not what you want it to do.

        Kommentar


        • #5
          Also zuerst einmal kannst du dir die zweite Abfrage sparen, da du die Zeilen schon in $data speicherst:
          PHP-Code:
          /*(Daily)*/
          $daten = array(); // Sollte initialisiert werden, sonst wirft count($daten) einen Fehler/Warning

          $sql "SELECT * FROM visitors WHERE left(`visit_date`,10)= curdate() AND ip_address='$visitor_hash_ip'";
          if(
          $erg $conn->query($sql)) {
            while(
          $datensatz $erg->fetch_object()) {
              
          $daten[] = $datensatz;
            }
          } else {
            die(
          "Retriving Query Error<br>" $query);
          }

          $visiotrs count($daten);
          if(
          $visiotrs 1) {
            
          $query "INSERT INTO visitors(ip_address) VALUES('$visitor_hash_ip')";
            
          $result mysqli_query($conn$query);


          Probiere mal aus, ob dieser Code funktioniert. Falls nicht, beschreibe bitte, was an der Seite zerschiesst.
          sigpic

          Kommentar


          • #6
            Nein er funktioniert leider nicht, sobald ich eine Seite Aufrufe wo etwas anderes danach ausgelesen wird, gibt er mir dort einfach einen wert mehr aus.

            Der Code wird auf jeder Seite wie folgt geladen:

            PHP-Code:
            <?php
            require_once('dashboard/includes/dbh.inc.php');
            include(
            "header_footer/header.php");
            $site_name "Home";
            include(
            'dashboard/includes/visitors.inc.php');
            ?>
            Der Fehler auf der Seite sieht dann natürlich wie folgt aus:
            Code:
            Notice: Undefined property: stdClass::$created in E:\Benutzer\Documents\Xampp\htdocs\Mc-Nexus\Homepage v.1.4.4\index.php on line 51
            Notice: Undefined property: stdClass::$edited in E:\Benutzer\Documents\Xampp\htdocs\Mc-Nexus\Homepage v.1.4.4\index.php on line 51
            Notice: Undefined property: stdClass::$created in E:\Benutzer\Documents\Xampp\htdocs\Mc-Nexus\Homepage v.1.4.4\index.php on line 52
            Notice: Undefined property: stdClass::$author in E:\Benutzer\Documents\Xampp\htdocs\Mc-Nexus\Homepage v.1.4.4\index.php on line 53
            am 01.01.1970
            Notice: Undefined property: stdClass::$title in E:\Benutzer\Documents\Xampp\htdocs\Mc-Nexus\Homepage v.1.4.4\index.php on line 58
            Notice: Undefined property: stdClass::$text in E:\Benutzer\Documents\Xampp\htdocs\Mc-Nexus\Homepage v.1.4.4\index.php on line 60
            Notice: Undefined property: stdClass::$text in E:\Benutzer\Documents\Xampp\htdocs\Mc-Nexus\Homepage v.1.4.4\index.php on line 61
            A computer program does what you tell it to do, not what you want it to do.

            Kommentar


            • #7
              Hallo,

              ich würde eine procedure anlegen und diese dann immer aufrufen:

              Im Anhang der Code zum Anlegen der Procedure.

              Es ist noch ein Feld page_views in der Tabelle visitors, das sind die seitenaufrufe an diesem Tag von dem User (IP).

              Ausführen tust du dies dann wie folgt:

              Code:
              call SetIpAddress('127.0.0.1')
              Gruß

              Edit: Der Editor hier im Forum hat mich den Code nicht mal einfügen lassen... Warum nicht?
              Musst Zeile für Zeile kopieren und dann kam beim Versuch zu Antworten eine Fehlermeldung. Deshalb die angehängte Datei.

              Gruß
              Angehängte Dateien
              Zuletzt geändert von Testie; 20.01.2020, 19:03.

              Kommentar


              • #8
                Zitat von Testie Beitrag anzeigen
                Hallo,

                ich würde eine procedure anlegen und diese dann immer aufrufen:
                Die idee finde ich interessant, nur denke ich nicht dass es so funktioniert, ich bin derzeit noch an die Tabellen Struktur gebunden und kann daher nicht einfach etwas hinzufügen.
                So wie ich dass jetzt verstanden habe benötige ich ja das feld "page_views" damit ich dann die Anzahl später auslesen kann.

                Sollte ich da falsch liegen, dann verbessert mich bitte.
                A computer program does what you tell it to do, not what you want it to do.

                Kommentar


                • #9
                  Du kannst den insert ja anpassen und das Update rausnehmen.

                  Kommentar


                  • #10
                    Wie auch immer das funktioniert oder funktionieren soll, es passiert nichts mehr.
                    Könnte ich bitte bei der einfachen sql Abfrage bleiben und nicht irgendwelche Umständlichen wege nehmen?

                    Ich versuche jetzt seid 2 Monaten den Fehler zu beheben und so langsam habe ich keine Lust mehr und möchte es einfach funktionierend haben.
                    A computer program does what you tell it to do, not what you want it to do.

                    Kommentar


                    • #11
                      Etwas Eigeninitiative erwarte ich schon.

                      bist du dir sicher das es an diesem PHP/MySQL Block überhaupt liegt? Was ist denn in der Index.php bei Zeile 53-60?

                      Kommentar


                      • #12
                        Zitat von Testie Beitrag anzeigen
                        Etwas Eigeninitiative erwarte ich schon.

                        bist du dir sicher das es an diesem PHP/MySQL Block überhaupt liegt? Was ist denn in der Index.php bei Zeile 53-60?
                        Zu 10.000% sobald ich nämlich genau den Teil rausnehme funtkioniert alles einwandfrei, die angegebenen Zeilen sind von der Abfrage danach, da dort zuerst ein leerer wert zurück gegeben wird, der da nicht sein dürfte.
                        Ist aber auch nur so wenn ich den Teil einsetzte, ist der raus klappt es ohne Probleme.
                        A computer program does what you tell it to do, not what you want it to do.

                        Kommentar


                        • #13
                          Um es nochmal zu erklären, der Fehler tritt nur dann auf, wenn ich den CodeAbschnitt nutze. Ist der Code nicht drin, funktionieren alle Seiten, sobald ich den Code mit nutze funktioniert keine Seite mehr und alle haben den Fehler, also kann es ja nur an dem CodeAbschnitt liegen.
                          A computer program does what you tell it to do, not what you want it to do.

                          Kommentar


                          • #14
                            "funktionieren nicht" und "haben den Fehler" sind schlechte Problembeschreibungen. Wie äußert sich das denn genau, wenn eine Seite nicht funktioniert?

                            Kommentar


                            • #15
                              ALL-INKL.COM - Webhosting Server Hosting Domain Provider
                              Zitat von Sempervivum Beitrag anzeigen
                              "funktionieren nicht" und "haben den Fehler" sind schlechte Problembeschreibungen. Wie äußert sich das denn genau, wenn eine Seite nicht funktioniert?
                              Den Fehler, dass ein leerer oder nicht vorhandener Wert ausgegeben wird, wie in einer Vorherigen Antwort schon geschrieben.
                              A computer program does what you tell it to do, not what you want it to do.

                              Kommentar

                              homepage-forum.de - Hilfe für Webmaster! Statistiken

                              Einklappen

                              Themen: 56.589   Beiträge: 428.030   Mitglieder: 28.180   Aktive Mitglieder: 51
                              Willkommen an unser neuestes Mitglied, sosix.

                              Online-Benutzer

                              Einklappen

                              981 Benutzer sind jetzt online. Registrierte Benutzer: 1, Gäste: 980.

                              Mit 3.502 Benutzern waren am 23.01.2020 um 18:20 die meisten Benutzer gleichzeitig online.

                              Die neuesten Themen

                              Einklappen

                              Die neuesten Beiträge

                              Einklappen

                              • soziale
                                Programmierer für kleines Script gesucht !
                                Moin,

                                suche jemanden der mir ein Script in php erstellen kann, natürlich gegen Bezahlung!

                                habe schon soviel Firmen angeschrieben aber keiner hatte Ressourcen und es war zu klein -_- wer kann, bekommt weitere Infos per PN

                                !
                                20.02.2020, 10:30
                              • sosix
                                Antwort auf Programmierer für kleines Script gesucht !
                                Schicke mir eine private Nachricht...
                                Gestern, 01:00
                              • sosix
                                Gutscheine für Frauentag
                                ...
                                Gestern, 00:55
                              • Testie
                                Nutzt wer die großen JS Frameworks?
                                Hallo,

                                ich wollte mal wissen welche Frameworks ihr im Bereich Web nutzt? Angular, React or vue.js?

                                Oder ist dieses Forum auf dem Stand vor 10 Jahren stehengeblieben (z.B.: PHP fürs Frontend)? Manchmal kommt es mir hier so vor.

                                Ich nutze nur noch vue.js und für...
                                19.02.2020, 18:47
                              • Ingo
                                Antwort auf Nutzt wer die großen JS Frameworks?
                                Hi,


                                das stimmt nicht ganz. vue.js kann zwar mit dem Node Package Manager viel schlanker als Angular oder React implementiert werden, aber die JavaScript-Funktionen, die ich benötige, kann ich auch ohne Framework programmieren und erspare mir dann auch ggf. nötige Aktualisiesungen...
                                20.02.2020, 22:07
                              • Testie
                                Antwort auf Nutzt wer die großen JS Frameworks?
                                Hallo,

                                vielleicht hätte ich nicht fragen sollen "welche" sondern "ob" hier jemand auch moderne JS Frameworks verwendet und mit node.js, websocket, npm, git, cli, etc. arbeitet.

                                Ich wollte PHP keineswegs schlecht reden, mit PHP Frontend meinte ich eher so...
                                20.02.2020, 17:55
                              • Localfu
                                Antwort auf Nutzt wer die großen JS Frameworks?
                                Zu JS-Frameworks scheiden sich die Geister. Ich erspare mir viel, viel Arbeitszeit und meine Frameworks sind um die max. 90kb groß. Das ist selbt für mobile Endgeräte nix mehr.

                                Zu PHP: Es wäre dämlich wen jede/jeder dein PHP-Code einsehen könnte. Damit könnte man schnell Schwachstellen...
                                20.02.2020, 16:26
                              • Ingo
                                Antwort auf Nutzt wer die großen JS Frameworks?
                                Hi,
                                ich finde JS-Frameworks zu überladen, Wenn ich nur ein paar Sachen in JS anbieten will, dann programmiere ich mir die benötigten Funktionen selbst und ersparte den Besuchern den Download des Frameworks. Wer das nicht kann, sollte natürlich Frameworks nutzen.

                                PHP für's Frontend?...
                                19.02.2020, 22:38
                              • Localfu
                                Antwort auf Nutzt wer die großen JS Frameworks?
                                Hi Testie, ich verstehe deinen Beitrag nicht. Einerseits schreibst du von JavaScript Frameworks und anderseitig von PHP und dann von Programmiersprachen die nur serverseitig genutzt werden.

                                PHP7 ist nicht stehen geblieben und auf dem Weg zu PHP8. Performancetschnisch ist PHP7 um vielfaches...
                                19.02.2020, 19:01
                              • admin
                                Ausgabe eines Inhaltes via PHP datumsabhängig steuern
                                Hallo,

                                ich möchte einen Inhalt datumsabhängig anzeigen lassen.

                                Beispiel:

                                Start: 15.02.
                                Ende 15.09.

                                Wenn das aktuelle Datum innerhalb dieses Zeitfensters liegt, soll ein Inhaltselement ausgegeben werden.
                                Das Jahr soll keine Rolle spielen,...
                                17.02.2020, 19:02
                              Lädt...
                              X