首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

session_destroy

(PHP 4, PHP 5, PHP 7)

session_destroy — Destroys all data registered to a session

Description

代码语言:javascript
复制
bool session_destroy ( void )

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.

Note: You do not have to call session_destroy() from usual code. Cleanup $_SESSION array rather than destroying session data.

In order to kill the session altogether, the session ID must also be unset. If a cookie is used to propagate the session ID (default behavior), then the session cookie must be deleted. setcookie() may be used for that.

When session.use_strict_mode is enabled. You do not have to remove obsolete session ID cookie because session module will not accept session ID cookie when there is no data associated to the session ID and set new session ID cookie. Enabling session.use_strict_mode is recommended for all sites.

Warning

Immediate session deletion may cause unwanted results. When there is concurrent requests, other connections may see sudden session data loss. e.g. Requests from JavaScript and/or requests from URL links.

Although current session module does not accept empty session ID cookie, but immediate session deletion may result in empty session ID cookie due to client(browser) side race condition. This will result that the client creates many session ID needlessly.

To avoid these, you must set deletion time-stamp to $_SESSION and reject access while later. Or make sure your application does not have concurrent requests. This applies to session_regenerate_id() also.

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example #1 Destroying a session with $_SESSION

代码语言:javascript
复制
<?php
//?Initialize?the?session.
//?If?you?are?using?session_name("something"),?don't?forget?it?now!
session_start();

//?Unset?all?of?the?session?variables.
$_SESSION?=?array();

//?If?it's?desired?to?kill?the?session,?also?delete?the?session?cookie.
//?Note:?This?will?destroy?the?session,?and?not?just?the?session?data!
if?(ini_get("session.use_cookies"))?{
????$params?=?session_get_cookie_params();
????setcookie(session_name(),?'',?time()?-?42000,
????????$params["path"],?$params["domain"],
????????$params["secure"],?$params["httponly"]
????);
}

//?Finally,?destroy?the?session.
session_destroy();
?>

Notes

Note: Only use session_unset() for older deprecated code that does not use $_SESSION.

See Also

  • session_reset() - Re-initialize session array with original values
  • session_regenerate_id() - Update the current session id with a newly generated one
  • unset() - Unset a given variable
  • setcookie() - Send a cookie

← session_decode

session_encode →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com