Home

Captcha Abfrage für Formulare

Samstag, 24. März 2007 | Autor: Pr0g

Captcha Code in der Datenbank speichern (Teil 2)

Jetzt wird die Datei “captcha.php” um einen kleinen Codeblock ergänzt, welcher den Code des Captchas in die Datenbank speichert. Dazu muss folgender Code ganz ans Ende (vor das ?>) eingefügt und dann die Datei erneut gespeichert werden:

// Datenbankverbindung einbinden
require('dbconnect.php');

// Alte Codes löschen (älter als eine Stunde, oder IP des Users)
$sql 'DELETE FROM captcha WHERE time < ' . (time() - 3600) . ' OR ip = "'
$_SERVER['REMOTE_ADDR'] . '"';
@
mysql_query($sql);

// Eindeutige Id des Codes aus dem Parameter auslesen
$code_id $_GET['h'];

// Neuen Code einfügen
$sql 'INSERT INTO captcha (hash, code, ip, time) VALUES ("' mysql_real_escape_string($code_id)
'", "' $code '", "' $_SERVER['REMOTE_ADDR'] . '", ' time() . ')';
@
mysql_query($sql);

Zuerst wird die Datei “dbconnect.php” eingebunden, welche eine Verbindung zur Datenbank herstellt.

Als nächstes werden alle alten Einträg oder Einträge mit der IP des Benutzers aus der Tabelle entfernt. Es kann ja mal vorkommen, dass ein Captcha in einem Formular angezeigt wird, der Benutzer dieses dann jedoch nicht absendet und dadurch der Code nicht gelöscht wird oder ein neues Captcha angefordert wurde.

Dann wird die eindeutige Id (wobei es sich darum genau handelt und wo diese herkommt erkläre ich später noch) für den Code aus dem Parameter h (dieser wird später im Formular übergeben) ausgelesen und in die Variable $code_id geschrieben.

Zuletzt wird der Code mit der Id, sowie der IP des Benuters und einem aktuellen Zeitstempel in der Datenbank gespeichert.

Würde man nun die Datei “formular.php” aufrufen, so kann man sehen, dass in der Datenbank eine Zeile mit den genannten Daten gespeichert wird.

Seiten: 1 2 3 4 5 6 7 8 9 10 11

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Artikel

Diesen Beitrag kommentieren.

4 Kommentare

  1. 1
    Osterhase 
    Sonntag, 2. März 2008

    Der Captcha-Artikel sieht *sehr* gut aus (auch wenn ich noch keine Zeit hatte, ihn im einzelnen durchzulesen). Vielen Dank!

  2. 2
    Osterhase 
    Sonntag, 2. März 2008

    Es scheint allerdings gute Argumente zu geben, auf Captchas zu verzichten, vgl.
    http://1ngo.de/web/captcha-spam.html

  3. Klar sind Captchas nicht das perfekte Wundermittel gegen Spam, wurde von mir ja auch nie behauptet. Ich sehe sie lediglich als eine Lösung von vielen und daher der Artikel ;)

  4. Das Tut ist wirklich gut,bei mir gibt es allerdings einen Schönheitsfehler,es findet kein Abbruch statt wenn ich überhaupt nichts eintrage.??habe es in mein Gästebuch eingefügt. (-:

Kommentar abgeben