【问题标题】:Why is $_SESSION not carrying data to separate PHP file?为什么 $_SESSION 不携带数据到单独的 PHP 文件?
【发布时间】:2011-09-05 02:35:34
【问题描述】:

我有一个登录页面,在我登录时设置了$_SESSION['usertype']。我有一个单独的 PHP 文件,其中包含一个在侧面加载的菜单。该文件通过

加载到每个 PHP 文件中

<?php include('menu.php') ?>

但是当我在 menu.php 中检查 $_SESSION['usertype'] 时,它没有设置。

这是为什么?

【问题讨论】:

    标签: php mysql session login


    【解决方案1】:

    在包含需要访问$_SESSION['usertype'] 的文件之前检查您是否使用session_start()

    通过this tutorial查看。

    【讨论】:

    • 所以它应该只在menu.php的开头,而不是其他文件?谢谢!
    • @Eric 您需要在主 php 文件的顶部或 menu.php 的顶部调用 session_start(),我建议将其放在您加载的初始文件的顶部(包括 menu.php)。 php)。这样,您的会话对所有 PHP 应用程序都可用
    【解决方案2】:

    你有 session_start() 在 menu.php 的顶部还是在 menu.php 的包含之前?

    【讨论】:

    • 不,但是会开始一个新的会话,还是继续另一个......或者我应该把它放在 menu.php 的顶部,而不是另一个文件?谢谢!
    • 只有有一个运行才会继续,它的名字有点误导
    • 很难解释,如果有会话就会恢复。可以肯定地说:您需要始终在使用 $_SESSION 全局变量之前调用 session_start。
    • 我认为文档解释得很好,并且还有一个“两页”示例:“session_start() 根据通过 GET 或 POST 请求传递的会话标识符创建会话或恢复当前会话,或通过 cookie 传递。” php.net/manual/en/function.session-start.php
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2011-04-27
    • 2023-03-15
    相关资源
    最近更新 更多