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

    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, 18: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
                              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.688   Beiträge: 429.020   Mitglieder: 28.453   Aktive Mitglieder: 108
                              Willkommen an unser neuestes Mitglied, paul99.

                              Online-Benutzer

                              Einklappen

                              159 Benutzer sind jetzt online. Registrierte Benutzer: 1, Gäste: 158.

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

                              Die neuesten Themen

                              Einklappen

                              • Localfu
                                Antwort auf Recht auf Herausgabe der Website-Login Daten
                                (keine Rechtsberatung - könnte Fehler enthalten)

                                Hi ThomasZ. , natürlich hat der Kunde das Recht die Zugangsdaten zu erhalten. Es ist quasi seine Seite und wurdest nur beauftragt entweder die Seite zu erstellen und/oder zu verwalten. Du solltest bei Nachfrage ohne Begründung die Daten...
                                Gestern, 18:13
                              • arnego2
                                Antwort auf Recht auf Herausgabe der Website-Login Daten
                                Wenn er den Server zahlt na klar, wenn ich eine Seite auf meinen Server habe dann nicht.
                                Sollte er es trotzdem wollen suche ich ihm einen Server. Klar Jimdo, Wix etc Webseiten machen wir nicht....
                                Gestern, 14:52
                              • arnego2
                                Antwort auf tree.js läuft irgendwie nicht ;(
                                Du solltest mehr Details rausgeben, welches Program du nutzt, ob mit Windows, MAC oder Linux und welche Distro.
                                Etwas mehr was du planst mit tree.js sowie den boilerplatte starter kits.
                                Neue Techniken sind ja gut und schön aber sehe es dir an wie lazyloading von voll hipp zu nicht mehr...
                                Gestern, 14:49
                              • paul99
                                tree.js läuft irgendwie nicht ;(
                                problem gelöst danke.....
                                Gestern, 13:03
                              • ThomasZ.
                                Recht auf Herausgabe der Website-Login Daten
                                Ich habe als Webagentur einen Kunden, für den ich vor Jahren eine Jimdo - Webseite gemacht habe und ich im Dashboard als Rechnungsempfänger und Ansprechpartner eingetragen bin. Einen offiziellen Vertrag für die Pflege und Aktualisierung für die Website habe ich mit
                                dem Kunden allerdings...
                                Gestern, 12:48

                              Die neuesten Beiträge

                              Einklappen

                              Lädt...
                              X