Ankündigung

Einklappen
Keine Ankündigung bisher.

Zugriffszähler

Einklappen

Neue Werbung 2019

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

  • #16
    Ich hab hier noch ein Problem, bitte helft mir nochmal:
    Also, ich hab einen Counter der sich aber nur erhöhen soll wenn die IP in der Datenbank NICHT vohanden ist, ist sie aber vorhanden soll er zu testzwecken noch ausgeben "Counter hat dafür schon gezählt". Jetzt muss ich noch irgendwie vergleichen obs die IP schon gibt oder nicht und das ist mein Problem.
    Noch was wäre da, die IP's die er mir in Die Datenbank schreibt sehen nicht wie eine IP (127.0.0.1) aus sondern so: "Resource id #4127.0.0.1", genau das nur ohne "" schreibt er rein.
    Hier der Code

    PHP-Code:
    $ip=$HTTP_SERVER_VARS['REMOTE_ADDR'];
    $sqls=mysql_query("SELECT counter_ip_block FROM users WHERE counter_ip_block='$ip'");

    if(
    $sqls)
    {
        echo 
    "Counter hat dafür schon gezählt";
    }
    else
    {
    $last=$visitors+1;
    $sql mysql_query("UPDATE `users` SET `counter_calls` = '$last' WHERE `nickname` = '$nickname' "); 
    $query="SELECT counter_ip_block FROM users WHERE nickname='".$nickname."'"
    $result=mysql_query($query); 
    $neueipliste=$result
    $neueipliste.=$ip
    $query="UPDATE users SET counter_ip_block='".$neueipliste."' WHERE nickname='".$nickname."'"
    mysql_query($query); 

    Kommentar


    • #17
      Nimm einmal $_SERVER statt $HTTP_SERVER_VARS. Und dann erkläre mal folgende Zeilen:
      Code:
      $neueipliste=$result; 
      $neueipliste.=$ip;
      Vielleicht kommst du von selbst drauf, wenn du versuchst zu erklären, was sie machen sollen.
      [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
      Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

      Kommentar


      • #18
        Ich fürchte daran bin ich schuld
        Denn genauso sieht der Mist aus den ich gestern (versehentlich, versteht sich) verzapft hab...


        So müsste es besser sein:
        PHP-Code:
        $neueipliste=$result;
        $neueipliste=$neueipliste.','.$ip

        Wenn man dann überprüfen möchte ob die IP schon vorkommt hilft einem ein einfaches explode().

        Kommentar


        • #19
          Jetzt schreibt er es so rein "Resource id #4,127.0.0.1", aber ich weiß einfach nicht wie ich das prüfen soll obs die schon gibt und er darf nichts machen oder es gibt sie noch nicht und er muss um eins erhöhen und die eintragen ??

          Kommentar


          • #20
            Bitte sagt noch ein letztes mal was

            Kommentar


            • #21
              Was maxibt hier schreibt ist natürlich mindestens so ein Quatsch. Falls tatsächlich kommagetrennte IP in ein Attribut eingetragen werden sollen, so ist das haarsträubendes DB-Design. Und genau aus diesem Code kommt auch der komische Eintrag "Resource id #4127.0.0.1", weil "Resource id #4" steht logischerweise in $result, und die IP wird dort einfach drangehängt. Ich weiss zwar nicht, was diese komische Zählerei mit IP's soll, wenn schon ein Nickname vorhanden ist. Aber wenn es sein muss, dann erstelle für jede IP einen eigenen Eintrag in die Tabelle (bzw in einer eigenen Tabelle, die dann nickname und IP beinhaltet). Und mit mysql_query() erhälst du nie die Daten, sondern nur den Pfad dazu (in andern DBMS's nennt man das auch Cursor). Die Daten erhälst du erst mit mysql_fetch_...(). Der Code könnte dann sinngemäss etwa so aussehen:
              Code:
              $ip = $_SERVER['REMOTE_ADDR'];
              $sql = "SELECT count(*) 
                      FROM ips 
                      WHERE ip = '$ip'");
              $res = mysql_query($sql) or die(mysql_error());; 
              list($num) = mysql_fetch_row($res);  // Rückgabewert is Array mit einem Element
              
              if($num > 0)
              {
                 echo "Counter hat dafür schon gezählt";
              }
              else
              {
                  $last = $visitors + 1;
                  $sql = "UPDATE users 
                          SET counter_calls = $last 
                          WHERE nickname = '$nickname' ";
                  $res = mysql_query($sql) or die(mysql_error());
                  $sql = "INSERT INTO ips (nickname, ip)
                          VALUES('$nickname', '$ip'";
                  $res = mysql_query($sql) or die(mysql_error());
              }
              Gruss
              L

              Kommentar

              Lädt...
              X