嗨,我有关于php会话的问题,我有一个页面与一个文件,我创建了一个会话,并发送到其他页面,在此页面接收POST或GET变量做一个搜索,但如果我去前进,然后返回我的导航器互联网显示“确认转发表格”
session_start();
if($_SESSION['logged']!='yes'){
header('location: http://www.midomain.com/login.php');
}
else{
$user=$_SESSION['user'];
$varforsearch=$_POST['var'];
}如果我删除session_start();行,它可以工作,并且不显示“确认转发表单",如果我继续,然后返回,但没有创建会话,有什么想法吗?
发布于 2014-04-30 00:22:20
$_SESSION['logged']!='yes'表示未创建会话,用户未登录。
在其他部分,你已经写了,$user=$_SESSION['user'];。
通常,仅当用户成功登录时,$_SESSION' logged‘才应为true。
你应该在认证函数中开始赋值,如果用户通过了验证,那么只赋值会话变量。
希望这能对你有所帮助。
发布于 2014-04-30 00:36:31
为了避免重新提交,您需要重定向到同一页面。尝试以下方法:
session_start();
if($_SESSION['logged']!='yes'){
header('location: http://www.midomain.com/login.php');
}
else{
$user=$_SESSION['user'];
$varforsearch=$_POST['var'];
//Clear POST data
unset($_POST);
//redirect to your self or other page
header('location: http://www.midomain.com/search.php');
}https://stackoverflow.com/questions/23369914
复制相似问题