如何从第二个php文件访问会话变量?

时间:2010-06-24 15:39:28

标签: php session redirect

作为我尝试创建一个与其他开发人员的现有php应用程序具有相同外观和感觉的ASP.net的一部分。 (更多关于它你能在这里阅读:How to share sessions between PHP and ASP.net application?) 我正处于在ASP.net和PHP应用程序之间共享userlogin状态的过程中。

我有像signin.aspx?foo = asdhhjkasd(ASP.net)和signin.php?foo = asdhhjkasd这样的链接,告诉其他应用程序应该使用哪些用户凭据来验证用户。

现在我坚持使用PHP会话管理:现有的php应用程序包含一个index.php,其中包含几个(100个中的一些)其他php文件并执行其功能。有一个会话管理(session_start()涉及等等。

我想做的是用一些参数调用signin.php页面调用。根据使用过之前是否登录过php应用程序,我只想重定向到index.php,但是我无法得到会话变量。

我的signin.php如何看待,以访问index.php中使用的会话变量。这是我到目前为止所尝试的:

<?php
    // session_start(); tried it with or without it
    if($_SESSION['user_id'] != "")
    {
        header('Location:index.php');
    }
    else
    {
          echo "no redirect";
    }
?>

我总是打印出“无重定向”。

或者我的想法是错误的,当没有涉及发布/获取操作时,无法从php中的另一个页面访问会话变量?

也许我应该说我的PHP能力有点受限。

2 个答案:

答案 0 :(得分:2)

确保您拥有正确的Cookie名称(默认为PHPSESSID)。您可以使用session_name()进行更改 另外:您应该致电session_start(),因此即使session.auto_start已关闭,您的代码也能正常运行。

答案 1 :(得分:1)

你的脚本看起来没问题,我不知道为什么它不起作用,除非在使用会话之前没有初始化“session_start()”。

此外,您在哪里定义会话?检查“session_start()”是否已在那里初始化。

相关问题