PHP中的联系表单

时间:2013-12-21 11:01:34

标签: php forms email post

我在PHP中有一个联系表单给我一些错误。这是我使用的代码:

$message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];

smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);

我的问题是,当我第一次加载页面时,它会给出关于所有字符串的“$ message = ...”行的错误:

  

注意:未定义的索引:第56行的D:\ xampp \ htdocs \ interaction \ contact.php中的名称
  注意:未定义的索引:第56行的D:\ xampp \ htdocs \ interaction \ contact.php中的电子邮件   电话,主题和信息的错误相同。

我提交联系表后,我不再收到任何错误。

当我第一次加载页面时,它会发送并清空电子邮件到所需的地址

最后一个问题是,即使我在提交电子邮件后使用javascript代码接收弹出消息,我也不会收到任何消息。

我阅读了其他帖子并尝试了不同的想法,你给了其他有类似错误的人,但没有任何结果。

4 个答案:

答案 0 :(得分:1)

在分配之前,您应该使用 isset 构造来检查变量。

if(isset($_POST["name"]))
{
$name = $_POST["name"];
}
else
{
echo "Name is not set";
}

如果您的其他 $_POST 变量在将其传递给smtpmailer()之前,您应该为所有人执行此操作。

答案 1 :(得分:1)

按钮代码

<input type="submit" name="submit">

并替换代码

if(isset($_POST['submit'])){

$message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];

smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);

}

$message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];

smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);

答案 2 :(得分:0)

使用 isset 作为@Shankar Damodaran说或

如果您想要隐藏通知和错误,请尝试此操作。

  

的ini_set( “display_errors设置”, “关”); //如果您想要显示错误,请将其设置为

答案 3 :(得分:0)

if(isset($_POST['name'])){
    $message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];
    smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);
}

这样,只有在提交表单时才会发送电子邮件