【PHP学习】-SESSION本地存储小谈

wpbkj
2021-04-04 / 908 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年07月27日,已超过275天没有更新,若内容或图片失效,请发送邮件至admin@wpbkj.com。

本项目演示地址:SESSION存储测试地址
演示文件共有3个:

session.php(给session赋值并本地存储)
2.php(session跨页面调取测试)
del.php(删除特定session)

演示文件可前往GITHUB获取:WPBKJ博客PHP学习仓库
GITEE国内克隆版:WPBKJ博客PHP学习仓库-GITEE

首先介绍一下SESSION:

session变量可以让我们继续使用以前的页面数据,好像服务器已经记住了或者说跟踪了用户。因此,可以在PHP程序文件之间传递数据(数值、字符串、数组和对象)。当用户在应用程序的页间进行跳转时,session变量不会释放(在设定的session存活期时间内,一般为180分钟,可自行在php.ini设定session.cache_expire的值)。由此可见,session变量存储的是个别浏览器端专用的数据。当用户浏览Web站点时,使用session变量可以为每一个用户保存指定的数据。任何存储在用户session变量中的数据可以在用户调用下一个页面时取得。
实际应用中,在身份认证、操作监控、客户消费偏好跟踪等许多需要持续会话的场合,应用广泛。 Session
的工作机制是:为每个访客创建一个唯一的id (UID),并基于这个UID来存储变量。UID存储在cookie 中,或者通过URL进行传导。

下面我们根据演示实例给大家大概示范一下session的基本功能

本实例将首先使用POST为session赋值并存储,之后演示session跨页面调取
在这之前,你要先了解一些相关知识

使用session前一定要session_start()启动session;
储存session:$_SESSION["name"]="King";//数组操作;
销毁session:unset($_SESSION["name"]);//销毁一个;
session_destroy()和unset($_SESSION);//销毁所有的session
检测一个变量是否被设置:isset($变量名)
PHP if...else...语句

下面开始介绍演示文件

1、session.php

进入页面
这是一个开始页面,本页面可以使用POST为$_SESSION["thing"]赋值,下面代码注释中有
源代码:

<?php
session_start();//开始session
$_SESSION["thing"]=&$_POST["sessions"];//将POST中的变量赋值给SESSION变量:thing
?>
<html>
<head>
<meta charset="utf-8">
<title>SESSION存储测试-WPBKJ博客</title>
</head>

<body>
    <h3>本测试地址由WPBKJ博客原创,本测试介绍地址:<a href="https://www.wpbkj.com/achives/phpsession.html">https://www.wpbkj.com/achives/phpsession.html</a></h3>
<form method="post" action=""><!--设置POST-->
    <input type="text" name="sessions"/>
    <input type="submit" value="存储session"/>
    </form>
<?php
    if(isset($_SESSION["thing"]))
    {
    echo $_SESSION["thing"];
    }
    else
    {
        echo "您还未设置session,请在上面输入您想存储的session";
    }
?>
    <br>
您可在为SESSION赋值前进入以下页面,对比赋值后不同。<br>
    <a href="2.php">>跨页面检索session测试</a><br>
    <a href="del.php">>删除此session</a>
</body>
</html>

2、2.php

进入页面
本页面提供session跨页面存储测试,在第一个页面设置session后将在此页面无需再次设置session即可调用
源代码:

<?php
session_start();//开始session
?>
<html>
<head>
<meta charset="utf-8">
<title>跨页面检索session测试-WPBKJ博客</title>
</head>
<body>
<?php
if (isset($_SESSION["thing"]))//如果session被设置则返回session数值,否者输出else中的信息
{
echo $_SESSION["thing"];
}
else{
    echo "您还没有设置session哦,点击下面返回为session赋值吧";
}
?>
    <br>
    <a href="session.php">>返回赋值页面</a>
    <br>
    <a href="del.php">>删除此session</a>
</body>
</html>

3、del.php

进入页面
本页面将删除之前设置的session(如果设置了的话,没有设置将输出其他内容)
源代码:

<?php
session_start();//开始session
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>删除session测试-WPBKJ博客</title>
</head>

<body>
<?php
if (isset($_SESSION["thing"]))//如果session被设置就删除它,如果没有返回else中的信息
{
    unset($_SESSION["thing"]);
    echo "session删除成功";
}
else
{
    echo "您还没有设置session";
}
?><br>
    删除session之后点一下下面的“>跨页面检索session测试页面”,看出现了什么变化?
<br>
    <a href="session.php">>返回赋值页面</a>
    <br>
    <a href="2.php">>跨页面检索session测试页面</a>
</body>
</html>

本次PHP session学习就到这里,全原创,转载注明出处。

3
知识共享许可协议
MySSL 安全签章
TrustAsia 安全签章