Home >Backend Development >PHP Tutorial >php基础知识(三)-会话使用
php基础知识(3)-会话使用
php基础知识-会话使用
示例代码下载页http://xieye.iteye.com/blog/1336095(在附件)
会话是指:服务器对同一个用户在一段时间内的各种连接的识别。
会话原理,有多种,但实际上主要是cookie。
cookie原理:web协议规定,服务器返回请求时可以将一小部分数据存在浏览器客户端,浏览器在下次往同域名服务器请求信息时,会
同时自动把该段信息再发送给服务器,而这一切是对用户透明的,用户不需要理解这些东西可以照常上网。
cookie的一个特点是,服务器存客户端时可以带有时间参数,浏览器会根据这个参数决定cookie是否过期来处理,如果过期了,这个cookie就
不会到服务端。
cookie的另一个特点是多个名称和值的组合。
php实现会话的机制:
php会话开启有两种途径:
一种设置php.ini里的大约1014行
session.auto_start = 0;
改为1的话,会话会自动开启。
第二种方法是使用session_start()函数。
在现实应用中,一般都取消配置文件中的自动开启,而手动使用函数开启会话。
开启了会话之后,
假如客户端没有传来一个称为PHPSESSID的cookie的话,那么服务端会在返回时自动发送该名称的cookie给用户,值是随机的一串乱码
并在服务器的会话目录中建一个文件,名字是名为PHPSESSID的cookie的值,内容为空。
假如客户端传来一个名为PHPSESSID的cookie,则服务器会按照该cookie的值到会话目录中找到对应文件,并把值取出放进会话全局数组中,
程序可以随意读取。
可以简单理解为php会话是以(名为phpsessid的cookie的值)这个文件名对应的文件里的内容。
对于php程序开发的网站,在不做特殊修改php配置的情况下,
用户把浏览器关闭,再打开,一般来说会生成新的会话。原因是php发送的cookie默认浏览器关闭则cookie过期
程序还可以随意的修改会话里的内容。
会话应用,登录,注册等。
例子1:展示,不使用数据库,使用会话来记住客户在网站中留下的痕迹。
http://localhost/command/peixun/session/6.php
可以点击文章查看,点击任意文章(例子就两篇)查看后,再点击返回,
可以发现系统能够记录用户查看过的文章,使用的是会话。
说明:如果浏览器关闭,就不行了,如果想长期保存,则需要用户登录机制,且保存在数据库。
存cookie方案不推荐,因为cookie容量最多2K,实在是太小了。
代码可下载
6.php
<?php//会话的第一个例子require_once('../Public/CommandLine.php');session_start();if (!isset($_SESSION['news'])) { $_SESSION['news'] = array();}echo ' 请查看文章 <ul> <li><a href="7.php">多家银行否认用户资料外泄 工信部要求网站自查</a></li> <li><a href="8.php">春运火车票开售 各地开设网络购票换票窗口</a></li> </ul>最近看过的文章列表<br /><ul>';foreach ($_SESSION['news'] as $value) { echo '<li>' . $value ."</li>";}echo '</ul>';
<?php//会话的第1个例子require_once('../Public/CommandLine.php');session_start();$_SESSION['news'][] = '多家银行否认用户资料外泄 工信部要求网站自查('.date('Y-m-d H:i:s') .')';$html = <<<longs<html> <h2>多家银行否认用户资料外泄 工信部要求网站自查</h2> 本报讯 (记者林其玲 阳淼 李媚玲 苏曼丽)互联网用户数据泄密事件继续发酵。继CSDN、天涯、新浪等互联网公司后,京东商城、网易公司、支付宝也被卷入“泄密门”。昨日又有网友爆料称,交通银行和民生银行用户资料也遭外泄。昨日中午,有爆料称交通银行7000万客户、民生银行3500万用户以及工行用户资料外泄,泄露数据包括用户的姓名、卡号、密码等敏感信息,并发布信息截图。<br ><a href="6.php">返回列表页</a></html>longs;echo $html;
<?php//会话的第一个例子require_once('../Public/CommandLine.php');session_start();//if (!isset($_SESSION['news'])) {// $_SESSION['news'] = array('春运火车票开售 各地开设网络购票换票窗口');//}$_SESSION['news'][] = '春运火车票开售 各地开设网络购票换票窗口('.date('Y-m-d H:i:s') .')';$html = <<<longs<html> <h2>春运火车票开售 各地开设网络购票换票窗口</h2> 中广网综合报道 今天(29日)是各地列车春运订票的第一天,又是启动网络购票第一年,各大火车站迎来售票高峰。各地记者实地体验多途径购票,看看今年网络购票能不能解决买票难题。 武汉高校火车票预售期调整为28天 学生青睐窗口买票 <br ><a href="6.php">返回列表页</a> </html>longs;echo $html;