京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
服务端 / PHP 教程 / PHP 高级教程
PHP Session
PHP 魔术常量PHP Cookie

PHP Session

在本教程中,您将学习如何使用PHP会话将某些数据临时存储在服务器上。

什么是Session

尽管您可以使用Cookie存储数据,但是它存在一些安全问题。 由于cookie存储在用户计算机上,因此攻击者可以轻松地修改cookie内容,以在您的应用程序中插入可能有害的数据,从而可能破坏您的应用程序。

此外,每次浏览器向服务器请求URL时,网站的所有cookie数据都会在请求中自动发送到服务器。 这意味着如果您在用户系统上存储了5个Cookie,每个Cookie的大小为4KB,则浏览器需要在用户每次查看页面时上传20KB的数据,这可能会影响您站点的性能。

您可以通过使用PHP session来解决这两个问题。 PHP session将数据存储在服务器而不是用户的计算机上。 在基于会话的环境中,每个用户都是通过称为会话标识符或SID的唯一编号来标识的。 此唯一的会话ID用于将每个用户与自己在服务器上的信息(例如电子邮件,帖子等)链接起来。

提示:session ID是由PHP引擎随机生成的,几乎无法猜测。此外,由于会话数据存储在服务器上,因此不必随每个浏览器请求一起发送。

开始 Session

在将任何信息存储在会话变量中之前,必须首先启动Session。要开始新的Session,只需调用PHP session_start()函数。它将创建一个新会话并为用户生成一个唯一的Session ID。

下面示例中的PHP代码只是开始一个新Session。

<?php
//开始 session
session_start();
?>

session_start()函数首先通过查找会话ID的存在来检查会话是否已经存在。如果找到一个会话,即会话已经启动,则设置会话变量,如果没有,则通过创建新的会话ID来启动新会话。

注意:您必须session_start()在页面的开头(即在浏览器中脚本生成的任何输出之前)调用该函数,就像在使用setcookie()函数设置cookie时一样。

存储和访问Session数据

您可以将所有会话数据作为键值对存储在$_SESSION[]超全局数组中。可以在会话的生存期内访问存储的数据。看以下脚本,该脚本创建一个新会话并注册两个会话变量。

<?php
//正在启动会话
session_start();
 
//存储会话数据
$_SESSION["firstname"] = "Peter";
$_SESSION["lastname"] = "Parker";
?>

要访问我们在上一个示例中从同一Web域的任何其他页面上设置的会话数据,只需调用session_start()即可重新创建会话,然后将相应的键传递给$_SESSION关联数组。

<?php
//正在启动会话
session_start();
 
//访问会话数据
echo 'Hi, ' . $_SESSION["firstname"] . ' ' . $_SESSION["lastname"];
?>

上面示例中的PHP代码产生以下输出。

Hi, Peter Parker

注意:要访问同一页面中的会话数据,无需重新创建会话,因为它已在页面顶部启动。

销毁 Session

如果要删除某些会话数据,只需取消设置$_SESSION关联数组的相应键,如以下示例所示:

<?php
//启动会话
session_start();
 
//正在删除会话数据
if(isset($_SESSION["lastname"])){
    unset($_SESSION["lastname"]);
}
?>

但是,要完全销毁会话,只需调用session_destroy()函数。该函数不需要任何参数,一次调用会销毁所有会话数据。

<?php
//启动会话
session_start();
 
//销毁会话
session_destroy();
?>

注意:在使用session_destroy()函数销毁会话之前,如果会话环境尚未存在,则需要先使用session_start()函数重新创建该会话环境,以便进行销毁。

每个PHP会话都有一个超时值(持续时间,以秒为单位),该值确定在没有任何用户活动的情况下会话应保持活动状态的时间。 您可以通过更改PHP配置文件(php.ini)中session.gc_maxlifetime变量的值来调整此超时时间。

PHP 魔术常量PHP Cookie
上一篇:PHP Cookie
下一篇:PHP 发送邮件