问题是:重定向页面后,其他时间没有设置会话。 看看我的代码:
的login.php
<?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)之后,没有再次设置会话&amp;所以之后没有重定向。
有人可以说明为什么会在重定向后没有设置会话吗?
答案 0 :(得分:0)
您在substr
使用$_SERVER['REQUEST_URI']
,$_SERVER['REQUEST_URI']
返回 /url.php ,而不是 http://server.com/url.php ,重做你的substr
功能,它应该可以工作。
答案 1 :(得分:0)
不知怎的,它仍然删除了一个会话,仍然无法得到原因。尝试设置一个cookie&amp;使其与所需页面保持一致。
if($_COOKIE['loginpage']!='/test.php'){
$pg=$_SERVER["REQUEST_URI"];
$pg=substr($pg,0,9);
setcookie('loginpage',$pg,false,'/');
}
由于cookie在所有两个/三个页面中都是持久的,所以它可以正常工作。 谢谢大家的帮助,欢呼:)