我有一个html表单,人们可以订阅邮件列表。表单包括表单验证,提交表单时,数据使用My SQL存储在数据库中。
以下是index.html页面上代码
的代码 <form id="subscribe-form" action="send.php" method="post">
<p id="status"></p>
<div>
<label for="title">Title:</label>
<select class="uniform" name="title" id="title">
<option>Please Choose</option>
<option>Mr</option>
<option>Mrs</option>
<option>Miss</option>
<option>Ms</option>
</select>
</div>
<div>
<label for="firstName">First name:</label>
<input type="text" id="firstName" name="firstName" />
</div>
<div>
<label for="surname">Surname:</label>
<input type="text" id="surname" name="surname" />
</div>
<div>
<label for="email">Email:</label>
<input type="text" id="email" name="email" />
</div>
<div>
<label for="phone">Contact Number:</label>
<input type="text" id="phone" name="phone" />
</div>
<div>
<label for="title">How did you hear about us?</label>
<select class="uniform" name="refer" id="refer">
<option>Please Choose</option>
<option>Google</option>
<option>Yahoo</option>
<option>Word of Mouth</option>
<option>Others</option>
</select>
</div>
<div>
<input type="checkbox" name="news_updates" value="1" />
I'd like to hear about the latest news and events updates</div>
<div>
<input class="button" type="submit" value=""/>
</div>
</form>
以下是send.php的代码
<?php
include ('connection.php');
$sql="INSERT INTO form_data (title,firstName, surname, email, phone, refer, news_updates)
VALUES
('$_POST[title]', '$_POST[firstName]','$_POST[surname]','$_POST[email]','$_POST[phone]','$_POST[refer]','$_POST[news_updates]')";
if (!mysql_query($sql, $connected))
{
die('Error: ' . mysql_error());
}
mysql_close($connected);
?>
我想制作另一个html(unsubscribe.html)页面,人们可以通过输入他们的电子邮件地址取消订阅,以便他们的电子邮件地址与数据库中已有的相应电子邮件相匹配,并将其从My Sql数据库中删除。 我发现这个教程很有帮助 - http://www.phpsuperblog.com/php/delete-records-from-mysql-database-with-html-form-and-php/
这是我的unsubscribe.html页面上的表单。
<form id="unsubscribe_form" action="delete.php" method="post">
<div>
<label for="email_remove">Email:</label>
<input type="text" id="email_remove" name="email_remove" />
</div>
<div>
<input name="delete" type="submit" id="delete" value="" class="unsubscribe_btn">
</div>
</form>
但是当我在取消订阅表单中输入method =“post”时。来自subscribe / index.html上的表单中的数据不会存储在My Sql中,而是显示为空白。 所以我猜我不能有两个“帖子”方法?
如果有人能指引我朝着正确的方向前进,那将非常感激。谢谢。
答案 0 :(得分:0)
我猜你正处于学习阶段。因此,我建议您检查在接收帖子的页面上调用POST方法。
示例:在您的subscribe.php中 你应该:
<input class = "button" type = "submit" value = "Subscribe" name = "subscribe" />
send.php中的
你必须这样做:
if(!isset($_POST['subscribe'])
{
header('location: subscribe.html');
}
您必须使用isset作为您的网页。
如果你可以显示你的delete.php,也许我可以编辑这篇文章并进一步帮助你,但到目前为止......需要检查你可以使用尽可能多的表格(即使在一页上)但是,请确保它们都有不同的ID /名称。
你的delete.php脚本应该是:
<?php
require ('connection.php'); // User require for important functions so that if not found, it throws fatal error
$email = $_POST['email_remove'];
// Check for isset POST
$query = "DELETE from form_data WHERE email = '".$email."'";
if(mysql_query($query)){ echo "deleted";} else{ echo "fail";}
?>
你的delete.php对我来说似乎没问题。
可以将以下内容添加到第2行 echo“”; 的print_r($ _ POST);
并在评论中发布数组?