【问题标题】:Why do $_SESSION and $_COOKIE behave differently?为什么 $_SESSION 和 $_COOKIE 的行为不同?
【发布时间】:2012-03-10 01:25:14
【问题描述】:

我已经对 $_SESSION 和 $_COOKIE 进行了一些测试,因为它们没有按预期工作。我想知道为什么这些代码行的行为不同。

$_SESSION[1] = 'foo';          // Does not work because of the integer
$_COOKIE[1] = 'bar';           // Works

$_SESSION['foo bar'] = 'foo';   // Works with the space
$_COOKIE['foo bar'] = 'bar';    // Does not work

我原以为 $_SESSION 和 $_COOKIE 将是相同的,除了服务器端与客户端。两者还有其他区别吗?

【问题讨论】:

  • 这只是一个区别,但它很重要

标签: php session cookies


【解决方案1】:

this question 上的答案解决了所涉及的一些问题,但简短的回答是,根据是会话还是 cookie,存在不同的限制。会话受到不同 php.ini 设置的空间限制,cookie 不允许键中的空格等。

【讨论】:

  • 与此相关的部分是 cookies 不允许 [names] 中的空格(因此 $COOKIES 中的键不允许)。这就是 HTTP cookie 的定义方式。还有一些处理 cookie 的浏览器怪癖......但可惜,这超出了 PHP 的范围并在其他地方覆盖。
猜你喜欢
  • 2020-06-30
  • 2012-05-17
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 2018-01-19
  • 2019-08-26
相关资源
最近更新 更多