2013-10-30 137 views
-3

我有使用邮件功能的PHP脚本我只是想知道,如果有人看到一个问题,这个剧本之前,我联系系统管理员,他可能不会一会儿PHP邮件功能无法发送

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$rating=$_POST['Rate']; 
$subject= "review from website"; 
$name=$_POST['lname'].", ".$_POST['name']; 
$from = $_POST['email']; 
$to ="[email protected]"; 
$messageTo="BBComputers"; 
$headers = "From: ".$from. "\r\n"; 
$message = htmlspecialchars($_POST['comment']); 
$about = $_POST['product']; 
$date=date("n-j-y \a\\t g:ia\n"); 
mail($to,$subject,$message,$headers); 
回答
+4

请查看边栏中的** Related **部分。 ---> –

+0

这是[这里非常流行的问题](http://stackoverflow.com/search?q=PHP+mail+function+not+sending)!要修复,请使用适当的邮件库,如SwiftMailer。 – halfer

回答

3

我看到的问题一大堆:

  • to地址不正确:失去后;

  • 没有输入验证。

  • 潜力头注入($_POST["email"]

  • 书中有一个随机的htmlspecialchars(为什么?)

  • $rating$messageTo$name$about定义,但从未使用过。

+0

使用$ rating,并在稍后的代码中使用htmlspecialchars以正确指向可从Web浏览器读取的文件。输入验证是使用表单中的javascript完成的。 – user2938331

+0

“输入验证是使用来自”* cringe *“形式的javascript完成的。输入验证至少应该在服务器端完成,最好是客户端和服务器端。 –

+0

@ user2938331:您不能依赖JavaScript来始终验证您的数据,因为它可能不受客户端支持,并且用户可以关闭它。 – halfer