得到一个"未定义的变量"在isset

时间:2016-06-19 02:00:00

标签: php

所以我有一个相当复杂的代码,我试图做的工作(实际上;它在我的测试服务器上工作正常,但不是我的实时服务器。所以我' m试图让它返工) - 它一直告诉我,我要求它检查isset的变量不是一个定义的变量。我可能过度思考这整个方法,而且可能是一种简单的方法。但是我需要你们用它来抨击我,显然

include('bootstra.php');
include('includes/parts/head.php');
if(!isset($_SESSION['user']['uid']))
{
    echo $html;
    include('includes/parts/login.php');
    if(isset($_GET['mode']))
    {
        $file = $_GET['mode'];
        $path = "includes/parts/{$file}.php";
        if (file_exists($path)) {
            require_once($path);
        } else {
            die("The Page REquested could not be found!");
        }
    }
    else
    {   
        include('includes/parts/frontpage.php');
    }
}
else
{
    if(!isset($_SESSION['x']) || !isset($_SESSION['y']))
    {
        if(isset($_GET['x']) && isset($_GET['y']))
        {
            $_SESSION['x'] = $_GET['x'];
            $_SESSION['y'] = $_GET['y'];
        }
        else
        {
        $_SESSION['x'] = 0;
        $_SESSION['y'] = 0;
        }
        header("location:index.php?x={$_SESSION['x']}&y={$_SESSION['y']}");
    }
    else
    {
        if($_SESSION['x'] != $_GET['x'] || $_SESSION['y'] != $_GET['y'] )
        {
            header("location:index.php?x={$_SESSION['x']}&y={$_SESSION['y']}");     
        }
        else
        {   
            echo $html;
            echo $base->displayMap($_GET['x'], $_GET['y']); 
            include('includes/context_menu.php');
        }
    }
}

这是确切的错误:
Notice: Undefined index: x in /home/****/public_html/reddactgame/index.php on line 27

2 个答案:

答案 0 :(得分:0)

改变它

<pre>
     if( !isset($_SESSION['x']) || !isset($_SESSION['y']) )
</pre>

<pre>
    if( !( isset($_SESSION['x']) && isset($_SESSION['y']) ) )
</pre>

答案 1 :(得分:0)

没有错误,即Warning ...

这是说$_SESSION['x']从未设置过,因此,当你这样做isset时,它会告诉你它从未被声明过。

示例:

这会为您提供相同的警告

empty($x);


这不会给您警告

$x = 0;
empty($x);

修改

我认为这是一个常见问题,因此here是一个更好的解释。