问题是:在页面重定向后,会话没有被设置。看看我的代码:
login。
<?php
session_start();
$pg=$_SERVER["REQUEST_URI"];
$pg=substr($pg,0,11);
$_SESSION['pg']=$pg;
?>
<form action='test.php'>
...
...
</form>
test.php
<?php
session_start();
$pg=$_SESSION['pg'];
if(some_condition){
echo "<script>";
echo "window.location='".$pg."'";
echo "</script>";
}
?>
第一次,它工作正常,它重定向到login.php。在第一次重定向(test.php到login.php)之后,会话没有再次设置&所以之后没有重定向。
谁能告诉为什么会话后不设置重定向?
您在$_SERVER['REQUEST_URI']
中使用substr
, $_SERVER['REQUEST_URI']
返回/url.php,而不是http://server.com/url.php,所以重做您的substr
函数,它应该工作。
不知何故它仍然删除一个会话,仍然不能得到原因。试着设置一个cookie &使它与所需的页面一致。
if($_COOKIE['loginpage']!='/test.php'){
$pg=$_SERVER["REQUEST_URI"];
$pg=substr($pg,0,9);
setcookie('loginpage',$pg,false,'/');
}
由于cookie在所有两个/三个页面上都是持久的,所以它工作得很好。谢谢大家的帮助,谢谢:)