我不确定问题出在哪里,但是我正在通过 ajax 传递一个变量,如果我在使用 !$varname 检查它时传递一个空白,它不会被捕获
这是我的ajax函数:
var subscribe = function(){
var dataString = $("#subinput").val();
$.ajax ({
url: '<?php echo $path ?>',
type: 'POST',
data: 'email=' + dataString.value,
datatype: 'JSON',
success: function(results){
if(results.err == '1'){
$('.onconfirmation').css('color','#f00');
}else{
$('.onconfirmation').css('color','#5A5A5A');
}
$('.onconfirmation').innerHTML(results.message);
$('.onconfirmation').fadeIn();
//alert(results);
}
});
这是我的PHP:
<?php
$email = $_POST['email'];
if(!$email){
$o['err'] = '1';
$o['message'] = 'Please do not leave this field blank';
}/*elseif(filter_var($email, FILTER_VALIDATE_EMAIL)){
$o['err'] = '1';
$o['message'] = 'Please enter a valid email address';
}else{
$o['err'] = '0';
$o['message'] = 'Thank you for your subscription';
}*/
ob_start();
var_dump($o);
$out = ob_get_clean();
mail('[REDACTED]','debug',$out);
//$o = json_encode($o);
//return ($o);
?>
正如您所看到的,它目前处于调试状态,但如果我将一个空白值传递给它,我收到的电子邮件是NULL
. 如果我通过电子邮件给自己发送$email
变量而不是$out
变量,我收到的电子邮件是undefined
,但是如果我!
从 if 语句中删除 ,我收到的电子邮件是:
array(2) {
["err"]=>
string(1) "1"
["message"]=>
string(36) "Please do not leave this field blank"
}
我确定我只是错过了一些非常简单的东西,我一直都是,但老实说,我无法弄清楚这一点。任何帮助将不胜感激。干杯。