码迷,mamicode.com
首页 > 其他好文 > 详细

session

时间:2015-11-19 16:49:29      阅读:122      评论:0      收藏:0      [点我收藏+]

标签: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

标签:session

原文地址:http://keguixian.blog.51cto.com/8216575/1714721

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!