取消设置所有$ _POST变量,以便重定向时不会出现警告框

Ela*_*ley 6 php forms post

提交表单后,我有2个$ _POST变量.在目标网页中,我想将它们转换为$ _SESSION变量并取消设置$ _POST变量,以便用户不会收到浏览器再次发送数据的警报.这是我的(不工作)代码:

 if(isset($_POST['clave']) && isset($_POST['email'])){
   $_SESSION['id_user']=$_POST['clave'];  
   $_SESSION['email']=$_POST['email'];  
 }
 if(isset($_SESSION['id_user']) && isset($_SESSION['email'])){
   unset($_POST['clave']); 
   unset($_POST['email']);
   //I do my stuff here
 }
Run Code Online (Sandbox Code Playgroud)

如果我回复帖子没有显示任何内容,但每次重新加载时我都会再次收到浏览器警告.

Que*_*tin 8

您不能只从服务器中删除$ _POST数据.浏览器会提醒它,因为它是由浏览器存储的.如果它重新提交数据,那么它会将其发送回服务器并重新填充 $_POST.

您需要做的是使用POST-REDIRECT-GET模式.

处理POST数据(例如,通过将其转储到会话中),然后向浏览器发送重定向而不是HTML文档.然后,浏览器向服务器发出GET请求,然后为其提供页面.