PHP Session 变量自动分配给常规变量

标签 php session

我在 IX 虚拟主机托管,我遇到了一些让我感到奇怪的事情。我所有的 $_SESSION 变量都自动分配给同名的常规变量。这是正常的 PHP 行为吗?我在 php.net 手册中查找它,但没有找到答案。这是一个示例脚本:

<?php
$_SESSION['myvar'] = "hello";
echo $myvar; // after a page refresh, displays hello

$myvar = "goodbye";
echo $_SESSION['myvar']; // displays goodbye
?>

在我的本地主机上,我收到类似 undefined variable 的错误消息:$myvar 但在 IX 上,脚本有效!危险或正常的 PHP 行为?提前致谢。

最佳答案

此“功能”由名为 register_globals 的 php.ini 指令控制.自 PHP 4.2 起默认禁用,并在 PHP 5.4 中完全删除。

除非您有依赖于它的遗留代码,否则我真诚地建议您如果可以的话将其关闭。可以说,安全隐患非常重大。

关于PHP Session 变量自动分配给常规变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626853/

相关文章:

session - 创建 session ,如何防止它

php - PDO 使用连接从多个表中删除记录

php - MySQL 查询错误,在 PHP 中抛出但在终端中正常。任何解释?

php - 有没有更有效的方法来编写嵌套的 While 循环?

javascript - 如果由于用户不存在而导致对 API 的后端 GET 请求失败,如何显示 404 页面?前后端分离

c# - 从 session 加载下拉列表并将其保存到数据库

Node.js Express - 在不同服务器上共享 Passport session

php - 无法启动 session : already started by PHP ($_SESSION is set). 500 内部服务器错误 - RuntimeException

php - 处理 phalcon 中的全局异常

session - Tomcat6.0.20上的跨域共享 session