2011-05-30 55 views
2

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

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

但是,当我检查在menu.php $_SESSION['usertype'],未设置加载每个PHP文件。

这是为什么?

回答

5

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

通过this tutorial进行检查。

+0

所以它应该只在menu.php的开头,而不是其他文件?谢谢! – Eric 2011-05-30 23:20:44

+0

@Eric你需要调用'session_start()'或者在主php文件的顶部或者在menu.php的顶部,我建议把它放在你加载的初始文件(包括menu.php)的顶部。这样你的会话就可以用于你的所有PHP应用程序 – wired00 2011-05-30 23:25:16

1

您是否在menu.php的顶部或menu.php包含之前有session_start()?

+0

不,但是会启动一个新的会话,或者继续另一个会话......或者我应该只在menu.php的顶部而不是其他文件?谢谢! – Eric 2011-05-30 23:17:46

+0

它只会继续,如果有一个运行,它的名称有点误导 – SinistraD 2011-05-30 23:19:59

+0

这是很难解释,它会恢复,如果有一个会议。可以肯定地说:在使用$ _SESSION全局之前,您总是需要调用session_start。 – Halcyon 2011-05-30 23:21:05