Примери
PHP Manual

Предаване на сесиен идентификатор

Има два начина за предаване на сесиен идентификатор:

Сесийния модул поддържа и двата метода. Бисквитките са оптималния, но понеже не винаги са достъпни, осигуряваме алтернативен метод. Вторият начин прикрепва сесиен идентификатор директно към URL адреси.

PHP може да преобразува връзки прозрачно. Ако не използвате PHP 4.2.0 или по-ново, трябва да го включвате ръчно по време на компилацията на PHP. Под Unix, предайте параметъра --enable-trans-sid на configure. Ако тази опция при компилацията и run-time опцията session.use_trans_sid са включени, относителните URI адреси ще бъдат променяни автоматично, за да съдържат сесийния идентификатор.

Забележка: Директивата arg_separator.output php.ini ви позволява да настройвате според нуждите си разделителя на аргументи. За пълна съвместимост с XHTML, използвайте &.

Алтернатива е използването на константата SID, която е дефинирана ако сесията е стартирана. Ако клиента е изпратил правилно сесийната бисквитка, тя има вида session_name=session_id. При други обстоятелства, тя се извежда като празен низ. По този начин, можете безусловно да я вградите към URL адреси.

Следващият пример демонстрира как да регистрирате променлива и как да я предадете правилно към друга страница, използвайки SID.

Example #1 Преброяване на посещенията на даден потребител

<?php

session_start
();

if (empty(
$_SESSION['count'])) {
   
$_SESSION['count'] = 1;
} else {
   
$_SESSION['count']++;
}
?>

<p>
Hello visitor, you have seen this page <?php echo $_SESSION['count']; ?> times.
</p>

<p>
To continue, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">click
here</a>.
</p>

Функцията htmlspecialchars() може да се използва при отпечатване на SID, с цел предпазване от XSS атаки.

Отпечатването на SID, както е показано по-горе, не е задължително ако --enable-trans-sid е използвана при компилирането на PHP.

Забележка: За неотносителните URL адреси се приема, че сочат към външни сайтове и по тази причина не се добавя SID, тъй като това е риск за сигурността свързан с попадането на SID на друг сървър.


Примери
PHP Manual