这是我的网站:http://www.iamshahil.com,我的索引页面中有一个联系表单,我希望将联系表单中提交的数据发送到我的电子邮箱。我有一个代码,但不起作用,我的提交按钮无法点击。
这是我的表格:
<form method="post" action="mail.php">
<table>
<tr>
<td class="feedbacktext">Name</td>
</tr>
<tr>
<td> <input type="text" id="name" placeholder="You"></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr style="margin-top:20px;">
<td class="feedbacktext">Email</td>
</tr>
<tr>
<td><input type="text" id="email" placeholder="you@email.com"></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td class="feedbacktext">Website</td>
</tr>
<tr>
<td><input type="text" id="website" placeholder="http://www.yourwebsite.com"></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td class="feedbacktext">Whats up?</td>
</tr>
<tr>
<td><textarea id="message" placeholder="whats up?" rows="4" cols="30"></textarea></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><input id ="send" class="button" type="button" value="Send" style="float: right;"></td>
</tr>
</form>
</table>
这是我的PHP代码:
<?php
if(isset($_POST['submit']))
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$website=$_REQUEST['website'];
$message=$_REQUEST['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("me@gmail.com", $subject, $message, $from);
echo "Email sent!";
}
?>
答案 0 :(得分:3)
要开始:将按钮的type
更改为submit
。您还需要为每个字段提供name
属性(name
不与id
相同。这些名称应与您在PHP脚本中使用的名称相匹配。
例如:
<input type="text" id="name" placeholder="You">
应该成为
<input type="text" id="name" placeholder="You" name="name">
您应该在PHP脚本中将其引用为$_REQUEST['name']
进行所有更改,看看会发生什么。不要指望你的邮件是第一次发送 - PHP邮件是出了名的繁琐。期待必须稍微调试一下。
答案 1 :(得分:0)
就像Mike W所说的那样,你需要设置要提交的按钮的类型,并为输入字段添加name属性。 name属性是您在php代码中的if语句中使用的属性,用于在提交表单之前检查用户是否填写了输入字段。
我还想指出你应该用 $ _ POST 替换 $ _ REQUEST ,因为你知道你在表单中使用'post'方法。这对于安全性非常重要,也可以避免我认为的垃圾邮件。