【问题标题】:What are these things in php? Ex: $_COOKIE[], $_POST[], etcphp中的这些东西是什么?例如:$_COOKIE[]、$_POST[] 等
【发布时间】:2012-01-25 09:59:57
【问题描述】:

我才刚开始,所以如果这是一个愚蠢的问题,请原谅。

我正在通过阅读书籍和观看可能有点过时的视频系列来学习。

在涉及多页的某些情况下给出的说明使用常规变量语法,但除非我使用本文标题中提到的语法,否则该语法不起作用。

视频中的示例包括:

第 1 页:

<?php

setcookie("color","blue");

?>

第 2 页:

<?php

echo $color;

?>

这对我不起作用。但是,如果我使用其他语法更改内容,它确实有效。

更改使其工作的变量语法的示例:

第 1 页:

<?php

setcookie("color","blue");

?>

第 2 页:

<?php

echo $_COOKIE["color"];

?>

所以我的问题是,我使用的是什么语法(例如:$_COOKIE["color"])?它叫什么,具体是什么/如何工作?

我意识到这与会话有关,但我太新手了,无法理解。

感谢您的帮助!

【问题讨论】:

  • 您的图书假定 register globals 已打开。这是一个引入了许多安全问题的功能,并且多年来一直是要避免的。我强烈建议您获得更好的指南。

标签: php arrays cookies syntax


【解决方案1】:

它们被称为超全局变量,它们是始终定义的“特殊”变量。

http://php.net/manual/en/language.variables.superglobals.php

如果启用了邪恶的、邪恶的 register_globals,则第一个示例可以工作:

http://php.net/manual/en/security.registerglobals.php

如果您是从使用 register_globals 的来源学习 PHP,我建议您寻找其他来源。

【讨论】:

  • Magic Quotes?你不是说Register Globals吗?
  • @Rocket:是的,谢谢(还有黄昏),我想我今天早上有点喝醉了……内森:也要避免引用魔法:)
【解决方案2】:

第一种语法,即“查找已经存在的变量”,依赖于名为register globals 的 PHP 功能。这个功能是很久以前为了方便新手而引入的,但它一直是许多安全问题的根源,现在已经被弃用了一段时间(实际上,对这种模式的支持已经完全在即将发布的 PHP 5.4 版本中删除)。如需快速概览,请阅读常见问题解答中的“how does register_globals affect me?”。

访问“环境”变量(即源自当前 HTTP 请求或服务器设置的变量)的另一种方法是访问 superglobal 变量;此页面也链接到上面的寄存器全局部分。

如果您正在阅读依赖于注册全局变量处于活动状态的教程,您应该立即停止阅读并寻找更好和更新的材料。

【讨论】:

  • 真正的问题:什么新用户学习PHP的好资源?我很失望地说我不知道​​任何副手。
【解决方案3】:

是的,该示例不起作用,因为它已过时。在 PHP 中,有一个名为 register_globals 的设置可以使此功能起作用,但不建议使用它。

您所说的语法 ($_COOKIE["color"]) 是获取 (associative) array 元素的语法。 $_COOKIE 本身是一个 superglobal 数组,它始终存储包含在 HTTP 请求中的 cookie 的值。

Sessions 是另外一回事,cookie 可用于维护会话。

【讨论】:

    【解决方案4】:

    这些被称为Superglobals。它们是在任何地方都可用的全局数组,无需使用global() 明确定义它们。有几种可用的,用于 cookie、上传的文件、POST 变量等。

    更多信息,最好参考PHP手册:http://php.net/superglobals

    【讨论】:

      猜你喜欢
      • 2019-11-24
      • 2012-12-28
      • 2018-04-09
      • 2013-08-12
      • 2012-01-22
      • 2012-10-24
      • 2011-04-27
      • 2015-06-12
      • 1970-01-01
      相关资源
      最近更新 更多