我正在学习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与联系人页面的URL相同,但没有发送电子邮件,页面会抛出404。
有人知道为什么会发生这种事吗?
编辑:啊,忘了提了,我在这个网站上用Wordpress!我也一直在努力解决这些问题,所以我不怀疑它们可能会导致表格出现问题。我不确定。
"name"参数保留用于其他wordpress用途。如果您将其重命名为"username"(例如),您的脚本可能会工作。
因此,使用<input name="username" ..>
代替<input name="name" ..>
,并使用$_POST['username']
获得变量。
否则,Wordpress会认为你正在寻找一个名为"姓名"的帖子/页面。。(因此404)
一些托管提供商不支持mail()
。确保你的支持。