2013-03-24 62 views
0

我Hompeage加載網站使用此腳本連接404頁:如何使用PHP頁面加載腳本

<?php 
      if(!isset($_GET['id'])) $id = 'home'; 
      else $id = $_GET['id']; 
      include($id.'.php'); 
     ?> 

難道你們任何人有一個想法,如何將一個404錯誤頁面,它連接? 意思是,如果Php找不到頁面,它會將用戶發送到404頁面。

感謝您的幫助!

+0

您使用的是什麼服務器? Apache使用.htaccess很容易做到這一點[http://www.htaccessbasics.com/404-custom-error-page/](http://www.htaccessbasics.com/404-custom-error-page/) – Adidi 2013-03-24 16:31:34

+1

請此代碼非常小心,因爲它似乎非常危險。基本上,你允許用戶完全控制你的文件。考慮用戶能夠像'id'那樣傳遞類似的情況:''../../../ some-file''。你應該真的檢查用戶是否被允許訪問該文件,並且最好從我檢查過的傳遞參數 – thaJeztah 2013-03-24 16:37:03

+0

中去除路徑信息,但是你真的可以獲取php文件並且不能訪問其他文件夾。 – JSt 2013-03-24 17:05:08

回答

0

像這樣的事情可能?

<?php 

if(!isset($_GET['id'])) 
{ 
    $id = 'home'; 
} 
else 
{ 
    $id = $_GET['id']; 
} 

if (is_file($id . '.php')) 
{ 
    include($id . '.php'); 
} 
else 
{ 
    include('404.php'); 
} 

?> 
+0

完美的作品!謝謝 – JSt 2013-03-24 17:07:36

1

如果你想重定向用戶,因爲不存在的文件,你應該使用服務器的指令,在Apache中它是在.htaccess文件中。

如果你想將用戶重定向,因爲不存在的ID,因此它想不=存在的文件,你可以重定向他:

if($_GET['id']) ... is not existent){ // type your criteria here 
    header('Location: your_404_page.php'); 
    die(); 
}