Wie schon im ersten Teil dieses Artikels beschrieben, wird bei der Honeypot-Methode zur Abwehr von Formularspam ein zusätzliches Formularfeld erzeugt, das für Menschen nicht sichtbar ist.

Das style-Attribut wurde wegen der Verständlichkeit ins span-Element gesetzt. Besser ist es, hier eine Klasse einzutragen und das style-Attribut in der CSS-Datei des Formulars anzugeben. Das hilft dann auch gegen intelligenter programmierte Spambots.

<!—Der Honeypot gegen Formularspam  –>
<span style=“display:none“>
<label for=“mail“>Das folgende Feld muss leer bleiben:</label>
<input type=“text“ name=“mail“ id=“mail“ title=“Dieses Feld muss leer bleiben “ />
</span>

Die Auswertung des Honeypots wird in die meist schon vorhandene PHP-Fallverzweigung mit den Plausibilitäts-Prüfungen eingesetzt. Hat ein Spambot das Honeypot-Feld ausgefüllt, verzweigt das Programm per Header-Befehl zurück zur Formulareingabe.

foreach($_POST as $key => $value) {
switch ($key) {

// Hier stehen alle Plausibilitätskontrollen

case „mail“:                           // Honeypot-Feld gegen Formularspam muss leer sein
If ($value != „“) {
$go=“n“;
$location=“formular.php „;
header(„Location: $location“);
}
break;
}
}

Denken Sie bitte daran, dass der Header-Befehl nur dann funktioniert, wenn vorher noch keine Ausgaben durch das Programm erzeugt wurden.