PHP的cookie与session原理及用法详解

1. PHP的cookie

cookie是浏览器保存在客户端的小文件,可以在客户端和服务器之间交互信息。在PHP中,通过设置cookie可以保存客户端的状态信息,方便用户下次访问时自动加载。PHP中设置cookie的方法如下:

// 设置cookie

setcookie('username', 'user', time()+3600);

通过以上代码可以在客户端设置了一个名称为“username”,值为“user”的cookie,有效期为3600秒(一小时)。如果不设置有效期,则默认是浏览器关闭后失效。

1.1 获取cookie值

获取cookie的方法如下:

// 获取cookie

if(isset($_COOKIE['username'])){

$username = $_COOKIE['username'];

}

通过isset()函数判断是否设置了cookie,如果是,则通过$_COOKIE数组获取cookie的值。

1.2 删除cookie

删除cookie的方法如下:

// 删除cookie

setcookie('username', '', time()-3600);

通过设置cookie的有效期为负值或者使用setcookie()函数的第三个参数为负数可以删除cookie。

2. PHP的session

session是一种服务器端的存储方式,可以用来存储一些敏感信息,比如用户登录信息。服务器会为每个用户创建一个session,通过session_id将用户和服务器的交互信息关联起来。在PHP中,通过设置session可以保存用户的状态信息,方便下次访问时自动加载。PHP中设置session的方法如下:

// 设置session

session_start();

$_SESSION['username'] = 'user';

通过session_start()函数启动session,然后通过$_SESSION数组设置session的值。如果没有启动session,则无法设置或获取session的值。

2.1 获取session值

获取session的方法如下:

// 获取session

session_start();

if(isset($_SESSION['username'])){

$username = $_SESSION['username'];

}

通过session_start()函数启动session,然后通过$_SESSION数组获取session的值。如果没有启动session或者没有设置session的值,则无法获取session的值。

2.2 删除session

删除session的方法如下:

// 删除session

session_start();

unset($_SESSION['username']);

通过unset()函数或者设置$_SESSION的值为null可以删除session。

后端开发标签