当刷新页面时,如何阻止PHP表单向MYSQL数据库添加空白信息?

时间:2009-09-22 09:18:36

标签: php mysql

如果需要,我会将代码放在我想知道我需要什么代码的位置,以及在何处放置它以停止将空字段输入数据库的表单。

我们将非常感谢代码段。这个问题可能太模糊了,请告诉我。

我正在使用PHP和mysql。

6 个答案:

答案 0 :(得分:3)

if(isset($_POST['formfield'])) {
    //add to db
}
else {
    //don't add to db
}

http://www.php.net/isset

答案 1 :(得分:3)

在插入数据库之前,您必须检查表单内容。

检查内容是否为空也很重要。变量可能存在,但内容可能为空。这是你不想要的,除非该字段是可选的。

这样的事情:

<?php
    if (isset ($_POST['field']) && strlen($_POST['field'] >0))
    {
        insert_to_database();
    }
?>

答案 2 :(得分:1)

检查提交的表格是否有效,如果不是,请不要将其插入数据库。

答案 3 :(得分:1)

你应该做一些必填字段。例如,表单有一个必填字段:当然您需要知道与您联系的人的姓名..因此名称应该是必填字段。 在操作文件中,您需要设置一个if条件来解决该问题:

if(isset($_POST['name'])){
//script that adds the variables to the database
}else{ echo 'the required field : name. was not filled, please try again. Thank you'; }
// it can work without else but you could output something if the required field is not filled in

您也可以将电子邮件发送到必填字段并找到验证电子邮件的PHP脚本,以便它不是假的: - / 无论如何希望这可以帮助你

答案 4 :(得分:1)

除了检查字段是否为空,正如其他人建议的那样,您可能希望完全避免在页面刷新时运行查询。为此,我使用“中间”脚本进行处理,当它们结束时,它们将用户重定向到显示所需内容的最终页面:这样刷新最后一页对数据库没有任何作用,因为所有数据库处理代码都是在另一个脚本中,除非您手动重新提交表单,否则您将无法访问该脚本。

答案 5 :(得分:0)

为了防止页面刷新,cookie将是有用的;要检查空字段,请设置isset()

<?php
//in the top of the page, BEFORE every output!
if(isset($_COOKIE['givemeaname'])){
    setcookie('givemeaname', 'some foo&bar data, maybe a timestamp?', time()+3600);
    //now check the mandatory fields and
    //do whatever you want with your db
}else{
    //do nothing, the page is been refreshed!
}
//do whatever you have to do now!
?>

如果你不想在页面顶部移动你的db-about代码,在cookie检查中你可以对一个布尔变量进行定值,然后只需要把它切掉......选择你的路径。

代替cookie,您可以使用会话,如果您更方便..但行为应该是明确的;)

此解决方案将一直为您节省时间,因为即使您使用POST表单访问该页面,某些浏览器会在提示刷新页面时再次要求重新发送信息(并且懒惰用户通常会单击“是”而不会阅读或理解其含义;)