php中页面的访问控制
我想控制在php网站的访问 我有一个解决方案,现在与开关盒php中页面的访问控制,php,switch-statement,Php,Switch Statement,我想控制在php网站的访问 我有一个解决方案,现在与开关盒 <?php $obj = $_GET['obj']; switch ($obj) { case a: include ('a.php'); break; default: include ('f.php'); } ?> 但是当我有这么多页面时,管理它们就变得很困难了。你有更好的解决方案吗 现在,我使用p
<?php
$obj = $_GET['obj'];
switch ($obj)
{
case a:
include ('a.php');
break;
default:
include ('f.php');
}
?>
但是当我有这么多页面时,管理它们就变得很困难了。你有更好的解决方案吗
现在,我使用php4开发应用程序。我想用php5。当我使用php5开发它时,你有什么建议吗
谢谢我不是说这是最好的解决方案,但几年前我曾经有一个网站,它使用数据库来管理密钥、要包含的页面以及一些信息,例如附加css 所以代码是这样的:
<?php
$page = htmlspecialchars($_GET['page']);
$stuffs = $db->query('select include,css from pages where pageid = "' . $page . '" LIMIT 1');
?>
因此,当我们需要添加页面时,我们只是在数据库中创建了一个新字段。这也让我们关闭了网站的一部分:我们可以有一个可用的={0,1}字段,如果为零,则显示一个静态页面,说明该页面正在维护中。为什么不直接寻址页面本身呢
$obj = $_GET['obj'];
$validArray = array('a','b','c','d','e');
if (in_array($obj,$validArray)) {
include ($obj.'.php');
} else {
include ('f.php');
}
<a href="a.php">first page</a>
<a href="f.php">another page</a>
你拥有的页面越多,就越难控制它
您最好使用某种框架,我个人的偏好是。我们肯定遗漏了什么。这是如何控制访问的?例如,你为什么不直接链接到a.php?我想要一个文件作为网站内容的访问,当然它不包括登录、注销界面等,因为你想要一个文件作为网站内容的访问?有什么原因吗?我想这样做只是为了安全。@garcon1986:我看不到任何安全性。你认为这里的安全性是如何工作的?htmlspecialchars在这里做什么?我忘了引用哪个可以逃避“和”和其他特殊字符。如果我打印$page.htmlspecialchars与sql无关,那么它就避免了sql注入no'的风险。它是html specialchars,而不是sqlspecialchars。正确的函数是mysql\u real\u escape\u string我知道。但ENT_QUOTE将“收入”&039;所以此外,无论是xss的东西,我总是逃避用户的输入。我不明白这件事。这就是我得到-1的原因吗?不仅必须转义引号字符,而且还必须为查询正确准备用户输入。这样,用户在URL中键入时可以看到所有文件。@garcon1986:使用/index.php?obj=a、/index.php?obj=b等有什么区别。?我也可以键入。是的,用户可以在url中键入任何内容。但这样的代码不容易管理。@garcon1986不,不会有这么多链接。只有几个。比如说,您有一个脚本news.php,所有的新闻页面都将通过这个脚本显示。你的站点会有多少个分区?这比使用switch要好。谢谢的确,它非常易于使用,并且有大量库可以帮助您更快地编写代码