ScotlandPHP

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SID (string)
Константа, содержащая либо имя сессии и идентификатор в виде "name=ID" либо пустую строку, если идентификатор сессии был установлен в соответствующие куки. Это тот же идентификатор, что возвращает функция session_id().
PHP_SESSION_DISABLED (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае, если сессии отключены.
PHP_SESSION_NONE (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае, если сессии включены, но нет созданных сессий.
PHP_SESSION_ACTIVE (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае существования сессий.
add a note add a note

User Contributed Notes 3 notes

up
8
Anonymous
1 year ago
SID constant defined dynamically!

var_dump(defined('SID'));  // bool(false) - Not defined...
session_start();
var_dump(defined('SID'));  // bool(true) - Defined now!
up
7
sarath dot jasrin at gmail dot com
1 year ago
Check whether session started using Predefined Constants

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
up
-3
yesmarklapointe at hotmail dot com
8 years ago
Here is some info about how to use SID. Experiment run on WAMPserver, PHP version 5.2.6.
Using FireFox 3.0.

In php.ini,  session.use_cookies has an effect upon whether or not SID passes an empty string or the session info. If it is on, SID is evaluated for the session info upon initial page view, but once a cookie has been set (automatically by  session.use_cookies) in the browser, subsequent views (like page reloads or using the back button) have the cookie being returned to the script so SID is then evaluated as an empty string. On the other hand, if session.use_cookies is off, (and provided you don't create a cookie by some other means), SID will evaluate as the session info no matter how many times you reload the page or use the back button because session_start() keeps opening a new session and no cookies are being set. Be aware this behavior will change the functionality of any links you build with SID. To have a reliable link with session info in it, spell it out using session_name() and session_id(), not SID. Example:

echo '<a href="page2.php?' . session_name() . ' ='  . session_id() . ' ">page2</a>' ;

and not

echo '<a href="page2.php?' . SID . ' ">page2</a>';

Two other settings that I thought might be relevant were not.  session.use_only_cookies  and session.use_trans_sid have no effect at all on the evaluation of SID for a specific line in the code, that is, in  regard to whether or not it is evaluated as an empty string or as the session info. 

And as to functioning in your code, using both session.use_trans_sid and also successfully evaluating SID for session info (as described above) will create a doubling of the session info, screwing up the path you are trying to create.
To Top