php基础知识(三)-会话使用

WBOY
Release: 2016-06-13 13:17:22
Original
753 people have browsed it

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>';

Copy after login



7.php
<?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;
Copy after login


8.php
<?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;
Copy after login


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!