【问题标题】:can someone explain to me the complete uses of session variables? [closed]有人可以向我解释会话变量的完整用途吗? [关闭]
【发布时间】:2011-07-28 16:46:15
【问题描述】:

php中会话变量有什么用?我知道基础知识,但我如何判断用户是否在线?什么是会话 ID?一般来说,我只是使用会话在我的网站中“携带”一个变量,但仅此而已。还有其他有用的属性吗?

谢谢

【问题讨论】:

  • 会话为原本基本上是“无状态”的协议提供“状态”。除此之外,您的问题归结为“告诉我我可以用锤子做的一切”——这是永远无法正确回答的问题。
  • @marc hehe 好的,我想我明白了

标签: php session session-variables


【解决方案1】:

来自 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>';
?>

【讨论】:

  • 这真的很有帮助!谢谢!
【解决方案2】:

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

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

【讨论】:

  • 谢谢!至少我在正确的轨道上。但是会话ID是什么?以及如何让每个用户都与众不同?
  • @gianniskpf 在正常情况下,您无需担心会话 ID。您所要做的就是session_start(),PHP 会神奇地为您加载正确的$_SESSION 数组。您为每个用户获得一个新的$_SESSION 数组,并且每次执行脚本时,都会加载正确的$_SESSION。所以 PHP 会自动“让每个用户都与众不同”。
【解决方案3】:

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

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

如果您必须将其归结为一个类比,请将其想象为一个人在酒店入住了一晚。当天的日期是会话 ID - 今天只能发生一次。在那家酒店发生的一切都是会话的一部分——当他们去餐厅时,当他们使用制冰机时等等。当他们早上退房时,会话就结束了。

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

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2016-08-22
    • 2020-08-16
    • 2021-02-18
    相关资源
    最近更新 更多