如何在php中的if语句中添加多个条件
Posted
技术标签:
【中文标题】如何在php中的if语句中添加多个条件【英文标题】:How can I add multiple conditions to if statment in php 【发布时间】: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
字符串。
【参考方案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();
【讨论】:
以上是关于如何在php中的if语句中添加多个条件的主要内容,如果未能解决你的问题,请参考以下文章