Ankündigung

Einklappen
Keine Ankündigung bisher.

refresh sperre gesucht

Einklappen

Neue Werbung 2019

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

  • refresh sperre gesucht

    hiho ich hab einen besucher counter erstellt der die letzten besucher eines profils mit namen und datum des besuchers anzeigt jedoch ist mir jetzt etwas aufgefallen das ich umbedingt eine reload sperre oder sowas brauche da ansonsten doppelt eingetraegen emstehen.

    ihr habt doch bestimmt einen guten tipp für mich wie ich das am besten löse

    gruß

    Code:
    ######################################################
    
    $profil_id = $_GET['id'];
    $besucher_id = $account['users_id'];
    $besucher_nick = $account['users_nick'];
    $ip = cs_sql_escape($_SERVER['REMOTE_ADDR']);
    $time = cs_time();
    
    $hits_cells = array('profil_id','hits_time','hits_id','hits_ip','hits_nick');
    $hits_save = array($profil_id,$time,$besucher_id,$ip,$besucher_nick);
    cs_sql_insert(__FILE__,'hits',$hits_cells,$hits_save);
    cs_sql_update(__FILE__,'hits',$hits_cells,$hits_save);
    
    $cs_visits = cs_sql_select(__FILE__, 'hits','hits_id, hits_nick, hits_time',"profil_id = '" . $profil_id . "'",'hits_time DESC', 0, 5);
    $cs_visits_loop = count($cs_visits);
    
    for($run=0; $run<$cs_visits_loop; $run++) {
    
        if ($run % 2 == 0)
      {
      $data['visits'][$run]['if']['even'] = TRUE;
      } else {
      $data['visits'][$run]['if']['even'] = FALSE;
      }
      $data['visits'][$run]['time'] = cs_date('unix',$cs_visits[$run]['hits_time'],1,0);
      
      if($cs_visits[$run]['hits_id'] == 0) {
      $data['visits'][$run]['nick'] = $cs_lang['guest'];
      } else {                        
      $data['visits'][$run]['nick'] = cs_link($cs_visits[$run]['hits_nick'],'users','view','id',$cs_visits[$run]['hits_id']);
      } 
    }  
    
    ########################################################

  • #2
    Geht nicht. Bitte lies dir den Artikel Was ist PHP aus unserem Wiki aufmerksam durch und schaue dir mal Sessions an.
    Für das Highlighting des PHP-Codes nutze bitte die PHP-Tags.
    Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

    Kommentar


    • #3
      Geht doch. Aber Du hast nicht sofort dein Problem beschrieben, sondern einen Ansatz.
      Dein Problem ist doch, dass Du keine doppelten Einträge möchtest, und nicht, dass Du eine "Reloadsperre" brauchst.
      Und da Du die IP sowieso mitspeicherst, kannst Du doch vorher prüfen, ob die IP schon einen Eintrag hat. Wenn da so ist, dann aktualisierst Du nur die Zeit. Damit würde man zwar theoretisch ein paar Leute weniger zählen, aber das ist immer noch besser, als so.

      Gruß

      Kommentar


      • #4
        IP speichern ist eine schlechte Idee und eine Reload-Sperre ist definitiv nicht zu implementieren, da man keine Kontrolle über den Browser des Nutzers hat.
        Am besten einfach lesen, was ich schon schrieb und Sessions benutzen.
        Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

        Kommentar


        • #5
          mh erstmal danke und wie müsste ich mir das jetzt vorstellen? so ?

          PHP-Code:
          if(isset($besucher_ip))
          {
            
          Code fürWenn die ip vorhanden ist
            in diesem Fall UPDATE
          .... bla bla bla
          }  else  {
            
          Wenn nicht.... dann...eben nicht

          oder aber kann ich das direkt mit mysql über where prüfen?

          Kommentar


          • #6
            Och, Leute!
            Zitat von Manko10
            Geht nicht. Bitte lies dir den Artikel Was ist PHP aus unserem Wiki aufmerksam durch und schaue dir mal Sessions an.
            Für das Highlighting des PHP-Codes nutze bitte die PHP-Tags.
            Zitat von Manko10
            IP speichern ist eine schlechte Idee und eine Reload-Sperre ist definitiv nicht zu implementieren, da man keine Kontrolle über den Browser des Nutzers hat.
            Am besten einfach lesen, was ich schon schrieb und Sessions benutzen.
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar


            • #7
              Ach, es ist doch klar, dass eine "Reload-Sperre" nicht möglich ist. Darum geht es doch auch gar nicht. Wieso sollte IP speichern eine schlechte Idee sein? Wenn es um Anonymität geht, kann man die immer noch als Hash o.ä. darstellen.
              Und isset() ist natürlich der falsche Ansatz, du musst überprüfen, ob ein entsprechender Datensatz in der Datenbank bereits vorhanden ist (via select).
              Gruß

              Kommentar


              • #8
                Weil IP und Sessions nicht zusammengehören und für die Wiedererkennung eines Users nun einmal Sessions da sind und nicht die IP-Adresse. Die IP-Adresse dient zur einmaligen Identifizierung eines Rechners zum Übersenden der Antwort des Requests, nicht zur requestübergreifenden Identifizierung.
                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                Kommentar


                • #9
                  wieso entstehen überhaupt doppelte Einträge?

                  Kommentar

                  Lädt...
                  X