Und die Emails, die mich erreichen, haben die Meldung:
Spambot - Kein valides Subject
Ok. Untersuchung:
Um zu dieser Ausgabe vorzudringen muss der kleine Mann namens PHP (Peter Hat Programm) folgende Daten vorfinden:
if($_POST['formsend']) {
$_POST['formsend']
ist truly (nicht: false, null, 0 oder '')
if(is_null($name) || $name == '') {
- UND NICHT $name ist null oder leer.
} elseif(
is_null($email)
|| filter_var( $email,FILTER_VALIDATE_EMAIL) == false
) {
- UND
$email
ist nichtnull
- UND filter_var( $email,FILTER_VALIDATE_EMAIL) ist nicht
falsy
} elseif($_SESSION['token'] != $_POST['token']) {
- UND
$_SESSION['token']
und$_POST['token']
stimmen grob (nicht typsicher) überein - was aber auch zutrifft, wenn diese jeweils entweder leer, 0 oderfalse
sind…
} elseif($nur_ziffern_ausgefuellt) {
- UND
$nur_ziffern_ausgefuellt
isttruely
. Was aber z.B. auch zutrifft, wenn es „0“ (Den String „0"!) enthält.
Und jetzt geh debuggen: Lass Dir ausgeben, was drin steht. Vergleiche das mit Deinen Erwartungen.
Begriffe:
- truely: Ein nicht typsicherer Vergleich mit true matcht:
if ( $foo )
- falsy : Ein nicht typsicherer Vergleich mit false matcht.
if ( ! $foo )