1、http协议:

HTTP—超文本传输协议,在TCP协议(长连接、像一个硬件)基础上;

特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信息才能登陆的,这是http协议满足不了的,为此引进session和cookie两种方法;

session和cookie并不能使http变为长连接,也就不能从根本上解决http的无状态性,只是暂时辅助,记录本次请求的状态。

2、SESSION:

效果:

比如淘宝登录页面,进入主页面之后,如果15分钟以内不进行任何操作,自动返回登录页面;

防止绕过登录页面直接访问主页面,如果知道一个主页面的网址,可以直接访问,但是如果有session可以防止访问,if(empty(session["uid"])){header "location:logyemian.php"};

特点:

(1)存储在服务器

(2)每个使用者都会生成一个session

(3)有默认过期时间,15分钟左右

(4)可以存储任何类型数据,比如,session["uid"] 是一个变量,可以存储数组,session["uid"]=array()是对的,a=array()语法是没错的;

3、COOKIE

特点:

(1)存储在客户端;当你访问一些页面的时候,会把一些信息存储在自己的电脑上,当清除浏览信息时会有提示

(2)每个使用者会生成一个cookie

(3)默认没有过期时间,可以设置

(4)只能存储字符串

相对而言,session方式将用户数据存储在服务器上更安全,但对服务器的压力大。

将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中

4、使用

(1)session:

session_stat();//使用session的页面必须在第一行代码开启session

$_SESSION["uid"]="张三";//赋值

echo $_SESSION["uid"];//取值

注意:

只要一个页面执行了session赋值,那么其他页面都能获取到这个值,因为session是存在服务器上。

存储方式不一样获取方式也就不一样,多个用户可以用多个标识存session。

session只能在同一个浏览器取到,在这个浏览器赋值,在另一个浏览器取值是取不到的;

session在关闭浏览器的时候,自动清空;

一个浏览器只能登陆一个用户名,多个浏览器可以登陆多个;

(2)COOKIE

setcookie("name","值");//赋值

echo $_COOKIE["name"];//取值

一个页面赋值其他页面都能取到;

注意:做程序时候,一定要先选用一种会话控制(session/cookie)

实例1:做一个完整的登录页面(防止绕过登录页面,直接进入主页面)

(因为对于登录页面,输入用户名和密码-->主页面,如果没有会话控制,只要输入主页面网址,就可直接访问,所以有bug)

登录页面:

<body>
<form action="main1.php" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:&nbsp;<input type="text" name="pwd" /></div>
<input type="submit" value="登录"/>
</form>
</body>

登录处理页面:

<?php
session_start();//开头启用session
include ("../dbda.class.php");
$uid=$_POST["uid"];
$pwd=$_POST["pwd"]; $dx=new Dbda();
$sql="select nation from nation where name='{$uid}'";
//var_dump($sql);
$res=$dx->query($sql);
//var_dump($res);
if(!empty($res))
{
foreach($res as $v)
{
if($v[0]==$pwd)
{
$_SESSION["uid"]=$uid;//赋值,因为存在用户名时候才有意义
header("location:main.php");
}
else
{
echo "密码错误";
}
}
}
else
{
echo "用户名不存在";
}

主页面:

<body>
<?php
session_start();//启用session
if(empty($_SESSION["uid"]))
{
header("location:log.php");
}//防止直接进入主页面
?>
<h1>主页面</h1>
</body>

会话控制:SESSION,COOKIE的更多相关文章

  1. 会话控制session,cookie(0521)

    简单介绍: 一.什么是session? 1. 定义: Session,在计算机中,尤其是在网络应用中,称为“会话”.在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常 ...

  2. 代码练习之 登陆 PHP会话控制 session cookie

    log.html <html> <head><title>Home Page</title></head> <body> < ...

  3. PHP会话控制Session与Cookie

    理解会话控制的概念: 阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是 ...

  4. PHP......会话控制SESSION与COOKIE

    一.SESSION Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 ...

  5. 会话控制:cookie和session基础学习笔记

    在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session) 我们可以简单理解为浏览器的开关. 其实对cookie和session也是主要为curd操作 coo ...

  6. 会话跟踪session cookie

    会话跟踪 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在 ...

  7. 会话控制Session的应用

    Session技术与Cookie相似,都是用来存储使用者的相关资料.但是最大不同之处在于Cookie是将数据存放于客户端计算机中,而Session则是将数据存放于服务器系统下. 在Web技术发展史上, ...

  8. PHP中的会话控制—session和cookie(实现数据传值功能)

    1.session  登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器:   (2)session每个人(登陆者)存一份: (3)session ...

  9. 5月21 回话控制SESSION COOKIE

    百科 HTTP普及(无状态性) 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP ...

随机推荐

  1. [转]浅谈https\ssl\数字证书

    浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...

  2. Magento控制器

    提到模型-视图-控制器这种MVC架构,要追溯到Smalltalk编程语言和Xerox Parc.从那个时候开始,就有许多系统将自己描述为MVC架构.这些系统虽然在某些地方有细微差别,但都实现了数据层, ...

  3. beta 阶段的 postmortem 报告

    part一: 用户数:目前约30人 总结:与当初的预算差不多,首先1.第一次开发软件,经验效率不足,那是很正常的事情.2.用户数量少,因为宣传力度还是比较的少.应该加强软件的推广才行. part二: ...

  4. Flume NG之Interceptor简介

    转载地址:http://www.cnblogs.com/lxf20061900/p/3658172.html 有的时候希望通过Flume将读取的文件再细分存储,比如讲source的数据按照业务类型分开 ...

  5. SSIS 组件点滴

    一 Sort组件 Sort组件是用来排序,我们在做join时也必须进行排序,排序的键值作为数据源关联的key 而在sort组件中有一个选项“Remove Rows with duplicate sor ...

  6. 关于Ajax知识点小节

    URL:统一资源定位符 网络的七层协议:网卡 驱动  网络层(ip)  传输层(tcp udp) 会话层( )  应用层(http.) restful表征状态转移(一种表征架构) CURD 增删改查 ...

  7. codeforces 192 c

    link: http://codeforces.com/contest/330/problem/C broute force but you must be careful about some tr ...

  8. php部分--数组(包含指针思想遍历数组);

    1.创建并输出数组 (1)相同数据类型的数组$attr=array(1,2,3,4,5); print_r($attr); echo "<br>"; $sttr1=ar ...

  9. C#部分---利用arraylist集合做滚动抽奖;

    输入多个手机号码,放到集合中,进行三秒钟的滚动抽奖:随机显示号码,清空,再显示: 1.收集号码: 2.每隔三秒进行抽奖,及作弊代码,哈哈哈: 3.System.Threading.Thread.Sle ...

  10. 20145220《Java程序设计》实验一实验报告

    *实验一 Java开发环境的熟悉 实验内容及步骤 使用JDK编译.运行简单的Java程序 命令行下程序开发: 在命令行下建立实验目录,进入该目录后创建exp1目录 敲入以下代码: package ex ...