📜  PHP-会话(1)

📅  最后修改于: 2023-12-03 14:45:26.934000             🧑  作者: Mango

PHP 会话

PHP 会话是一种跨页面或跨请求保留用户数据的技术。在 PHP 中,可以使用会话(Session)来存储用户数据,比如用户登录状态、购物车信息等等。

开始一个会话

在 PHP 中,需要使用 session_start() 函数来开始一个会话。这个函数会启动 PHP 的会话管理器,并且会向客户端发送一个“session id”(会话 ID),这个 ID 会被保存在客户端的 cookie 中。在之后的请求中,PHP 会通过这个 session id 来找到对应的会话数据。

<?php
session_start();

// 在会话中存储数据
$_SESSION['username'] = 'John';

// 从会话中读取数据
$username = $_SESSION['username'];
?>
设置会话选项

可以通过 session_set_cookie_params() 函数来设置 cookie 的一些选项,比如过期时间、路径、域等等。

<?php
// 设置 cookie 的过期时间为 1 天
session_set_cookie_params(86400); // 86400 秒等于 1 天

session_start();
?>
销毁会话

可以使用 session_destroy() 函数来销毁当前会话中的所有数据,同时也会删除客户端的 session cookie。

<?php
session_start();

// 清空会话中的数据
$_SESSION = [];

// 删除客户端的 session cookie
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(
        session_name(),
        '',
        time() - 42000,
        $params["path"],
        $params["domain"],
        $params["secure"],
        $params["httponly"]
    );
}

// 销毁会话
session_destroy();
?>
小结

本文介绍了 PHP 会话的基本用法,包括开启会话、存取数据、设置选项以及销毁会话。在实际开发中,会话经常用来存储用户状态、购物车信息等等。在使用会话时,需要注意一些安全问题,比如避免 session hijacking(会话劫持)等攻击。