0

我不是 PHP 的专业人士,实际上才刚刚开始,想知道您是否可以帮助我。

我试图让这个联系表给我发电子邮件,说明人名和这样的消息。

名称:Fred 博客消息:消息,消息。

但是当我尝试得到的只是消息时,我似乎无法在任何地方插入名称变量。

这是代码

<?php 
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$subject = $_REQUEST['subject'] ;

mail( "keiron.lowe@example.com", "Name: $name", "$subject", $message, "From: $email" );
header( "Location:contact.php" );
?>
4

3 回答 3

2

你的论点有点混乱:

mail( "keiron.lowe@gmail.com", $subject, "Name: $name\nMessage: $message", "From: $email" );

此外,您不应该不"From: $email"验证电子邮件地址 - 这将使您的脚本打开发送垃圾邮件。

于 2009-12-08T21:04:52.857 回答
1

您向函数传递了太多参数mail()。尝试这样的事情:

<?php 
ob_start();
$name = $_POST['name'] ;
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$message = $_POST['message'] ;
$subject = strtr($_POST['subject'],array(':' => ' ', "\r" => ' ', "\n" => ' '));

$message = "Name: {$name}\r\nmessage: {$message}";
mail("redacted@example.com", $subject, $message, "From: {$email}");
header("Location: contact.php", true, 302);
ob_end_clean();
die;
?>
于 2009-12-08T21:03:41.283 回答
1

查看mail()的手册:

mail("keiron.lowe@gmail.com", "Name: $name", $message, "From: $email");

但无论如何,我强烈建议你不要依赖 PHP 的 mail() 函数,因为它的返回值并不表示邮件是否真的已经发送。改为使用phpmailer进行邮件发送。

最好的祝愿,
法比安

于 2009-12-08T21:04:08.037 回答