我正在学习PHP,并且正在尝试将联系表单添加到我正在处理的网站中。我已经困惑了一段时间,但我的联系表格不起作用!我根本无法理解这是什么问题。
<?php
$action=$_REQUEST['phpaction'];
if ($action=="") /* display the contact form */
{
?>
<form action="#" method="POST" enctype="multipart/form-data">
<input type="hidden" name="phpaction" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_POST['name'];
$email=$_POST['email'];
$message=$_POST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("sean@southernvoiceanddata.co.uk", $subject, $message, $from);
echo "Email sent!";
}
}
?>
问题是,每当我尝试点击“提交”时,它就会转发到同一页面(www.website.com/contact)。该URL与联系人页面的网址相同,但不会发送任何电子邮件,该网页会抛出404.
有谁知道为什么会这样?
编辑:啊,忘了提,我在这个网站上使用Wordpress!我一直在努力解决这些问题,所以我不怀疑它们可能会导致表单出现问题。我不确定。答案 0 :(得分:1)
&#34;名称&#34;参数由其他wordpress目的保留/使用。如果您将其重命名为&#34; username&#34; (例如)你的脚本可能会工作。
因此,使用<input name="name" ..>
代替<input name="username" ..>
,并使用$_POST['username']
获取变量。
否则,Wordpress会认为您正在寻找一个帖子/页面,无论用户输入什么名称&#34;名称&#34; field ..(因此404)
答案 1 :(得分:0)
某些托管服务提供商不支持mail()
。确保你的支持。