Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “为什么?”;获得;凌驾;会议“;_Php_Get - Fatal编程技术网

Php “为什么?”;获得;凌驾;会议“;

Php “为什么?”;获得;凌驾;会议“;,php,get,Php,Get,在守则中: <?php session_start(); $_SESSION['id'] = 14; if(isset($_GET['id'])) { $id = $_GET['id']; } else { $id = $_SESSION['id']; } echo $id; echo "<br>"; echo $_SESSION['id']; ?>

在守则中:

<?php
    session_start();
    $_SESSION['id'] = 14;
    if(isset($_GET['id']))
    {
        $id = $_GET['id'];
    }
    else
    {
        $id = $_SESSION['id'];
    }
    echo $id;
    echo "<br>";
    echo $_SESSION['id'];
?>


为什么回显的第二个值总是等于GET变量(假设有一个集)?这是一个错误的配置还是我遗漏了什么?

我的魔法水晶球说你已经打开了设置。通过调用
phpinfo()

当启用
register\u globals
时,
$foo
$\u SESSION['foo']
相互关联,但前提是$foo在全局范围内。这意味着给其中一个赋值,会导致另一个更新。将它们视为完全相同的变量

那个场景很古老。如果我没记错的话,$foo和$\u SESSION['foo']之间的引用只会在以下其中一项之后建立:

  • 如果会话中存在$\u会话['foo'],则在调用会话\u start()后立即执行
  • 将任何值赋给$\u会话['foo']后立即执行
  • 调用会话_寄存器(“foo”)后立即

  • 您应该强烈考虑禁用ReistSpGulax。像这样意外的程序行为正是该设置被阻止的原因,并最终从php中完全删除。

    我假设它们不是巧合的14?这是您正在运行的实际代码吗?那么您是说
    echo$\u会话['id']的回音与
    回音$id相同即使
    $\u获得['id']!=14
    ?谢谢!这就解释了我极为奇怪的问题:)