在PHP中取消设置POST值

Par*_*i04 0 php post

acitvity.php

//Form start

   <form action=''>

   </form>

//Form End

//Get POST Values

<?php 

$_POST[''];

?>

//End
Run Code Online (Sandbox Code Playgroud)

如果我在提交表单后刷新页面,则重新提交所有发布的值,因为所有值都在浏览器中,因此重新提交.当我为此搜索解决方案时,我得到的信息是,如果表单和后期操作在单独的php文件中完成,那么在刷新时发布值不再有问题.

这是解决方案吗?但现在我必须在单个文件和POST值两者都不应该在刷新时再次提交..有什么办法可以做到这一点???

And*_*ong 5

学习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)

这样,浏览器重定向,只要用户点击刷新,你就不会有双重注册的问题.

  • @ Parthi04编辑了我的答案,可能与上面的答案类似 (2认同)