代码之家  ›  专栏  ›  技术社区  ›  Scott

PHP会话_start()

  •  20
  • Scott  · 技术社区  · 14 年前

    这到底是什么?

    5 回复  |  直到 7 年前
        1
  •  23
  •   Victor Nicollet    14 年前

    PHP会话系统允许您在 $_SESSION 全局数组。一个典型的例子是,当用户键入密码时,将其标识符存储在会话中:

    if ($user = try_login($login, $password)) 
      $_SESSION['user'] = $user;
    

    if (isset($_SESSION['user']))
      // logged in !
      echo user_name($_SESSION['user']);
    

    数据存储在服务器上,因此不存在篡改的风险(另一方面,请注意磁盘的使用)。

    启动会话允许当前请求使用 $会话 . 如果这是用户第一次访问,则数组将为空,并将为您发送新的会话cookie。

    $会话 ,但数据会保留下来以供下一个请求使用。

        2
  •  11
  •   Manos Dilaverakis    8 年前

    我假设您想知道PHP会话对您程序员意味着什么。

    实际的机制可能因配置(php.ini)而异,但典型的安装可以使用cookies进行会话。假设您的web服务器在linux上,并且您正在使用cookies。你要做的是

    session_start();
    $_SESSION['name']='Bob';
    

    当PHP看到这一点时,它会创建一个具有半随机名称的文本文件(例如sess_a3tfkd5558kf5rlm44i538fj07),将$_会话内容作为纯文本粘贴在其中,然后使用会话id向用户发送一个cookie,该cookie可用于查找会话文件(例如a3tfkd5558kf5rlm44i538fj07)。

    下次用户返回时,他将把会话id交到cookie中,PHP将转到相关文件并将其内容加载到$u session中。

        3
  •  3
  •   Nagendra Rao ivaneliasoo    11 年前

    PHP的会话启动或恢复HTTP会话,本文对此进行了很好的解释:

    http://en.wikipedia.org/wiki/Session_(computer_science)

    HTTP“会话”的概念并不特定于PHP,它在许多(所有?)中都有使用服务器端HTTP框架是一种允许在不同的请求/响应之间存储/关联某些状态的方法(因为HTTP是无状态的)。一个唯一的令牌(通常但不总是存储在cookie中)标识一个特定的客户机,服务器可以关联“会话”

    http://www.php.net/manual/en/book.session.php

        4
  •  2
  •   Community CDub    8 年前

    就像手册上说的

    session_start() 基于通过GET或POST请求传递或通过cookie传递的会话标识符创建会话或恢复当前会话。

    如果在登录页上启动新会话,则会话最初为空。您可以在其中存储您想要的任何内容,例如,在用户登录后存储用户id。关闭会话时会销毁会话数据。

    Session Extension Manual Pages 也看到了

        5
  •  1
  •   Faruque Ahamed Mollick    8 年前

    您可以将PHP会话与cookie进行比较,但是会话是存储信息的更安全的方式。Cookie将数据存储在用户的计算机上,但会话将安全地存储在服务器上的临时文件中。 How to start a PHP session, store and accessing Session data?

    下面是在PHP会话中存储数据的示例代码:

    <?php
    session_start();
    $_SESSION["name"] = "John";
    ?>
    

    以下是检索会话数据的示例:

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

    资料来源: