您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP 的会话控制

2026/4/2 9:38:07发布45次查看
本篇文章的内容给大家分享的是php中的绘画控制,有需要的朋友可以参考一下
会话控制http 协议是 web 服务器与浏览器相互通信的协议,它是一种无状态协议,即每个 http 请求之间是相互独立的。因此,http 协议没有一个内建的机制来维护两个事务之间的状态。比如,当一个用户在请求一个页面后再去请求另外一个页面时,http 将无法告诉我们这两个请求是否来自同一个用户。
在网站中,我们经常需要跟踪一个变量:通过对变量的跟踪,使多个请求事物之间建立联系,再根据授权和用户身份显示不同的内容、不同页面。这就是会话控制技术。常用的会话控制技术有 cookie 和 session。简单地说,cookie 是通过在客户端中记录信息而确定用户身份;session 是通过在服务器端记录信息而确定用户身份。
cookiecookie 是一个很小的文本文件,包含在 http 请求报文中在 web 服务器和浏览器之间传递。cookie 的工作原理如下:
服务器通过在 http 响应报文中设置一个 set-cookie 字段,并把 cookie 数据放在 set-cookie 字段中随着 http 报文传给浏览器;
浏览器在接收到 http 响应报文后,检查到 set-cookie 字段有值,会在本地创建一个 cookie 文件来保存数据;
当浏览器再次向该服务器发送请求时,浏览器会先搜索本地保存的 cookie 文件,如果在 cookie 文件中有任何与正在连接的 url 相关的 cookie,就在 http 请求报文中设置一个 cookie 字段,并把 cookie 文件中的数据添加到该字段中,最后把携带 cookie 字段的 http 请求报文发送给服务器。
cookie 可以用来保存用户名、密码、个性化设置等一些简单的信息,以下是 cookie 的使用说明:
创建<?php setcookie("cookie", "cookievalue", time()+3600);
必须在 html 文件的内容输出之前调用 setcookie()接收<?php echo $_cookie["cookie"];
删除<?php #方法一:将值设为空 setcookie("cookie", null); #方法二:将过期时间设为过去时间 setcookie("cookie", "value" , time());
sessionsession 是在服务器端保持用户会话数据的一种方法,其工作原理如下:
当浏览器第一次访问 php 脚本时,seesion_start() 函数会创建一个唯一的 session id(每个客户端都有一个唯一的标识),并自动通过 http 的响应头,将这个 session id 保存到客户端 cookie 中。同时,也在服务器端创建一个以 session id 命名的文件,用于保存这个用户的会话信息;
当同一个用户再次访问这个网站时,会自动通过 http 的请求头将 cookie 中保存的 seesion id 再携带过来;
服务器 php 脚本接受到客户端请求,这时 session_start() 函数就不会再去分配一个新的 session id,而是在服务器的硬盘中去寻找和这个 session id 同名的 session 文件,将这之前为这个用户保存的会话信息读出。
首先,创建 session 唯一标识的方法有两种:通过 cookie 或者 get 方式。php 在默认情况下使用 session 会建立一个名叫 phpsessid 的 cookie(可以通过 php.ini 修改 session.name 的值),如果客户端禁用cookie,可以指定通过 get 方式把 session id 传到服务器(修改 php.ini 中 session.use_trans_sid 等参数)。其次,session 是以文件的形式保存的。php.ini 中有个配置项 --session.save_path= "" ,这个里面填写的路径,将会保存所有 session 文件。session 文件的命名格式是:sess_[phpsessid的值]。每一个文件,里面保存了一个会话的数据。最后,保存在 session 文件中的数据是经过序列化处理的,比如:
cityid|i:0;cityname|s:3:"all";fanwe_lang|s:5:"zh-cn";fanwe_currency|a:4:{s:2:"id";s:1:"1";s:6:"name_1";s:9:"人民币";s:4:"unit";s:3:"¥";s:5:"radio";s:6:"1.0000";}_fanwe_hash__|s:32:"77c18770c6cb5d89444c407aaa3e8477";
session 同样可以用来保存用户名、密码、个性化设置等一些简单的信息,以下是 session 的使用说明:
创建//启动 session session_start(); //注册session变量,赋值为一个用户的名称 $_session["username"] = "jochen"; //注册session变量,赋值为一个用户的id $_session["uid"] = 1;
注意:必须在 html 文件的内容输出之前调用 session_start()读取<?php session_start(); echo $_session["username"]; # # jochen echo $_session["uid"]; # 1
销毁<?php session_start(); unset($_session["username"]); unset($_session["uid"]);
需要注意的是,当 session 文件比较多的情况下,将会产生 i/q 读写性能问题。此时可以采用 memcached、redis 等缓存系统。相关推荐:
php学习之数组
以上就是php 的会话控制的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product