session_unset

(PHP 4, PHP 5, PHP 7, PHP 8)

session_unsetFree all session variables

Açıklama

session_unset(): bool

Oturuma kayıtlı tüm oturum değişkenlerini serbest bırakır.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
7.2.0 İşlevin dönüş türü artık bool oldu. Evvelce void idi.

Notlar

Bilginize:

$_SESSION kullanılıyorsa belli bir oturum değişkenini temizlemek için unset() kullanılır. Örnek: unset ($_SESSION['degisken']);.

Dikkat

$_SESSION'ın tamamını temizlemek için unset($_SESSION) kullanılmamalıdır, çünkü bu, oturum değişkenlerinin $_SESSION süper küreseli aracılığıyla kaydedilmesini devre dışı bırakır.

Bilginize:

session_unset() ile $_SESSION = [] eşdeğerdir.

Dikkat

Bu işlev yalnızca bir oturum etkinse çalışır. Oturum henüz başlamadıysa veya zaten yok edilmişse, $_SESSION dizisini temizlemeyecektir. Oturum etkin olmasa bile tüm oturum değişkenlerini temizlemek için $_SESSION = [] kullanılmalıdır.

add a note

User Contributed Notes 3 notes

up
39
tim at leethost dot com
13 years ago
I was having a problem clearing all session variables, deleting the session, and creating a new session without leaving old session stuff behind in all browsers.  The below code is perfect for a logout script to totally delete everything and start new.  It even works in Chrome which seems to not work as other browsers when trying do logout and start a new session.<?php    session_start();    session_unset();    session_destroy();    session_write_close();    setcookie(session_name(),'',0,'/');    session_regenerate_id(true);?>
up
25
jerry
9 years ago
The difference between both session_unset and session_destroy is as follows:session_unset just clears out the session for usage. The session is still on the users computer. Note that by using session_unset, the variable still exists. session_unset just remove all session variables. it does not destroy the session....so the session would still be active.Using session_unset in tandem with session_destroy however, is a much more effective means of actually clearing out data. As stated in the example above, this works very well, cross browser. session_destroy is destroy the session. session_destroy() to kill all session information.....This is the more secure function to use.
up
0
christian+php at
1 year ago
The solution provided by tim at leethost dot com is nice but you must check a active session first, because else you fill the logs with PHP Errors or Notices depending on your settings. I use it as a function, and it works smooth. ```php    /** @return void  */    public static function sayonara():void    {        if (session_status() !== PHP_SESSION_ACTIVE) :void        {            session_start();            session_unset();            session_destroy();            session_write_close();            setcookie(session_name(), '', 0, '/');            session_regenerate_id(true);        }            }    sayonara();```
To Top