【问题标题】:How can I add multiple conditions to if statment in php如何在php中的if语句中添加多个条件
【发布时间】:2017-08-13 18:00:13
【问题描述】:

我正在开发一个 PHP 项目。在 session.php 中,我允许哪些用户可以访问每个页面。登录用户和其他。但问题是我无法将数据库中表中的所有 id-s 添加到 if 语句中。因为我希望所有用户都可以访问所有“oglasi”。

        <?php
        include_once 'db.php';
        session_start();
        ob_start();

        $query = "SELECT id FROM oglasi";
        $result = mysqli_query($link, $query);

        while ($row = mysqli_fetch_array($result)) {
        $id = $row['id'];
        //if not logged in you can access
        if (empty($_SESSION['user_id']) &&
                $_SERVER['REQUEST_URI'] != '/SP/oglasi/index.php' &&
                $_SERVER['REQUEST_URI'] != '/SP/oglasi/registration.php' &&
                $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi.php' &&
                $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id='.$id &&
                $_SERVER['REQUEST_URI'] != '/SP/oglasi/user_insert.php' &&
                $_SERVER['REQUEST_URI'] != '/SP/oglasi/login_check.php') 
            header("Location: index.php");
            die();
        }
          }

        ?>

这是关键声明

    $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id='.$id &&

$id 变量应该改变 1,2... 但它没有改变。

如果我这样做,它可以工作,但如果你有很多数据,那就不好了。

    $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id=2' &&
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id=1' &&

有人可以帮忙吗?

【问题讨论】:

  • 检查strpos()
  • 在每个循环中创建一个要比较的字符串,例如$compare_with,这个变量是每个循环中动态创建的字符串。最后将该字符串与$_SERVER['REQUEST_URI'] 进行比较。您也可以每次使用str_replace 使您成为$compare_with 字符串。

标签: php mysql database session phpmyadmin


【解决方案1】:

我想你可以这样简化检查:

include_once 'db.php';
session_start();
ob_start();

//if not logged in you can access
if (empty($_SESSION['user_id']) &&
    strpos($_SERVER['REQUEST_URI'], '/SP/oglasi/') !== 0) {
    header("Location: index.php");
    die();    
}

您在这里检查 - 如果模式 /SP/oglasi/ 在位置 0 的 REQUEST_URI 中不存在(这意味着 REQUEST_URI 以它开头) - 然后将用户重定向到 index.php

如果不是所有 oglasi 子部分可以由用户访问 - 你仍然可以使用你的条件:

include_once 'db.php';
session_start();
ob_start();

if (empty($_SESSION['user_id']) &&
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/index.php' &&
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/registration.php' &&
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi.php' &&
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/user_insert.php' &&
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/login_check.php' &&
    strpos($_SERVER['REQUEST_URI'], '/SP/oglasi/oglasi_show.php') !== 0  
) { 
    header("Location: index.php");
    die();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-04
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多