2017-08-08 2 views
0

Danke für jede Hilfe. Wie füge ich eine weitere Bedingung zu dieser Zeile hinzu. Ich habe 2-Anfragen, die ich brauche beitreten aka ich diese habenBeitreten von zwei PHP-Anfragen in eine

if ([email protected]$_REQUEST['urEmail']) { $errorsAndAlerts .= "No email entered!<br/>\n"; } 

Aber ich muss auch diese

ihm hinzufügen
if ([email protected]$_REQUEST['g-recaptcha-response']) 

ich versucht habe

if ([email protected]$_REQUEST['urEmail']) || ([email protected]$_REQUEST['g-recaptcha-response']) { $errorsAndAlerts .= "No email entered!<br/>\n"; } 

und diese

if ([email protected]$_REQUEST['urEmail']) && ([email protected]$_REQUEST['g-recaptcha-response']) { $errorsAndAlerts .= "No email entered!<br/>\n"; } 

Aber es witterte gearbeitet. Ich bin dankbar für jede Hilfe.

danke

+0

vor sicherzustellen, dass Sie richtig die Anfrage senden. – KubiRoazhon

+0

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

+0

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. –

Antwort

0

Ihre Bedingungen müssen sowohl innerhalb der if Klammern sein, als solche:

if ([email protected]$_REQUEST['urEmail'] || [email protected]$_REQUEST['g-recaptcha-response']) { $errorsAndAlerts .= "No email entered!<br/>\n"; } 

oder

if ([email protected]$_REQUEST['urEmail'] && [email protected]$_REQUEST['g-recaptcha-response']) { $errorsAndAlerts .= "No email entered!<br/>\n"; } 

Die PHP-Struktur für ein if Konstrukt ist die folgende (entnommen aus der PHP documentation):

if (expr) 
    statement 

Und in Ihrem Fall ist expr Ihre beiden Bedingungen, daher müssen Sie sie beide in Klammern einschließen.

+0

vielen Dank. Das war sehr hilfreich –

0

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).'!'; 
Verwandte Themen