1

对于会议日程,我想为任何给定的房间提供动态页面。用户可以在配置文件夹中编辑名为“schedules.conf”的文件。目前它看起来像这样:

[rooms]
room = 5022
room = 5082

我可以正常加载它,它在我的网页中显示 2 个链接:

{config_load file="schedules.conf" section="rooms"}
......
......
......

{foreach from=#room# item=r}

<li><span><span><a href="{$smarty.const.SITE_URL}/admin/schedules.list.php?room={$r}">Schedules {$r}</a></span></span></li>                    

{/foreach}

所以它链接到处理程序 PHP 文件,现在在 php 文件中我想检查配置文件中是否存在该房间的天气,所以如果有人在地址栏中手动更改房间的 GET 值,我可以有机会处理:

  if(!isset($_GET["room"]))
  {
      header('location: '.SITE_URL.'/admin/index.php');
  }
  else
  {
      $validRooms = $smarty->getConfigDir();

      //How to check id the $_GET["room"] value exist in the config file      
  }
4

3 回答 3

0

Grep 此页面使用 smarty进行 isset()条件检查

编辑

根据OP的评论#1:

如何使用条件检查以及in_array($_GET['room'], $validRooms)

于 2013-08-07T15:16:16.663 回答
0

幸运的是,我得到了 Smarty 论坛管理员的答复:这是怎么做的:

您可以在 PHP 脚本中加载它,而不是在模板中加载配置文件。

请参阅配置加载 API

之后,您可以阅读配置变量

请参阅配置变量

于 2013-08-08T19:53:16.587 回答
0

通过这种方式检查:使用 in_array() 函数

$room = array(5022,5082);
if (in_array($_GET['room'], $room)) {
    // you can pull the data from database
}else{
die('Wrong room data');
}
于 2013-08-07T19:09:29.347 回答