动态php网站,$ _GET文件夹变量

时间:2014-01-01 15:19:11

标签: php

我在这里遇到错误,如何在home.php中选择加载特定文件夹?

我的代码:

<?php
        $pass = array('home','main','result');
        $lang = array('eng','thai');
            if (in_array(@$_GET['page'], $pass, $lang)) { 
                include ($_SERVER['DOCUMENT_ROOT'] . './jeff/page/' . $_GET['$lang'] . '/' . $_GET['page'] . '.php'); 
        } 
                elseif (!isset($_GET['page'])) { 
                include ($_SERVER['DOCUMENT_ROOT'] . './jeff/page/home.php'); 
            } else { 
       include ($_SERVER['DOCUMENT_ROOT'] . './jeff/page/error.php'); 
         } 
    ?>

我的home.php

<A href="Thai">Thai</a><br />
<a href="Eng">Eng</a>

在我的页面文件夹中,我有另外两个文件夹engthai

当用户从home.php中选择语言时,我希望代码将eng或泰语值加载到`$ _GET ['lang']

例如,如果用户选择Eng,页面将从eng文件夹加载main.php,如果用户选择Thai,页面将从thai文件夹加载main.php。

我可以知道我哪里出错并且代码无效吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

这可能会更清晰 - 不要认为你需要进一步检查错误,因为你知道你总是可以默认为home.php。另外,不需要第三个in_array()参数:

<?php

$baseUrl = $_SERVER['DOCUMENT_ROOT'] . './jeff/page/';
$pass = array('home','main','result');
$lang = array('eng','thai');

if(!isset($_GET['page']) && !isset($_GET['lang'])){
    include ($baseUrl . 'home.php'); 
} else {
    if (in_array($_GET['lang'], $lang)) { 
        $baseUrl .= $_GET['lang']; 
    }       
    if (in_array($_GET['page'], $pass)) { 
        $baseUrl .= $_GET['page']; 
    } 
    include ($baseUrl . '.php'); 
}