5月21 回话控制SESSION COOKIE

百科

HTTP普及(无状态性

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

 

一:SESSION的定义及特点

定义:

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

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

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

特点:

1.存储在服务端的(服务器上),

2每个人存一份,

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

4默认的过期时间15分钟

会加重服务端的服务开销,但是安全性高

用法及注意事项

无论什么时候用到SESSION时都需要在php的最顶端开启才可以使用:session_start();

eg:

<?php

  session_start();//开启session

  $_SESSION["uid"] = "zhangsan";//写入session

  echo $_SESSION["uid"];//获取session数据

?>

代码中的实例:jk.php

<?php
session_start();//开启SESSION要写在php代码的最顶端

$_SESSION["uid"] = "张三";//写入SESSION
echo $_SESSION["uid"];

?>
<a href="jk1.php">跳转</a>

跳转页面:jk1.php

<?php
session_start();

echo $_SESSION["uid"];//不关浏览器页面时就不会报错,

?>

实施跳转时候能获取到第一个页面存入的zhangsan,但是直接点开第二个时候会报错,但是只要有浏览器的页面开着再去浏览第二个时会取到

SESSION的案例应用

1.登录界面显示要求:

登录页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录</title>
</head>

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

登录处理页面:

<?php
session_start();
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);//登录成功返回1

if($r==1)
{
    $_SESSION["uid"] = $uid;
    header("location:main3.php");
}
else
{
    header("location:login3.php");
}

主页面:主要是返回用户者的信息:特别注意安全性,因此会加判断

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录返回用户名</title>
</head>

<body>
<?php
session_start();
//直接输出虽然可以看到,但是也会有告诉直接登录主界面查看信息
//要加个判断
if(empty($_SESSION["uid"]))
{
    header("location:login3.php");
}

echo $_SESSION["uid"];

?>
</body>
</html>

2.添加购物车案例

显示水果所有的信息:showlist4.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>显示水果的所有信息</title>
</head>

<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>水果名称</td>
        <td>水果价格</td>
        <td>水果产地</td>
        <td>水果库存</td>
        <td>操作</td>
    </tr>
<?php
include("../DBDA.php");
$db = new DBDA();

$sql = "select * from fruit";
$attr = $db->Query($sql);

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=‘addgwc4.php?code={$v[0]}‘>加入购物车</a></td>
        </tr>";
}
?>
</table>
<a href="gouwuche4.php">查看购物车</a>

</body>
</html>

购物车详细信息内容列表:gouwuche4.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>购物车详细信息</title>
</head>

<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>水果名称</td>
        <td>水果价格</td>
        <td>数量</td>
    </tr>

<?php
session_start();
include("../DBDA.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);

    echo "<tr>
            <td>{$arr[0][0]}</td>
            <td>{$arr[0][1]}</td>
            <td>{$v[1]}</td>
        </tr>";
}

?>
</table>
</body>
</html>

添加购物车处理:addgwc4.php

<?php
session_start();

$code = $_GET["code"];

//如果是第一次点击的时候session里面没有值直接将数组的值传过去
if(empty($_SESSION["sg"]))
{
    $attr = array(array($code,1));
    $_SESSION["sg"] = $attr;
}
else
{
    //第n次点击  n!=1
    $attr = $_SESSION["sg"];//将session中的值取出交给数组

    //但是也分情况,当水果存在或水果不存在

    //判断水果是否存在,写方法的
    if(iscunzai($code))//点击同样的
    {
        foreach($attr as $k=>$v)
        {
            if($v[0]==$code)//判断水果的代号$v[0]是否等于传过去的code
            {
                $attr[$k][1] = $v[1]+1;//$v[1]是其数量
            }
        }

        $_SESSION["sg"] = $attr;
    }
    else
    {
        $arr = array($code,1);
        array_push($attr,$arr);

        $_SESSION["sg"] = $attr;
    }    

}

function iscunzai($c)//需要的是code的值进行判断
{
    $attr = $_SESSION["sg"];

    $b = false;//定义bool型的变量
    foreach($attr as $v)
    {
        $b = $b || in_array($c,$v);
    }

    return $b;
}

header("location:showlist4.php");

运行结果:

二:COOKIE的定义及特点

定义:

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

特点:

 1存储在客户端,

2每个人存一份,

3只能存储字符串,

4默认永不过期的

因此相对于SESSION来说相对安全性要低

用法:不会在当前页面查看数据

<?Php

  setcookie("uid","zhangsan");//设置cookie

  echo $_COOKIE["uid"];//当前会延迟取值的时间,第一次刷新失败,后几次是好的

?>

代码中实例操作:

<?php

//setcookie("uid","zhangsan");//设置cookie
//echo $_COOKIE["uid"];//会延迟取值的时间,第一次刷新失败,后几次是好的

setcookie("uid","zhangsan");//其他页面可以取到

?>
<a href="jk1.php">跳转</a>

跳转页面:

<?php

echo $_COOKIE["uid"];//不关浏览器页面时就不会报错,

?>
时间: 2024-11-13 04:06:19

5月21 回话控制SESSION COOKIE的相关文章

php会话控制(session&amp;cookie)

cookie简介 Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据.一般情况下,Cookie通过HTTP headers从服务端返回到客户端.多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制. PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_C

代码练习之 PHP会话控制 session cookie

log.html <html> <head><title>Home Page</title></head> <body> <form action="login.php" method="post"> <input type="text" name="name"> <input type="submit"

http协议,SESSION,COOKIE

1.http协议: HTTP—超文本传输协议,在TCP协议(长连接.像一个硬件)基础上; 特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信息才能登陆的,这是http协议满足不了的,为此引进session和cookie两种方法; session和cookie并不能使http变为长连接,也就不能从根本上解决http的无状态性,只是暂时辅助,记录本次请求的状态. 2.SESSION: 效果: 比如淘宝登录页面,进入主页面之后,如果15分钟以

PHP cookie 回话控制

1.设置Cookie ①.setcookie(name,value,expire,path,domain,secure) 参数 描述 name 必需.规定 cookie 的名称. value 必需.规定 cookie 的值. expire 可选.规定 cookie 的有效期. path 可选.规定 cookie 的服务器路径. domain 可选.规定 cookie 的域名. secure 可选.规定是否通过安全的 HTTPS 连接来传输 cookie. 注释:可以通过 $HTTP_COOKIE

一、会话控制session、cookie

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

2016年7月21日学习笔记

2016年7月21日学习笔记 Linux安装以后出现的文件目录的作用: 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码.SHELL脚本.二进制的可执行文件等,可用cat.less.more.vi.emacs来察看内容,用mv来改名. 目录文件:包括文件名.子目录名及其指针.它是LINUX储存文件名的唯一地方,可用ls列出目录文件. 连接文件:是指向同一索引节点的那些目录条目.用ls来查看是,连

Redis+Django(Session,Cookie、Cache)的用户系统

转自 http://www.cnblogs.com/BeginMan/p/3890761.html 一.Django authentication django authentication 提供了一个便利的user api接口,无论在py中 request.user,参见 Request and response objects .还是模板中的 {{user}} 都能随时随地使用,如果从web开发角度来看,其实无非就是cookie与session的运用. 在项目首页,在登陆和注销状态下分别输出

什么是回话控制

今天在和千锋教育一个php讲师在聊天的时候,他跟我提起了回话控制, 他说这一块学生理解起来很难,有些人理解不了,回来我仔细想了一下,回话控制也不外乎就这几点. 首先,什么叫做会话控制 回话控制就是允许服务器根据客户端做出的连续请求. 其次,为什么需要会话控制? 因为当你打开一个网站,并想访问该网站的其他页面的时候,如果没有会话控制,当跳转到其他页面的 时候,就需要重新登录. 然后,Cookie的原理和作用(重点) 将客户端的简单信息保存在个人PC中,其他程序获取PC的Cookie,来获取使用者的

认证 协议 JWT OAuth Session Cookie

本文翻译自Auth-Boss. 如果有翻译的不恰当或不对的地方, 欢迎指出. 成为一个认证老司机, 了解网络上不同的身份认证方法. 本文档的目的是记录和编目Web上的身份验证方法.认证指的是创建一个系统的过程,用户可以通过该系统"登录"在线服务,并授予对受保护资源的访问权限.以下引用可能更好地总结我想要解释的内容: 客户端认证涉及向Web上的服务器证明客户端(或用户)的身份.[1] How 我写作风格简洁,会用到一些技术词. 免责声明:本文档不作为包含所有认证方法的网络的目录;本文档也