最近在学习中,遇见了表单重复提交问题。后来百度搜索到用 header("location:$post");解决。
我的表单是提交给本页面,本页面获取$_POST值来组成SQL语句,最后函数执行SQL语句。
$sql = "...";//组成SQL语句 1
exeupdate($sql);//自己写的执行函数 2
header("location:$post");//跳转 3
本来我以为正常的执行顺序是 1,2,3 然后转换回本页面,因为本页面通过SESSION值可以获取到数据,所以可以看到即时的数据更新后的情况。
但我把2 3颠倒顺序后,数据还是可以更新。这是为什么呢?
回复讨论(解决方案)
header 之后他还是会执行后面的代码 不就解释了你的疑问拉
来个 EXIT
header 只是发送一个 http 协议头
并不会中断当前程序的执行
如楼上说的header 只是发送一个 http 协议头
再跳转之前他还会往下执行,一般跳转和exit();配合使用
我比较好奇表单重复提交跟重定向有什么关系...