PHP包含来自URL变量的错误

时间:2012-09-19 02:46:08

标签: php variables if-statement include urlvariables

在我正在构建的页面上,我要求它根据URL末尾的变量将文件加载到页面的一部分中。例如,如果页面URL是test.php?page = lp那么该页面将包含文件lp.php ......现在这已经工作了一段时间,但突然停止了,我只是返回错误,就好像文件不存在一样。然后我'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

<?php $times = substr_count($_SERVER['PHP_SELF'],"/");
$rootaccess = "";
$i = 1;

while ($i < $times) {
 $rootaccess .= "../";
 $i++;
}
$y = date("Y");
$ymo = $y-1;

//$rootaccess.
if(!file_exists($page.".php")){
echo "The file requested (www.websitename.co.uk$rootaccess$page.php) was not found, or an error occured";

}
else {include($rootaccess.$page.".php");} ?>    

所有发生的事情都是如果找不到文件的结果...所以对于test.php的例子?页面= lp返回消息“请求的文件(www.websitename.co。找不到uk / lp.php,或发生错误“。但是这就是文件IS THERE,因为该页面也使用了AJAX,如果我使用AJAX链接在完全相同的位置加载完全相同的文件,它就可以了! (同样,如果我输入错误中的地址显示,它可以工作)我已经使用GET,以便脚本确定是否已设置$ page,因为这也改变了页面的其他元素,所以我知道这是有效的。 ..但由于某种原因,它不再想要包含该文件 - 所以解决方法是什么? (我已经尝试过没有rootaccess位,但它仍然失败) 谢谢。 (另外,如果有人有任何想法,为什么包括($ rootaccess。$ page。“。php”)有一天工作然后停止工作,那么我很想知道,因为此刻我只是在页面上大喊大叫!!!)

1 个答案:

答案 0 :(得分:0)

我想我之前遇到过同样的问题。尝试使用:

$foo = trim($page.".php");

if(!file_exists($foo)) {
     :
} else {
     include(trim($rootaccess.$foo));
}