2017-08-08 33 views
0

谢谢你的任何帮助。 如何向同一行添加另一个条件。我有2个要求,我需要加入又名我有这个加入两个PHP请求到一个

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

但我还需要它添加到它

if ([email protected]$_REQUEST['g-recaptcha-response']) 

我已经试过

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

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

但它工作得更加轻松。 我很感激任何帮助。

谢谢

+0

验证您是否正确发送请求之前。 – KubiRoazhon

+0

不要使用'@'来压制警告,修复脚本以避免错误发生。使用'empty()'函数确保它被填充。您可以将它与'trim()'结合使用来删除空格,如果是和email,则使用'filter_var($ email,FILTER_VALIDATE_EMAIL)'来验证它是否是有效的电子邮件模式。 – Rasclatt

+0

您尝试工作的主要原因是它们都包含语法错误,这些错误会阻止您的脚本执行。在开发应用程序时,您需要[启用错误报告](https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display),以便您可以了解这些情况。 –

回答

0

你的条件都需要是if括号内,因为这样的:

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

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

一个if构建PHP的结构如下(取自PHP documentation):

if (expr) 
    statement 

而在你的情况下,expr是你的条件,因此你需要把它们都括在括号中。

+0

非常感谢。这非常有帮助 –

0

重申我的意见,不要使用@来压制警告,修复脚本以避免错误发生。使用empty()函数来确保它已填充。您可以将它与trim()结合使用以删除空格,如果是,请使用filter_var($email,FILTER_VALIDATE_EMAIL)验证它是否为有效的电子邮件模式。

例子:

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

无论如何,作为@ Don'tPanic提到,要确保你有错误的ini_set('display_errors',1); error_reporting(E_ALL);报告,但我怀疑你,因为你是抑制错误/警告与@

最后一个音符,以缓解一些重复,我想也许想保存错误的数组,并在年底爆他们:

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