【问题标题】:How do I fix this error in my PHP switch statement? Undefined index [duplicate]如何在我的 PHP switch 语句中修复此错误?未定义的索引 [重复]
【发布时间】:2020-11-14 17:56:50
【问题描述】:

下面是我的 index.php 文件中的代码。当我运行 index.php 时,会出现错误。 未定义的索引:页面我该如何解决这个问题?请指出正确的方向。

代码:

 <?php 
    require 'assets/init.php';
    
    if (require_log_in() == false){
        $page = "login";
    }else{
        $page = "home";
    }
    
    if(!isset($_GET['page']) || $_GET['page'] == ''){
        $page = 'home'; 
            } else {
        $page = $_GET['page'];
    }
    
    
    switch($_GET['page']) 
    {
        case 'home':
            include 'pages/home.php';
            break;
        case 'login':
            include 'pages/login.php';
            break;
        case 'register':
            include 'pages/register.php';
            break;
        default:
            include 'pages/notfound.php';
    
    }
      
    ?>

【问题讨论】:

    标签: php if-statement indexing switch-statement undefined


    【解决方案1】:

    由于$_GET['page'] 并不总是被设置并且您正在为其创建一个变量$page,您应该在您的switch 语句中使用它:

    switch($page)
    {
    ....
    }
    

    【讨论】:

      【解决方案2】:

      您正在检查 $_GET['page'],这很好,并根据结果分配 $page。所以那段代码处理 $_GET['page']。

      但是你正在使用 switch($_GET['page'])

      所以你需要改变

      switch($_GET['page']) 
      

      switch($page) 
      

      因为 $page 是经过验证的值

      【讨论】:

        猜你喜欢
        • 2021-03-23
        • 2021-05-12
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 1970-01-01
        • 2018-04-14
        • 2018-09-11
        相关资源
        最近更新 更多