- 尽管表单字段是必需的,但脚本有时会向邮件发送空电子邮件
- error_log 中出现错误:
- PHP 警告:mail():在第 19 行的 /public_html/sendmail.php 的 additional_header 中发现了多个或格式错误的换行符
- PHP 通知:未定义索引:第 2 行 /public_html/sendmail.php 中的名称
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$mess = $_POST['mess'];
$name = htmlspecialchars($name);
$email = htmlspecialchars($email);
$mess = htmlspecialchars($mess);
$name = urldecode($name);
$email = urldecode($email);
$mess = urldecode($mess);
$name = trim($name);
$email = trim($email);
$mess = trim($mess);
# SEND -------------------------------
mail("pochta@yandex.ru", "Заявка с сайта MySite", "Имя: " . $name . " -||- " . "E-mail: " . $email , "$mess \r\n");
header("Location:https://mysite.ru");
?>
问题是什么?为什么有些电子邮件到达时是空的?
并非所有浏览器都支持 required 属性http://htmlbook.ru/html/input/required
您还需要在 php 级别进行验证
调用中的第 4 个参数是“$mess \r\n”。additional_headers - 要插入到已发送电子邮件标头末尾的字符串或数组。不允许换行。
检查参数 if(isset($_POST['name']) ) { }
您的消息正文被传递给参数
additional_headers,这是第一个错误告诉我们的内容你怎么称呼:
正如您可能想要的那样:
邮件() | PHP