### 会话技术
* 什么是会话
打开浏览器,访问某个网站的很多资源(页面=)通过超链接),当你关闭浏览器后,一个会话结束。
* 思考一个问题
在意个会话中,用户会产生一些数据,比如购物车,每个用户查看购物车的时候,看到自己的选择,怎么实现?
* 再思考一个问题?
为什么优酷网看视频时,会记录及看过的电影?
* 解决之道
会话技术-cookie session
### Ø 会话技术 Cookie技术
Cookie的初步介绍:
1、 Cookie(小甜饼)是客户端技术,服务器把每个用户的数据保存在客户端本地的磁盘上。比如登录用户名吗,账号,等信息。
2、原理图
![](https://box.kancloud.cn/2016-06-03_5750fd9079d90.jpg)
### 3、 Cookie的基本使用
3.1 如何创建Cookie
~~~
<?php
//演示如何创建cookie信息
//把用户名和密码保存的客户端的cookie
setcookie("name","jsh",time()+3600);
setcookie("password","1234567",time()+3600);
setcookie("addr","北京",time()+3600);
echo "set OK!";
?>
~~~
### 3.2 获取Cookie
~~~
<?php
/* echo "<pre>";
print_r($_COOKIE);
echo "</pre>"; */
if(!empty($_COOKIE['name'])){
echo $_COOKIE['name'];
echo "</br>";
}else{
echo "name=NULL";
}
if(!empty($_COOKIE['password'])){
echo $_COOKIE['password'];
echo "</br>";
}else{
echo "password=NULL";
}
if(!empty($_COOKIE['addr'])){
echo $_COOKIE['addr'];
echo "</br>";
}else{
echo "addr=NULL";
}
?>
~~~
### 3.3 如何更新Cookie
~~~
<?php
//Update
setcookie("addr","上海",time()+3600);
echo "更新成功";
?>
~~~
### 3.4 删除 Cookie
~~~
<?php
//DEL
setcookie("addr","",time()-200);
echo "删除成功!";
//DEL all
/* foreach ($_COOKIE as $key=>$val){
setcookie("$key","",time()-200);
} */
?>
~~~
### 具体实例:
1)保存登录时间:
~~~
<?php
//保存登录时间 date("D M j G:i:s T Y");
date_default_timezone_set('UTC');
if(!empty($_COOKIE['last_time'])){
echo "上次登录的时间是".$_COOKIE['last_time'];
setcookie("last_time",date("D M j G:i:s T Y"),time()+24*3600*30);
}else{
setcookie("last_time",date("D M j G:i:s T Y"),time()+24*3600*30);
}
?>
~~~
在测试过程中,可能会提示时区错误的时间:
1、在PHP文件中设置
~~~
date_default_timezone_set('UTC');
~~~
2、在PHP.ini文件中
date.timezone = Asia/Chongqing
2)获得用户名或密码的通用函数
~~~
<?php
function getCookieVal($key){
if(empty($_COOKIE[$key])){
return "";
}else{
return $_COOKIE[$key];
}
}
?>
~~~
注:如果没有
~~~
setcookie("addr","上海");中没有设置过期时间,只能在一次会话中保存,当关闭网页后,在打开将不会显示,
~~~
### session 技术
思考问题:
1、我们在浏览网站,去购物的时候,张三和李四,可以购买不同的商品,并且在查看购物车的时候,可以查看各自购买的商品?
思路:1、数据库 2、Cookie 3、
2、当你登录某个网站的时候,可以在任何网站显示登录的用户名
思路:1、数据库 2、Cookie 3、session文件
3、网站安全性问题?
用户无需登录,就可以访问到我们的管理界面,别且不需要登录就能直接进行增删查改用户。
Ø Session初步认识
① session是服务器技术
Session 是服务器技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个为其独享的session文件,当用户去访问服务器中的其他的web资源时,可以从用户各自的seesion中取出数据为用户服务。Seesion是总重要的用户行为的跟踪技术(防止用户非法登录/验证码等)。是重点和难点。
②示意图
###
![](https://box.kancloud.cn/2016-06-03_5750fd909359c.jpg)
③基本操作
1、 保存Session数据
~~~
<?php
echo "演示如何报错session数据";
//初始化,可以在配置中设置php.ini 开启session.auto_start=1
session_start();
//保存数据
$_SESSION['name']="sjin";
//保存数组
$arr=array("beijing","shanghai");
$_SESSION['arr1']=$arr;
echo "set OK!";
?>
~~~
* 保存数据格式:
name|s:4:"sjin"
Name KEY值
S:数据类型
4:字节数
Sjin:值
* 可以保存的数据类型
数组,字符串,对象等等
2、 如何获取session
~~~
<?php
//获得session数据
//初始化session
session_start();
/* //获取所有session
echo "<pre>";
print_r($_SESSION);
echo "</pre>"; */
//2 通过key值获取
echo $_SESSION['name'];
$arr1=$_SESSION['arr1'];
echo "</br>";
print_r($arr1);
//3 获取对象的必须把类的声明引用下
?>
~~~
注意:获取对象的必须把类的声明引用下
3、 更新session
~~~
<?php
//更新session
session_start();
//保存数据
$_SESSION['name']="peipei";
?>
~~~
理论上就是重新设置。
4、 删除session
~~~
<?php
//删除session
session_start();
//删除指定的
unset($_SESSION['name']);
//删除所有的,只会删除当前会话的session文件删除掉
//一个会话对应一个session文件
session_destroy();
?>
~~~
当用户打开浏览器,访问某个网站时操作session时,服务器就会在服务器的磁盘为该浏览器分配一个保存session的信息的文件,该文件被这个浏览器独自访问。Session 细节问题总结:
1、session数据默认存在的时间为1440S(24min),在php.ini中可以配置。session.gc_maxlifetime = 1440
2、设定session文件在服务器的存放路径:在PHP.ini文件中配置,session.save_path=“”;
3、一次会话只能产品一个session文件。
![](https://box.kancloud.cn/2016-06-03_5750fd90ac7e4.jpg)
![](https://box.kancloud.cn/2016-06-03_5750fd90c281c.jpg)
- 前言
- HTML(第一天)
- HTML(第二天)
- DIV+CSS(第一天)
- DIV+CSS(第二天)
- DIV+CSS(第三天)
- DIV+CSS(第四天)
- PHP开发环境配置说明
- PHP基础数据类型及运算符介绍
- 走进PHP函数
- 走进位运算
- 走进数组及相关数组函数
- 面向对象的编程(类与对象)
- 面向对象的编程(类成员方法用法)
- 构造方法,析构方法
- static,global用法
- 静态方法
- 面向对象的编程方法
- 接口方法
- 接口VS继承、final、const
- 错误及异常处理机制、错误日志
- HTTP协议深度剖析
- 文件下载
- PHP数据库编程
- 数据库编程(2)
- 超全局变量
- Zend studio 开发环境入门
- 雇员管理系统(1)
- 雇员管理系统(2)
- 会话技术(cookie session)
- 会话技术 session场景使用介绍!
- PHP.in中session和cookie的配置说明
- PHP文件编程
- 报表及绘图技术
- 报表及绘图技术(jpgraph库使用,Linux安装及配置说明)
- XML基本语法及DTD介绍
- XML编程(Dom技术)
- XML编程(Xpath技术,simpleXml技术)基础入门
- 网上支付平台PHP版本
- javascript基础入门