0

我想使用打开一个页面index.php?do=settings,我正在使用以下代码:

 $do='';
 if (isset($_GET['do'])){
    $do = strip_tags($_GET['action']);
 }

 if ($do == 'settings') {
    header("location:settings.php");
 }

if ($do == 'posts') {
        header("location:posts.php");
     }

但问题是我已经在上面的操作中手动添加所有菜单以使其工作,当它重定向我时,index.php?do=settings消失并只显示我settings.php不想要的

4

3 回答 3

1

为了避免手动设置它,您可以将页面存储在一个数组中,其中键作为页面名称,值作为文件,然后包含文件:

$pages = array(
    'settings' => 'settings.php',
    'otherpage' => 'somePage.php'
);

if (isset($pages[$do])) {
    include $pages[$do];
}

您应该包含该文件,因为 URL 更改的原因是由于重定向。

于 2013-07-08T20:44:11.183 回答
0

您可以使用http_build_query($_GET)为需要保存 GET 数据的链接生成查询字符串。

如果您需要修改 GET 密钥,请将 GET 保存到临时数组,修改它并将其传递给http_build_query.

于 2013-07-08T20:48:54.137 回答
0

像这样添加get var

header("location: http://yoursite.com/settings.php?do=".$do);

注意:那应该是完整的 uri 而不是相对的

于 2013-07-08T20:42:25.000 回答