ds0678 2014-08-20 09:30
浏览 146
已采纳

$ _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?

  • 写回答

1条回答 默认 最新

  • drmlxgmqn18198265 2014-08-20 09:34
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?