Wiederholen Sie meinen Kommentar, unterdrücken Sie nicht die Warnungen mit @
, beheben Sie das Skript, so dass der Fehler nicht auftritt. Verwenden Sie die empty() Funktion, um sicherzustellen, dass es gefüllt ist. Sie können das mit trim() kombinieren, um Leerzeichen zu entfernen, und wenn es und E-Mail ist, verwenden Sie filter_var($email,FILTER_VALIDATE_EMAIL), um zu überprüfen, ob es ein gültiges E-Mail-Muster ist.
Beispiel:
# Check the email is set and trim it
$email = (isset($_REQUEST['urEmail']))? trim($_REQUEST['urEmail']) : false;
# Check the recaptcha is set and trim it
$recap = (isset($_REQUEST['g-recaptcha-response']))? trim($_REQUEST['g-recaptcha-response']) : false;
# If either are empty
if(empty($email) || empty($recap)) {
$errorsAndAlerts .= "No email entered!<br/>\n";
}
# If both filled but invalid email
elseif(!filter_var($email,FILTER_VALIDATE_EMAIL)) {
$errorsAndAlerts .= "Email invalid!<br/>\n";
}
//etc...
Jedenfalls als @ Don'tPanic erwähnt, stellen Sie sicher, dass Sie Fehler auf ini_set('display_errors',1); error_reporting(E_ALL);
berichten, aber ich vermute, dass Sie tun, da Sie die Fehler/Warnungen werden unterdrückt mit @
.
Eine letzte Anmerkung, eine Wiederholung zu lindern, würde ich denke, vielleicht über Fehler auf ein Array speichern und sie am Ende implodiert:
# Save all errors using the push
# (mine are in a line, but yours would be throughout your script)
$error[] = "No email entered";
$error[] = "Invalid request";
$error[] = "Invalid email";
$error[] = "Poor penmanship";
# Implode with the glue when you want to output them
echo implode('!<br />'.PHP_EOL,$error).'!';
vor sicherzustellen, dass Sie richtig die Anfrage senden. – KubiRoazhon
Unterdrücken Sie die Warnungen nicht mit '@', korrigieren Sie das Skript, damit der Fehler nicht auftritt. Verwenden Sie die Funktion 'empty()', um sicherzustellen, dass sie gefüllt ist. Sie können das mit 'trim()' kombinieren, um Leerzeichen zu entfernen. Wenn es eine E-Mail ist, verwenden Sie 'filter_var ($ email, FILTER_VALIDATE_EMAIL)', um zu überprüfen, ob es ein gültiges E-Mail-Muster ist. – Rasclatt
Der Hauptgrund, warum keiner Ihrer Versuche funktioniert hat, ist, dass beide Syntaxfehler enthielten, die die Ausführung Ihres Skripts verhindert hätten. Sie müssen [Fehlerberichte aktivieren] (https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display) während der Entwicklung Ihrer Anwendung, so dass Sie über solche Dinge informiert werden können. –