I have a PHP file that is sometimes called from a page that has started a session and sometimes from a page that doesn't have session started. Therefore when I have session_start()
on this script I sometimes get the error message for "session already started". For that I've put these lines:
if(!isset($_COOKIE["PHPSESSID"])) { session_start(); }
but this time I got this warning message:
Notice: Undefined variable: _SESSION
Is there a better way to check if session has already started?
If I use @session_start
will it make things work properly and just shut up the warnings?
Sessions or session handling is a way to make the data available across various pages of a web application. The session_status() function returns the status of the current session.
Yes, it is still not working, because it makes no sense to use Session in CLI. Sessions rely on tokens that make the client recognizable. In most cases this is done by cookies, but your CLI won't handle cookies. So everytime your CLI is seen as someone new.
Recommended way for versions of PHP >= 5.4.0 , PHP 7
if (session_status() === PHP_SESSION_NONE) { session_start(); }
Reference: http://www.php.net/manual/en/function.session-status.php
For versions of PHP < 5.4.0
if(session_id() == '') { session_start(); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With