简单介绍:

一、什么是session?

1. 定义:

Session,在计算机中,尤其是在网络应用中,称为“会话”。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间以及如果需要的话,可能还有一定的操作空间。

具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。

需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。

2. 特点 :

    (1) 存储在服务端    

    (2) 每个人存一份    

    (3) 可以存储任意类型的数据    

    (4) 有默认过期时间-大约15分钟

3. 用法:

 注意:session 写在php最顶端
  <?php
  session_start();   //开启session

  $_SESSION["uid"]="zhang";  //写入

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

  ?>

4. 具体用法案例:

案例一:

  在一个页面设置好session,只要不关闭浏览器,在其他页面也可以获取

页面一:

 <?php
session_start(); //开启session
$_SESSION["uid"]="zhang"; //写入
echo $_SESSION["uid"]; //获取
?> <a href="text.php">跳转</a>

页面二:

 <?php
session_start();
echo $_SESSION["uid"];
?>

在页面二同样可以取到session的值:"zhang"。

案例二:

  制作登入页面:

1. 主页面:

判断是否注册,若未注册转入登录页面,增强了安全性

 <body>
<?php
session_start();
//增加安全性,防止未注册者进入
if(empty($_SESSION["uid"]))
{
header("location:login.php");
}
echo $_SESSION["uid"];
?>
</body>
</html>

2. 登录页面:

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

登陆显示界面:

3. 登录处理页面:

<?php
session_start();//后面用到session值,记得开启
include("../DBDA.php");
$db = new DBDA(); $uid = $_POST["uid"];
$pwd = $_POST["pwd"]; $sql = "select count(*) from Users where Uid='{$uid}' and Pwd = '{$pwd}'"; $r = $db->StrQuery($sql); if($r==1)
{
$_SESSION["uid"] = $uid;
header("location:main.php");
}
else
{
header("location:login.php");
}

案例三:

  添加购物车:

1. 水果展示页面:

 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>水果页面</title>
</head> <body>
<h1>水果页面</h1><br /> <table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>水果名称</td>
<td>水果价格</td>
<td>水果产地</td>
<td>水果库存</td>
<td>操作</td>
</tr>
<?php include("../DBDA.class.php");
$db = new DBDA(); $sql = "select * from fruit"; $attr = $db->Query($sql,0); foreach($attr as $v)
{
echo "<tr><td>{$v[1]}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
<td><a href='addgwc.php?code={$v[0]}'>加入购物车</a></td></tr>";
} ?>
</table><br /> <a href="gouwuche.php">查看购物车</a>
</body>
</html>

运行界面:

2. 购物车页面:

 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>购物车</title>
</head> <body>
<h1>购物车</h1><br /> <table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>水果名称</td>
<td>水果价格</td>
<td>数量</td>
</tr>
<?php
session_start(); include("../DBDA.class.php");
$db = new DBDA(); $attr = $_SESSION["sg"]; foreach($attr as $v)
{
$sql = "select Name,Price from fruit where Ids='{$v[0]}'"; $arr = $db->Query($sql,0); echo "<tr><td>{$arr[0][0]}</td>
<td>{$arr[0][1]}</td>
<td>{$v[1]}</td></tr>";
} ?>
</table>
</body>
</html>

运行界面:

3. 购物车处理页面:

 <?php
session_start();
//获取水果代号
$code = $_GET["code"]; //如果第一次点击
if(empty($_SESSION["sg"]))//判断是否选择水果
{
$attr = array(array($code,1));//定义二维数组,1代表第一次进入后的水果数量
$_SESSION["sg"] = $attr;
}
else
{
//第n次点击,n!=1
$attr = $_SESSION["sg"]; //判断该水果是否已经存在
if(iscunzai($code))
{
foreach($attr as $k=>$v)
{
if($v[0]==$code)
{
//注意这里是改变$attr的值,所以是$attr[$k][1],不能用$v,否则后面的数值不变化
$attr[$k][1] = $v[1]+1;
}
} $_SESSION["sg"] = $attr;
}
else
{
$arr = array($code,1);
//array_push:将$arr里的数据存入$attr。没有返回值,不用存入变量
array_push($attr,$arr); $_SESSION["sg"] = $attr;
} } function iscunzai($c)
{
$attr = $_SESSION["sg"]; $b = false; foreach($attr as $v)
{
$b = $b || in_array($c,$v);
} return $b;
} header("location:showlist.php");

二、什么是cookie?

1. 定义:

“Cookie”是小量信息,由网络服务器发送出来以存储在网络浏览器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回此信息。这是很有用的,让浏览器记住这位访客的特定信息,如上次访问的位置、花费的时间或用户首选项(如样式表)。Cookie 是个存储在浏览器目录的文本文件,当浏览器运行时,存储在 RAM 中。一旦阁下从该网站或网络服务器退出,Cookie 也可存储在计算机的硬驱上。当访客结束其浏览器对话时,即终止的所有 cookie。

2. 特点:

    (1) 存储在客户端的

    (2) 每个人存一份

    (3) 只能存储字符串

    (4) 默认永不过期

3. 用法:

    setcookie("uid","zhangsan");   //设置cookie
    echo $_COOKIE["uid"];  //获取

4. 具体用法案例:

案例一:

  在一个页面设置好cookie,只要不关闭浏览器,在其他页面也可以获取

页面一

<?php
setcookie("uid","zhangsan"); //设置COOKIE
?> <a href="test.php">跳转</a>

页面二

<?php
echo $_COOKIE["uid"];
?>

在页面二同样可以取到cookie的值:"zhangsan"。

会话控制session,cookie(0521)的更多相关文章

  1. 会话控制:SESSION,COOKIE

    1.http协议: HTTP—超文本传输协议,在TCP协议(长连接.像一个硬件)基础上; 特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信 ...

  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. js 解析 json

    1.简单的json格式 { "user": [ { "name":"name1", "age":24, "se ...

  2. 路由器WDS桥接教程

    因为有吧友买了此款路由又不会桥接,因此做这个教程.老鸟自动路过,废话不多说,下面开始讲解. 1.wifi密码破解和路由器用户名和密码部分请自行解决,我只讲桥接部分.首先,在浏览器里输入192.168. ...

  3. java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)

    首先声明,这篇文章是从网上粘贴过来的.原文地址是:http://www.cnblogs.com/wangaohui/archive/2012/11/28/2791999.html.感觉写的很好,所以粘 ...

  4. 转:C语言申请内存时堆栈大小限制

    一直都有一个疑问,一个进程可以使用多大的内存空间,swap交换空间以及物理内存的大小,ulimit的stack size对进程的内存使用有怎样的限制?今天特亲自动手实验了一次,总结如下: 开辟一片内存 ...

  5. monogdb笔记1

    :db.collection.remove()与db.collection.drop()的比较 插入100万条测试数据 ;i<;i++){ db.tester.insert({-i}) } 进行 ...

  6. ASP.NET Email + WebConfig

    这里演示如果把 Email provider 的资料写在 WebConfig 里和调用它. 如果整个项目只需要使用一个 Email, 可以写入system.net里, 微软已经帮我们设计好了 < ...

  7. Linux下配置QT环境

    一.下载Qt源码包到本机,然后解压缩 #tar zxvf qt-x11-opensource-src-4.3.2.tar.gz -C /usr/local //将qt-x11-opensource-s ...

  8. WebAPI 用户认证防篡改实现HMAC(二)签名验证 AbsBaseAuthenticationAttribute--转

    public class ActionFilter : ActionFilterAttribute      {          public override void OnActionExecu ...

  9. typedef与define的区别

    1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如:#define PI 3.1415 ...

  10. 《SDN核心技术剖析和实战指南》第一章小结

    第一章主要是概况.新技术有一个特点是,每家都有不同的说法.这里我只说说我比较认同的部分. SDN的核心概念大概有两个:转发面与控制面分离.开发可编程化.书里还说逻辑上集中控制,其实这个就可以从转发与控 ...