$ _SESSION变量在$ GLOBALS中不可见
I am new to this and don't want to just go and change my or a colleague's php.ini.
I have Windows and he has Ubuntu set up.
I have 2 pages login.php
and main.php
with the following code at the top of each page
if(session_id() == '') { session_start(); }
I set a session variable to 1 or 0 depending if the user loggin in is a admin or not.
after clicking login you are taken to main.php. At the top of the page I did a print_r($GLOBALS)
and I can see quite a lot of the global variables including the $_SESSION['admin']
entry.
On my colleague's pc there is only about 5 globals showing and $_SESSION
is not there.
Is it a php.ini
setup issue? Where do I start looking to fix this?
我是新手,不想只是改变我或同事的php.ini。
我有Windows并且他已经设置了Ubuntu。 p>
我有2页 我将会话变量设置为1或0,具体取决于用户登录是否为管理员。
点击登录后,您将进入main.php。 在页面顶部我做了一个 在我同事的电脑上,只有大约5个全局变量显示, 是不是 login.php code>和
main .php code>,每页顶部有以下代码 p>
if(session_id()==''){
session_start( );
}
code> pre>
blockquote>
print_r($ GLOBALS) code>,我可以看到很多全局变量,包括
$ _ SESSION ['admin'] code>条目。 p>
$ _ SESSION code>不存在。 p>
php.ini code>设置问题? 我从哪里开始寻找解决方法? p>
div>
You have to call session_start(); in every page. – Naktibalda
Right
php.ini shouldn't have anything to do with this. – serakfalcon
Wrong
Then why it works on one machine and not on the other? session.auto_start in php.ini
session.auto_start Boolean
session.auto_start specifies whether the session module starts a session automatically on request startup. Defaults to 0 (disabled).
To not depend on that, you need to have
session_start();
On top of every page where you want to access or manipulate session data.