所以我最近为家庭成员小公司建立了一个基本网站。我收到了一份邮件表格,供查询等。
这是我使用的代码:
<?php
function check_input($data){ // SANITIZE USER STRING INPUT
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$name = check_input($_POST['name']);
$surname = check_input($_POST['surname']);
$email = check_input($_POST['email']);
$telephone = check_input($_POST['telephone']);
$comments = check_input($_POST['message']);
$message = "From: $name $surname
Email: $email
Telephone: $telephone
--------------------------------------------------------------
Comments: $comments
";
mail("#######@#####.com","Website Enquiry from www.#######.co.uk",$message,"From: webserver");
?>
现在,当我尝试它时,它绝对没有问题。但是我注意到有时候它很慢,所以我们一直在通过表单收到空白的电子邮件(用户输入数据不存在),所以似乎有人试图使用它并放弃也许是因为它花了太长时间?
我假设这与邮件服务器而不是php邮件有关。但我想知道是否有人可以突出我可以带给她的公司的潜在问题?
非常感谢,答案 0 :(得分:1)
检查是否输入了姓名和电子邮件字段,然后继续使用邮件功能..这样可以减少收到空白的电子邮件。
<?php
if (isset($_POST['name']) && isset($_POST['email'])) //check if name and email fields are entered and then proceed with mail function
{
//process the data and send mail.
}
else
{
echo "Error missing name or email field.please enter";
}
?>
或者您也可以使用array_key_exists()
<?php
if (array_key_exists("name", $_POST) && $_POST["name"] != "" && array_key_exists("email", $_POST) && $_POST["email"] != "")
//check if name and email fields are entered and then proceed with mail function
{
//process the data and send mail.
}
else
{
echo "Error missing name or email field.please enter";
}
?>
答案 1 :(得分:0)
实际上你没有检查是否有人填写表格为空,这就是为什么你会得到空白字段
<?php
function check_input($data){ // SANITIZE USER STRING INPUT
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if(!empty($data))
{
$name = check_input($_POST['name']);
$surname = check_input($_POST['surname']);
$email = check_input($_POST['email']);
$telephone = check_input($_POST['telephone']);
$comments = check_input($_POST['message']);
$message = "From: $name $surname
Email: $email
Telephone: $telephone
--------------------------------------------------------------
Comments: $comments
";
mail("#######@#####.com","Website Enquiry from www.#######.co.uk",$message,"From: webserver");
}
?>