发送邮件[PHP]
我的PHP代码有问题。我使用IF-ELSE来检查一切是否正常,但它总是给我一个“你没有输入收件人”的提示发送邮件[PHP],php,email,sendmail,Php,Email,Sendmail,我的PHP代码有问题。我使用IF-ELSE来检查一切是否正常,但它总是给我一个“你没有输入收件人”的提示 您最终的意思是:空()而不是isset(),因为它总是被设置的……但不总是被填充 或者检查isset($\u POST['to'])和其他键,但不要在指定的变量上使用isset(检查是否为null/==null更好 将您的条件if(!isset($to))替换为if(isset($to)) 并添加空支票 文件: 像这样: if (substr_count($to, '@') <=
您最终的意思是:空()而不是isset(),因为它总是被设置的……但不总是被填充
或者检查isset($\u POST['to'])和其他键,但不要在指定的变量上使用isset(检查是否为null
/==null
更好
将您的条件if(!isset($to))
替换为if(isset($to))
并添加空支票
文件:
像这样:
if (substr_count($to, '@') <= 1 ) {
if (isset($to) && !empty($to)) {
if (isset($from) && !empty($from)) {
if (isset($subject) && !empty($subject)) {
if (isset($message) && !empty($message)) {
mail($to, $subject, $message, "From: " . $from);
print "Message was sent!";
}else {print "You did not enter a message";}
}else {print "You did not enter a subject";}
}else {print "You did not enter a from email";}
}else {print "You did not enter a recipient";}
}else{print "You entered 2 or more emails.";}
if(substr_count($to,'@')如果您的所有表单数据都为空,则代码将发送邮件。
if(!isset($\u POST[“某物”])
表示如果未设置数据,将触发条件进程
删除感叹词。在提交表单之前,请确保您的表单使用regex&| html5/css3进行了正确的验证。最后,我建议使用!empty()verse isset()
if (mail($to, $subject, $message, "From: " . $from)) {
print "Message was sent!";
} else { print "email failed to send!"; }
此外,我还将From:设置变量时不调用它,但这更符合个人偏好
$from= "From: trim($_POST['spoofrom'])";
您是否在表单中检查了收件人的文本框名称?可能输入错误。请了解邮件标题注入。这没有任何意义。因为已经有一个assignment$to=…;
,因此isset调用始终为真(如果密钥存在,例如,它不为空).Check for empty…@bwoebi:的确。如果URL参数不存在,则分配将失败,并显示“undefined index”(未定义索引)错误消息。是的,我是这么说的:“(如果密钥存在,例如,它不是空的)”。顺便说一句。我想他不想检查表单是否被操纵,但是否所有字段都已填充。@bwoebi:but(s)他也应该检查一下。例如,通过“发件人”字段插入额外的头并向其他人发送垃圾邮件很容易。
$from= "From: trim($_POST['spoofrom'])";