提交表单后,我有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)
如果我回复帖子没有显示任何内容,但每次重新加载时我都会再次收到浏览器警告.
您不能只从服务器中删除$ _POST数据.浏览器会提醒它,因为它是由浏览器存储的.如果它重新提交数据,那么它会将其发送回服务器并重新填充 $_POST.
您需要做的是使用POST-REDIRECT-GET模式.
处理POST数据(例如,通过将其转储到会话中),然后向浏览器发送重定向而不是HTML文档.然后,浏览器向服务器发出GET请求,然后为其提供页面.