没有在重定向请求上设置会话

时间:2014-06-29 04:27:50

标签: php

问题是:重定向页面后,其他时间没有设置会话。 看看我的代码:

的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;所以之后没有重定向。

有人可以说明为什么会在重定向后没有设置会话吗?

2 个答案:

答案 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在所有两个/三个页面中都是持久的,所以它可以正常工作。 谢谢大家的帮助,欢呼:)