PHP联系表单编辑

时间:2009-12-08 21:00:06

标签: php email forms contact

我不是PHP的专业人士,只是真正开始,并想知道你是否可以帮助我。

我试图通过这封联系表格给我发电子邮件,说明人员姓名和这样的信息。

姓名:弗雷德博客 消息:消息,消息。

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

这是代码

<?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" );
?>

3 个答案:

答案 0 :(得分:2)

你的论点混淆了一点:

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

此外,如果不验证电子邮件地址,则不应执行"From: $email" - 这会使您的脚本处于打开状态以发送垃圾邮件。

答案 1 :(得分: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;
?>

答案 2 :(得分:1)

查看mail()的手册:

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

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

祝你好运,
费边