PHP 7.1 注册全局

标签 php centos

这里还有一个奇怪的问题。我最近参与了从 PHP 5 到 Php 7.1 的大规模升级以及 CentOS 升级。

我们有很多页面(实际上几乎所有页面)在代码中使用了注册全局快捷方式。

$_SESSION['username'] = $data['username'];
$_SESSION['password'] = $data['password'];
$_SESSION['accountid'] = $data['accountid'];
$_SESSION['role'] = $data['role'];

$getCompany = mysqli_query($mysqli_con,"SELECT * FROM companies WHERE companyid='$data[accountid]'");
$dataCompany = mysqli_fetch_array($getCompany);

$delinquent = $dataCompany['delinquency'];

// Here I fixed it
$item = $_GET['item'];
// But generally variables are just referenced by $whatevergetparameter
if($delinquent == 0){
switch($item)
{
    // Settings
    case "cannedresponses":
        include("/master/inc/settings/list-cannedresponse.inc");
    break;

    case "serviceboard":
        include("/master/inc/settings/list-serviceboard.inc");
    break;

    case "pending-direct":
        include("/master/inc/direct/pending.inc");
    break;

这自然引起了很多问题。特别是因为它无处不在。

有计划进行重写,但与此同时,我想知道是否有人知道模仿或“启用”register_globals 的解决方法,以便我们可以启动并运行功能。

我查看并尝试了以下解决方案: http://php.net/manual/en/security.globals.php 但不幸的是,它们不起作用,这并不奇怪,因为它们是 3 年前编写的。

我的 Google-Fu 也没有帮助我:/

感谢任何帮助,提前致谢!

最佳答案

可以从 GPC 创建自己的全局变量:

foreach (['_GET', '_POST', '_COOKIE'] as $source) {
    foreach ($$source as $key => $value) {
        $GLOBALS[$key] = $value;
    }
}

免责声明:永远不要真正这样做。

关于PHP 7.1 注册全局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43074300/

相关文章:

php - Mysql相同的查询

drupal - 如何递归地保护/sites 文件夹?

centos - 未能从设备 : CUDA_ERROR_OUT_OF_MEMORY 分配 158.06M(165740544 字节)

php - 在 CentOS 6.2 上百胜安装

ruby - CentOS 上的 rbenv : make: *** [exts. mk] 在配置 openssl 后被杀死

linux - Apache默认安装httpd.conf在哪里?

php - 在 one.com 上使用 smtp 和 php

php - 如何在 PHP 中验证电子邮件地址?

php - 链接不适用于 jquery

php - 根据您单击的链接在 DIV 中显示不同的内容