Autor Zpráva
midlan
Profil
Ahoj,
zjistil jsem, že od PHP 5.4 přibyla k sessions funkce session_status(), která vrací konstanty PHP_SESSION_*. Chtěl jsem si přidat podporu i pro PHP 5.3, tak jsem napsal jednoduchou funkci:
if(!function_exists('session_status')) {
  define('PHP_SESSION_DISABLED', 0);
  define('PHP_SESSION_NONE', 1);
  define('PHP_SESSION_ACTIVE', 2);

  function session_status() {
    return isset($_SESSION) ? PHP_SESSION_ACTIVE : PHP_SESSION_NONE;
  }
}
Jen nevím kdy nastane situace, že by funkce měla vrátit PHP_SESSION_DISABLED. V PHP 5.4 jsem provedl několik testů, ale PHP_SESSION_DISABLED mi nikdy session_status() nevrátila.
DJ Miky
Profil
Podle manuálu:
PHP_SESSION_DISABLED if sessions are disabled.
= PHP bylo zkompilované bez podpory sessions (volba --disable-session). Ve standardní distribuci jsou sessions součástí PHP, takže pokud si PHP nekompiluješ sám a výslovně sessions nezakážeš, nikdy se s touto hodnotou nesetkáš.

Co se týče emulace v PHP < 5.4, tak by snad mělo jít testovat něco jako
if(!function_exists('session_start')) return PHP_SESSION_DISABLED;
midlan
Profil
DJ Miky:
Díky za vysvětlení. Já jsem zkoušel hledat jak sessions zakázat, abych pak otestoval návratovou hodnotu na PHP_SESSION_DISABLED, ale nic jsem nenašel a myslel si, že když sessions nepůjdou někde zakázat, tak ta hodnota nenastane.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: