2015-11-13 10:53:14php
sessionhtml
1.一、在淘宝里,每一个人购买不同的商品,购物车显示的也不同数据库
解决:可用session 实现apache
还有数据库,cookie数组
1.2思考:浏览器
当登陆一个网站,打开每一个网页如何查看到用户名??安全
1.2.一、用数据库服务器
每打开一个页面,就要打开数据库cookie
可能频繁打开数据库网络
——》会形成数据库卡机
一个页面到另外一个页面,你如何知道第一个页面是用这个用户名呢
1.2.二、用cookie
把用户名存在cookie里,再把信息从cookie
但每次都要取一次,形成安全性不高,,在网络传数据,形成带宽浪费
,若是用户多,每一个人都点击了多个页面,形成多大的带宽浪费
1.2.三、session
session 文件保存在服务器里
安全性提升 了
由公司工做人员来维护
第一个页面把数据存在服务器里,打开第二个页面直接在服务器里获取数据就行 了,省了带宽,方便了
1.3思考问题?
1.3用户无需登陆就能够访问管理页面,而且能够对用户进行操做??
解决:一、在页面里添加 用户是否登陆 过
把登陆信息存在在cookie,页面在判断 是否存在cookie,,可是存在漏动,信 息不安全,可能被人随便写点信息也能够保存cookie了
二、用数据库麻烦
三、最后解决用session
1.4session 的初步介绍
一、是服务器端技术
二、浏览器——浏览php文件 把数据保存到session文件里 ,
session的默认路径是c:/widows/temp文件
三、第二个php文件 可从session文件中取出信息
2.1数据库,cookie,session都有增删改查
2.1.1session使用
一、先初始化
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>";
二、经过key来指定获取一个值
echo "名字为:".$_SESSION['name'];
$arr1=$_SESSION['arr1'];
echo "<br>";
foreach($arr1 as $key=>$val){
echo "<br>--$var";
}
总结:
一、要使用session都要初始化
二、session文件中能够放入多个,key==>val对
key不能重复
三、一次会话:
以打开一个浏览器窗口,关闭浏览器为一次会话,准确地说是 一个进程
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可用来作什么 ?
一、网上商城的购物车
二、保存登陆用户的信息
三、将某些数据放session中供同一用户的各个页面使用
四、防止用户非法登陆到某个页面
2.八、在使用session时先初始化
方法:
一、须要session的每一个页面写入session_start();
二、用在php.ini设置
sesseion.auto_start=1这个会影响效率
2.9为何 在同一个浏览器里,多页面里,如何知道是哪一个session文件 呢并且知道是同一个session文件 呢?
*服务器如何实现一个session为一个会话浏览器服务的?