Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当页面刷新时,如何阻止PHP表单向MYSQL数据库添加空白信息?_Php_Mysql - Fatal编程技术网

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

当页面刷新时,如何阻止PHP表单向MYSQL数据库添加空白信息?,php,mysql,Php,Mysql,如果需要,我将放置代码,我只是想知道我需要什么代码,以及在哪里放置代码,以阻止将具有空字段的表单输入数据库 若能提供代码片段,将不胜感激。这个问题可能太模糊了,请告诉我 我正在使用PHP和mysql if(isset($_POST['formfield'])) { //add to db } else { //don't add to db } 检查提交的表单是否有效,如果无效,请不要将其插入数据库。在插入数据库之前,您必须检查表单内容 检查内容是否为空也很重要。变量可能存在,

如果需要,我将放置代码,我只是想知道我需要什么代码,以及在哪里放置代码,以阻止将具有空字段的表单输入数据库

若能提供代码片段,将不胜感激。这个问题可能太模糊了,请告诉我

我正在使用PHP和mysql

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

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

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

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

大概是这样的:

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

您应该设置一些必填字段。例如,表单有一个必填字段:姓名当然,您需要知道与您联系的人的姓名。。所以名称应该是必填字段。 在操作文件中,您需要设置一个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脚本,以确保它不是伪造的:-/
无论如何,希望这能帮助您

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

为了防止页面刷新,一块饼干会很有用;要检查空字段,请使用isset()


如果您不想在页面顶部移动db about代码,在cookie检查中,您可以对布尔变量进行值化,然后只需将其选中。。。选择你的道路

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


此解决方案将一直为您节省时间,因为即使您使用POST表单点击页面,当提示刷新页面时,某些浏览器会再次要求重新发送信息(懒惰用户通常在没有阅读或理解其含义的情况下单击“是”)

本网站的交易是,如果你得到一个有助于解决问题的答案,你可以单击最能解决问题的答案旁边的大复选标记。注释向后斜杠,兄弟。你所描述的是Post/Redirect/get模式,遵循它确实是一个好主意,请参见
<?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!
?>