Wie kann man ein PHP script abbrechen?

...komplette Frage anzeigen

5 Antworten

Wenn der gesuchte String immer mit "bfd" anfängt, dann kannst du deine spezifische Aufgabe mit einem substr lösen. Also ungefähr

function isBfd() {

$start = substr($name, 0, 3);

return $start === "bfd";

}

(ungetestet!)

, dann kommst du um den relativ komplizierten regulären Ausdruck in preg_match herum. 

Aber: Denk allgemeiner und verlass dich nicht auf das "bfd". Wenn der Spambot nun auf "afd" umstellt, dann kriegst du wieder Spam-Mails, wenn der Nickname eines richtigen Nutzers mit "bfd" anfängt, dann kann er keine Mail schreiben. Anstatt alles zu filtern, was mit "bfd" anfängt, würde ich eher über eine Captcha-Lösung oder ein zusätzliches Feld mit einer kleinen Frage nachdenken, das der Nutzer beim Absenden lösen muss.

Vielen Dank für eure rasche Hilfe.

Ich bin bis jetzt spamfrei, fantastisch!

Folgende Tipps kann ich weitergeben, wenn das Kontaktformular auf eurer Website von Spambots heimgesucht wird und ihr PHP verwendet:

im HTML-Dokument:


die sogenannte "honeypot"-Methode funktioniert bei mir erfolgreich:

- in der „form“-Section ein weiteres Textfeld einfügen und diesem eine class wie z.B. „hide_me“ zuweisen. Besucher bekommen dieses Textfeld nicht zu Gesicht und darum sollte es versteckt werden. Das kann z. B. so aussehen: <input class=“hide_me“ type=“text“ name=“url“>

- dasselbe funktioniert auch mit einer versteckten Checkbox, die nicht angeklickt werden soll (danke für den Tipp)

im CSS:


.hide_me {display: none]

im PHP:

- zuerst mit „if“ überprüfen, ob das Feld freigelassen wurde. Das Formular soll nur dann abgeschickt werden, wenn kein Spambot auf das Feld hereingefallen ist (wichtig !)

- eine Fehlermeldung ausgeben, falls das Feld nicht leergelassen wurde, um Missverständnisse mit "realen" Websitebesuchern zu vermeiden

Nutz doch lieber reCaptcha oder zumindest honeypot?

Google bietet jetzt uebrigens invisible reCaptcha an, scheint gut zu funktionieren und niemand siehts.

0

Bau eine versteckte Checkbox in die Seite ein und eine Funktion, die das Absenden verhindert, wenn die Checkbox angehakt wird.

Normale Nutzer werden die Box nicht sehen und entsprechend nie anhaken.
Die meisten Spambots wiederum haben die Eigenschaft generell alles anzuhaken, was das Formular so anbietet.

Bedeutet Spambots weisen sich darüber selber als Bots aus und verhindern ihren Spam.

Genau, das ist honeypot, auch gut.

0

Abbrechen kannst du ein PHP script mittels "exit;"

Die Prüfung ob bfd die ersten 3 buchstaben sind kannst du mit substr machen

Was möchtest Du wissen?