Php页面调用

时间:2011-09-20 07:43:09

标签: php indexing

如果我想做这样的事情,最好的方法是什么;

我称之为页面呼叫。

我有一个index.php,它将运行config.php

我希望 index.php 作为我的核心,然后执行类似

的操作
index.php?customer=home  or index.php?customer=viewaccount

index.php?admin=home  or index.php?admin=updateproduct

然后调用特定的php文件,例如。 home.php,viewaccount.php

祝你好运 我非常感谢你的帮助。=)

5 个答案:

答案 0 :(得分:2)

听起来你在谈论一种名为Front Controller Pattern的设计模式。

当然可以实现自己的前端控制器,但几乎每个PHP框架都已具备此功能。我建议你试试Zend Framework。

答案 1 :(得分:1)

我不会在同一个脚本中混合管理员和公共区域 因此,对于公共区域,您可以执行类似

的操作
<? 
if (empty($_SERVER['QUERY_STRING'])) { 
  $name="index"; 
} else { 
  $name=basename($_SERVER['QUERY_STRING']); 
} 
$file="pages/$name.htm"; 
if (is_readable($file)) { 
  include($file); 
} else { 
  header("HTTP/1.0 404 Not Found");
  readfile("404.html");
} 
?> 

然后解决客户页面,例如index.php?homeindex.php?viewaccount

答案 2 :(得分:0)

最好是针对允许的脚本名称的“白名单”数组检查$_GET参数。之后,您可以只包含该文件。

if ( in_array( $_GET['admin'], array( 'home', 'updateproduct' ) ) ) {
    include( $_GET['admin'] . '.php');
}

答案 3 :(得分:0)

好的,我无法对这里的所有答案发表评论,所以我会告诉你,即使这篇文章可能会被放下,因为它不是直接的帮助。

在包含POST或GET请求的文件时,您需要非常小心。在编写类似代码时,请注意远程/本地文件包含漏洞。 index.php?page = / etc / passwd或index.php?page = www.myEvilScript.com / evil.php

许多人都可以通过这种方式被黑客入侵,而且你不希望这种情况发生在你身上。

始终清理您的数据,所以striplashes($ _ GET ['admin']);或者你想要使用的任何方法。

答案 4 :(得分:0)

此模式的名称是前端控制器。

您可以在网络服务器上实现多路复用(例如使用mod_rewrite)或在PHP代码中实现。

以下是 NOT 的执行方式:

 <?php

 require_once($_REQUEST['customer']);
 require_once($_REQUEST['admin']);

下进行。