标签:session
2015-11-13 10:53:14
session
1.1、在淘宝里,每个人购买不一样的商品,购物车显示的也不一样
解决:可用session 实现
还有数据库,cookie
1.2思考:
当登录一个网站,打开每个网页如何查看到用户名??
1.2.1、用数据库
每打开一个页面,就要打开数据库
可能频繁打开数据库
——》会造成数据库卡机
一个页面到另一个页面,你如何知道第一个页面是用这个用户名呢
1.2.2、用cookie
把用户名存在cookie里,再把信息从cookie
但每次都要取一次,造成安全性不高,,在网络传数据,造成带宽浪费
,如果用户多,每个人都点击了多个页面,造成多大的带宽浪费
1.2.3、session
session 文件保存在服务器里
安全性提高 了
由公司工作人员来维护
第一个页面把数据存在服务器里,打开第二个页面直接在服务器里获取数据就行 了,省了带宽,方便了
1.3思考问题?
1.3用户无需登录就可以访问管理页面,并且可以对用户进行操作??
解决:1、在页面里添加 用户是否登录 过
把登录信息存在在cookie,页面在判断 是否存在cookie,,但是存在漏动,信 息不安全,可能被人随便写点信息也可以保存cookie了
2、用数据库麻烦
3、最后解决用session
1.4session 的初步介绍
1、是服务器端技术
2、浏览器——浏览php文件 把数据保存到session文件里 ,
session的默认路径是c:/widows/temp文件
3、第二个php文件 可从session文件中取出信息
2.1数据库,cookie,session都有增删改查
2.1.1session使用
1、先初始化
session_start();
保存数据
$_SESSION[‘name‘]=‘xian‘;
$_SESSION[‘age‘]=‘13‘;
session可保存浮点数据 ,整数,数组,英文,对象,字符串,布尔值
utf-8每个汉字是以三个字节保存的
2.1.2保存格式
name|s:8:"xian";
名字key|数据类型:数据大小:值
2.1.3获取session数据
1.把所有的session获取
echo "<pre>";
printf_r($_SESSION)
echo "</pre>";
2、通过key来指定获取一个值
echo "名字为:".$_SESSION[‘name‘];
$arr1=$_SESSION[‘arr1‘];
echo "<br>";
foreach($arr1 as $key=>$val){
echo "<br>--$var";
}
总结:
1、要使用session都要初始化
2、session文件中可以放入多个,key==>val对
key不能重复
3、一次会话:
以打开一个浏览器窗口,关闭浏览器为一次会话,准确地说是 一个进程
2015-11-19 11:07:22
2.1为什么session在使用前一定要初始化?
因为session_start();是为这次会话服务创建一个session文件 ,如果没有session文件下面的操作就不能进行
一次会话可多个session_start();
2.1更新就是修改值
<?php require_once "dog.class.php";?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获取session数据</title>
</head>
<body>
<form id=‘form1‘ name=‘form1‘ method="post" action=‘common.php?<?=session_name();?>=<?=session_id();?>‘>
</form>
<?php
echo "获取session数据<br>";
session_start();
//$_SESSION[‘name‘]=‘凌汐阳‘;
$_SESSION[‘name‘]=‘秦逸阳‘;
//2.通过key来指定获取某个值
echo "<br>名字是:".$_SESSION[‘name‘];
?>
</body>
</html>
结果:
获取session数据
名字是:秦逸阳
2.2函数:
2.2.1require_once();要在开头加载不然在后面不加载了、
2.2.2session_destroy();
把当前浏览器对应的文件 删除
2.2.3获取sessionid
session_id();
2.3php.ini
2.3.1session_save_path("D:/amp");
session文件的路径是可修改的在php.ini中
session.save_path=""
2.3.2session文件默认存放时间是1440秒=24分钟
可在php.ini修改
php.ini中
session.gc_maxlifetime=1440
session的最大生命周期
用了session就重新计算时间
可修改
修改后要重新启动apache才或用
cookie说是几分钟就几分钟不会重新计算
2.4会话:
一个会话对应一个session文件
同一个浏览器,产生一个session文件 ,
关闭浏览器,再打开浏览器会产生一个新的session文件
session技术把用户的数据写用用户独占的$_SESSION中存在服务器的某个路径文件中
2.5有些在你退出时会提示是否“安全退出”,
其实这个中间有很多的工作,其中有把服务器或电脑 里的session,和cookie文件 删除
不然保存在服务器里的session就等待自动垃圾回收
2.6思考 :如果没有手动删除session那么系统是怎么维护
2.7session可用来做什么 ?
1、网上商城的购物车
2、保存登录用户的信息
3、将某些数据放session中供同一用户的各个页面使用
4、防止用户非法登录到某个页面
2.8、在使用session时先初始化
方法:
1、需要session的每个页面写入session_start();
2、用在php.ini设置
sesseion.auto_start=1这个会影响效率
2.9为什么 在同一个浏览器里,多页面里,如何知道是哪个session文件 呢而且知道是同一个session文件 呢?
*服务器如何实现一个session为一个会话浏览器服务的?
标签:session
原文地址:http://keguixian.blog.51cto.com/8216575/1714721