acitvity.php
//Form start
<form action=''>
</form>
//Form End
//Get POST Values
<?php
$_POST[''];
?>
//End
Run Code Online (Sandbox Code Playgroud)
如果我在提交表单后刷新页面,则重新提交所有发布的值,因为所有值都在浏览器中,因此重新提交.当我为此搜索解决方案时,我得到的信息是,如果表单和后期操作在单独的php文件中完成,那么在刷新时发布值不再有问题.
这是解决方案吗?但现在我必须在单个文件和POST值两者都不应该在刷新时再次提交..有什么办法可以做到这一点???
学习PRG模式,这样你就可以正确地做到这一点:)
http://en.wikipedia.org/wiki/Post/Redirect/Get
例如,您正在尝试处理用户注册表单,因此您将获得一堆POSTed值,并将其保存到数据库中.
if(!empty($_POST)) {
// validate and save to db
// get last inserted user_id
}
Run Code Online (Sandbox Code Playgroud)
执行此操作后POST,您可以将新用户重定向到他的个人资料页面(假设您没有激活要求),而不是使用之前的ed值返回相同的页面.
if(!empty($_POST)) {
// validate and save to db
// get last inserted user_id, say in $user_id
header("Location: /users/$user_id");
}
Run Code Online (Sandbox Code Playgroud)
这样,浏览器重定向,只要用户点击刷新,你就不会有双重注册的问题.
| 归档时间: |
|
| 查看次数: |
5149 次 |
| 最近记录: |