有人可以向我解释会话变量的完整用法吗?

时间:2011-07-28 16:46:15

标签: php session session-variables

php中的会话变量有什么用?我知道基础知识,但是如何判断用户是否在线呢?什么是会话ID?一般来说,我只是使用会话在我的网站上“携带”一个变量,但这就是全部。还有更多有用的属性吗?

感谢

3 个答案:

答案 0 :(得分:3)

来自PHP网站:

  

PHP中的会话支持包括一种在后续访问中保留某些数据的方法。这使您可以构建更多自定义应用程序并增加网站的吸引力。所有信息都在会话参考部分。

来自维基百科:

  

在计算机科学,特别是网络中,会话是两个或多个通信设备之间或计算机与用户之间的半永久性交互式信息交换,也称为对话,会话或会议(请参阅登录会话)。会话在某个时间点建立或建立,并在稍后的时间点拆除。建立的通信会话可以在每个方向上涉及多于一个消息。会话通常但不总是有状态的,这意味着至少一个通信部分需要保存关于会话历史的信息以便能够进行通信,而无状态通信则是通信由独立请求组成。响应。   已建立的会话是执行面向连接的通信的基本要求。会话也是在无连接通信模式下传输的基本步骤。但是,任何单向传输都不会定义会话。

基本上,会话用于维持用户在(相对)短期逗留在您的网站/您的网络应用程序期间的状态。他们通过在一段时间内保存诸如登录信息,相关偏好和使用数据之类的变量来实现此目的。这段时间是用户初始化会话(可能是logging in)和销毁会话(可能是到期或离开网站)之间的时间量。最终,会话就像开发人员选择的那样,因为在大多数语言(如PHP)中,会话本质上只是与给定客户端绑定的可变空间。

示例会话(来自PHP网站):

<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

答案 1 :(得分:2)

使用PHP会话变量是为了将一组变量与站点上的每个用户相关联。因此,当您执行$_SESSION['some_var']时,您知道您将获得与已分配给该特定访问者的some_var相关联的值。

您说在访问者访问您的网站时,您会使用它们来“携带”变量。这正是他们的目的,你不会错过任何东西。你正确使用它们。

答案 2 :(得分:1)

会话是客户端和服务器之间有时间限制的一对一关系的表示。在服务器端语言(例如PHP)中,您可以将值附加到此会话。这就是它的程度。有一百万种方法可以使用这个概念,或者您可以轻松地依赖它并使用其他技术来跟踪持久值。每个会话都有一个唯一的标识符,因此如果需要,您可以离散地引用 - 这是您的“会话ID”。

Here is an article涵盖会话的基础知识,但你的问题几乎是正确的 - 会议没有什么神奇之处。

如果你不得不把它归结为一个类比,可以把它想象成一个人入住酒店住一晚。那天的日期是会话ID - 今天只能发生一次。在酒店发生的一切都是会议的一部分 - 当他们去餐厅,他们使用制冰机等时。当他们在早上退房时,会议结束。

现在,如果他们再次回来,酒店可能会保留最后一次停留的记录(用户状态保存在数据库中),但这是一次新的停留,因而是一个新的会话。