我在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代码接收弹出消息,我也不会收到任何消息。
我阅读了其他帖子并尝试了不同的想法,你给了其他有类似错误的人,但没有任何结果。
答案 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);
}
这样,只有在提交表单时才会发送电子邮件