您的位置:首页 > 编程语言 > PHP开发

【读书笔记】PHP中使用会话控制

2010-06-30 11:47 573 查看
1. 什么是会话控制?

HTTP协议没有一个内建的机制来维护两个事务之间的状态。当一个用户在请求一个页面后再

请求另一个页面时,HTTP无法告知这两个请求是来自同一个用户。会话控制的思想是指能够在网

站中根据一个会话跟踪用户。如果可以做到这一点就可以很容易的做到对用户登录的支持,并根据

其授权级别和个人喜好显示相应的内容。我们可以根据会话控制记录该用户的行为,还可以实现购

物车。

2. 基本的会话功能

PHP的会话是通过唯一的会话ID来驱动的,会话ID是一个加密的随机数字。它由PHP生成,在

会话的生命周期中都会保存在客户端。它可以保存在用户机器的cookie中,或者通过URL在网络上

传递。

会话ID就像一把钥匙,允许我们注册一些特定的变量,也称为会话变量。这些变量的内容保存在

服务器端。会话ID是客户端唯一可见的信息。如果在一次特定的网站连接中,客户端可以通过cookie

或URL看到会话ID,那我们就可以访问该会话保存在服务器上的会话变量。

3. 什么是cookie

cookie是一小段信息,它可以由脚本在客户端机器保存。可以通过发送一个包含特定数据并且具有

如下格式的HTTP标题头,从而在用户机器设置一个cookie:

Set-Cookie: NAME = VALUE; [expires = DATE;] [path = PATH;]

[domain = DOMAIN_NAME;] [secure]

当浏览器连接一个URL时,首先要搜索当地保存的cookie,如果有任何与正在连接的URL相关的cookie

,浏览器将其提交到服务器。

cookie的作用:当你浏览某网站时,网站存储在你机器上的一个小文本文件,它记录了你的用户ID,密码

浏览过的网页,停留的时间等信息,当你再次来到该网站时,网站通过读取Cookie,得知你的相关信息,就

可以作出相应的动作,如在页面显示欢迎你的标语,或者不用输入ID,密码就可以直接登录等。

4. 通过PHP设置cookie

可以通过使用setcookie()函数在PHP中手动设置cookie。该函数原型如下所示:

bool setcookie(string name[,string value [, int expire [, string path[, string domain [, int secure]]]]]);

如果通过如下方式设置一个cookie:

setcookie('mycookie', 'value');

当用户访问站点中的下一页(或者重载当前页时),可以通过名为$_COOKIE['mycookie']来实现。

5. 简单会话例子

page1.php ---启动一个会话并注册一个变量

<?php

session_start();

$_SESSION['sess_var'] = “Hello, world!";

echo'The content of $_SESSION[/'sess_var/'] is .$_SESSION['sess_var'].' <br/>;

?>

<a href = "page2.php"> Next page</a>

page2.php ---访问一个会话变量并注销它

<?php

session_start();

echo "The content of $_SESSION[/'sess_var/'] is ' .$_SESSION['sess_var']. '<br/>;

unset($_SESSION['sess_var'];

?>

<a href = page3.php"> Next Page </a>

page3.php ---结束会话

<?php

session_start();

echo 'The content of $_SESSION[/'sess_var/'] is .$_SESSION['sess_var']. ' <br/>';

session_destroy();

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: