Liny_@NotePad

沉迷ACG中

PHP 销毁Session

YOYO posted @ 2010年9月21日 17:57 in 【PHP】 with tags Session , 3090 阅读

之前用session_destroy()的方式销毁session,发现丢到服务器上无用,百度之得解:

● 如何删除session?

1、unset ($_SESSION['xxx']) 删除单个session,unset($_SESSION['xxx']) 用来unregister一个已注册的session变量。其作用和session_unregister()相同。 session_unregister()在PHP5中不再使用,可将之打入冷宫。

unset($_SESSION) 此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_SESSION变量。

2、$_SESSION=array() 删除多个session

3、session_destroy()结束当前的会话,并清空会话中的所有资源。。该 函数不会unset(释放)和当前session相关的全局变量(globalvariables),也不会删除客户端的session cookie.PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。

返回值:布尔值。

功能说明:这个函数结束当前的session,此函数没有参数,且返回值均为true

session_unset() 如果使用了$_SESSION,则该函数不再起作用。由于PHP5必定要使用$_SESSION,所以此函数可以打入冷宫了。

于是以防万一就这么做好了 - -:

<?
	session_start();
	
	session_unset(); 
	
	$_SESSION = array(); 

	if (isset($_COOKIE[session_name()])) { 
		setcookie(session_name(), '', time()-42000, '/'); 
	} 
	
	session_destroy();

	header("Location:../index.php"); 
	return;
?>

仿佛一切顺利的样子 = =。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter