关于php代码问题,提交一次数据后,第二次刷新一下 会将上次的数据自动插入到数据库。

2024-11-02 02:27:02
推荐回答(3个)
回答1:

在表单页面设置一个隐藏域,尽量让隐藏域的值不重复,例如在表单页面form.php中设置隐藏域hashCode,并让hashCode的值为当前的时间戳:


    

在表单处理页面form_action.php接收隐藏域hashCode的值,判断是否存在$_SESSION['ACTION']或者$_SESSION['ACTION']的值是否等于表单提交的hashCode的值,如果相等为重复提交数据。

session_start();
$hashCode    =trim($_POST['hashCode']);
if(!isset($_SESSION['ACTION'])||$_SESSION['ACTION']!=$hashCode){
    //新提交数据,入库操作
    $_SESSION['ACTION']    =$hashCode;//标记操作完成
}else{
    echo '请勿重复提交数据';
    exit();
}
?>

回答2:

表单页面是一个文件,数据库插入是一个文件,分开来做,不然肯定会每刷新一次就执行一次,都不需要按提交按钮

回答3:

将name字段设定为unique,这样,重复的name将不能插入数据库,但会爆出一个错误,可以将其$db->exec("insert into reg(name,pwd,email) values('$name','$pwd','$email')") or exit("用户名重复!!!");