Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if PHP session has already started

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?

like image 200
Logan Avatar asked Jun 06 '11 09:06

Logan


People also ask

What is session status?

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.

Does PHP CLI have 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.


1 Answers

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(); } 
like image 123
lovelyramos Avatar answered Oct 13 '22 13:10

lovelyramos