kostenloser Webspace werbefrei: lima-city


Gästebuch + IP sperre

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c****y

    Hallo zusammen.

    Also ich habe ein php g?stebuch. jetzt gibt es da so ein paar leute, die immer scheiss schreiben.
    k?nnte ich etwas machen, wo es di ip speichert in einer seperaten datei speichert. Wenn der typ dann wieder scheiss schribt, kann ich in sperren, so das steht z.B. "Grenzen ?berschritten --> Kein Zugriff" ????

    Kann man das so machen? Wenn ja, wie?

    Vielen Dank chrigel
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. r*****r

    mit der IP ist das immer so ein Problem, da sich diese ?ndern kann!
  4. c*********c

    Mahlzeit!

    Ich kann Dir nur empfehlen, die IPs in einer Datenbank abzusoeichern, sofern Du die Mittel dazu hast!

    Tabelle sollte folgende Spalten enthalten:
    - id
    - ip
    - timestamp


    // posten.php

    <?

    include ("connect.inc.php");
    include ("deleteip.php");

    $ip = $_SERVER['REMOTE_ADDR'];
    $timestamp = time();

    $sql = "SELECT * FROM tabelle WHERE ip = '$ip'";
    $result = mysql_query($sql);

    if(mysql_num_rows($result) == 0)
    {
    // Text eintragen

    $sql = "INSERT INTO tabelle (ip,timestamp) VALUES ('$ip','$timestamp')";
    $result = mysql_query($sql);

    }
    else
    {
    echo "Du hast heute schon gepostet...";
    }

    ?>



    // deleteip.php

    <?

    include("connect.inc.php");

    // Aktuelle Zeit - 1 Tag
    $timestamp = time() - 86400;

    $sql = "DELETE * FROM tabelle WHERE timestamp >= '$timestamp'";
    $result = mysql_query($sql);

    if(!$result)
    {
    echo "Es ist ein Fehler beim L?schen der Eintr?ge in der Datenbank aufgetreten! <br>Zur?ckgegebener Fehler: ". mysql_error();
    }

    ?>



    // connect.inc.php

    <?

    mysql_connect("mysql.lima-city.de","USERxxxxx","passwort") or die("Verbindung zum DB-Hoster konnte nicht hergestellt werden!");

    mysql_select_db("DBxxxxxxxxxxxxxx") or die("Datenbank wurde nicht gefunden!");

    ?>




  5. Autor dieses Themas

    c****y

    hallo

    danke mal f?r die hilfe. aber ich will nicht, das die sperre nur auf ein tag beschr?nkt ist, sondern immer. und das nur bei den leuten, die ich bestimme. ginge das auch irgendwie ohne db??? ich habe schon, aber das ist mir zu kompliziert. wenns irgendwie mit php+txt gehen w?rde.

    thx chriwy


    Ps: @compactdisc das in deiner signatur sieht stark berndeutsch aus??? stimmts?
  6. Schau dir mal mein Hitcounter-Tutorial an. Dort steht, wie man IP und Datestamp in einer Datei speichern und wieder auslesen kann. Die gleiche Vorgehensweise kannst du auch bei einer IP-Sperre anwenden.

    http://alopex.pyrokar.lima-city.de/index.php/PHP/Hitcounter.html

    Allerdings kann ich von IP-Sperren nur abraten. Es gibt zu viele Unw?gbarkeiten. Wer einen Dialup-Zugang hat, w?hlt sich einfach neu ein und erh?lt eine neue IP. Sitzen mehrere Personen hinter einem Router mit einer IP (Internetcafe, Firmen-Netzwerk), werden alle ausgeschlossen. Manche ISP (z.B. AOL) verwenden Proxys mit "rotierenden" IP-Adressen, d.h. bei jedem Zugriff auf eine Webresource wird diesen Benutzern ein anderer Proxy zugeteilt. Die gesperrte IP kann dann bei anderen AOL-Nutzern wunderliche Effekte hervorufen.

    MfG
    alopex
  7. c*********c



    chriwy schrieb:
    hallo

    danke mal f?r die hilfe. aber ich will nicht, das die sperre nur auf ein tag beschr?nkt ist, sondern immer. und das nur bei den leuten, die ich bestimme. ginge das auch irgendwie ohne db??? ich habe schon, aber das ist mir zu kompliziert. wenns irgendwie mit php+txt gehen w?rde.

    thx chriwy


    Dann k?nnte es so funktionieren:


    <?

    $handle = fopen("ip.txt","r+");

    $ip = $_SERVER['REMOTE_ADDR'];

    $counter == 0;

    while(!feof($handle))
    {
    $zeile = fgets($handle);

    if($zeile == $ip)
    {
    $counter++;
    }
    }

    if($counter == 0)
    {
    // Text eintragen
    fputs($handle,$ip);
    }
    else
    {
    echo "Sie haben bereits gepostet!";
    }

    ?>





    Ps: @compactdisc das in deiner signatur sieht stark berndeutsch aus??? stimmts?


    ist es auch :biggrin:
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!