$ _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页 login.php code>和 main .php code>,每页顶部有以下代码 p>

  if(session_id()==''){
 session_start(  ); 
} 
  code>  pre> 
  blockquote> 
 
 

我将会话变量设置为1或0,具体取决于用户登录是否为管理员。

点击登录后,您将进入main.php。 在页面顶部我做了一个 print_r($ GLOBALS) code>,我可以看到很多全局变量,包括 $ _ SESSION ['admin'] code>条目。 p>

在我同事的电脑上,只有大约5个全局变量显示, $ _ 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.