2010-08-05 62 views
0

我想包括我的PHP文件,但我得到一個錯誤PHP的包括提供了一個錯誤

我的頁面中包含的JavaScript

這是我收到

[Thu Aug 05 15:38:01 2010] [error] [client 10.0.0.2] <br/><br/>Unexpexted output: \r\n<html>\r\n\r\n\r\n\r\n<script language="javascript" type="text/javascript" src................ 

錯誤,這是我的服務器代碼,我通過AJAX調用頁面

function getPageContent(&$response){ 
    $PAGE_URL  = $_POST['PAGE_URL']; 
    try{ 
    echo '../' . $PAGE_URL; 
    }catch(Exception $ee){ 
    error_log($ee->getMessage()); 
} 
$response->fields->frame_main = file_get_contents('../' . $PAGE_URL); 
} 

謝謝

+3

請發佈相關代碼。 – Sarfraz 2010-08-05 12:47:43

+0

「$ PAGE_URL」的示例值是什麼? – Sarfraz 2010-08-05 13:01:23

+0

其頁面名稱 例如,login.php – shay 2010-08-05 13:11:23

回答

0

看起來你試圖包含一個javascript文件與PHP ..回聲'而不是..

+0

echo'../'。 $ PAGE_URL;給我

不知道的輸出:../upload_application.php,referer:http://10.0.0.2/jtpc/index.php – shay 2010-08-05 12:55:23

0

它看起來像你想要做的是包括一個JavaScript文件點播。 。如果沒有完整的源代碼(包括你傳遞的網址是什麼,這是一個有點難以調試

我覺得你想要什麼要在這裏說:

$響應 - >板塊 - > frame_main =的file_get_contents( '../' $ PAGE_URL);

實際上是

$響應 - >板塊 - > frame_main = '../' $ PAGE_URL;

由於根據您提供的輸出,它看起來像是不小心將文件讀入標籤,而不是提供文件名。

我覺得有一點要強調。你的代碼在當前的實現中似乎允許我傳遞一個POST變量,如「../../../../../etc/passwd」,並檢索該文件的內容。如果您最終根據用戶的需求閱讀文件,請完整驗證它們。使用像basename()這樣的函數過濾它們可能會有用。

+0

他們是怎麼來的? ,frame_main是div的id,我的ajax將用該內容替換div.innerHTML – shay 2010-08-05 15:51:45

+0

這是我得到它的方式, function getPageContent(&$ response){ $ PAGE_URL = $ _POST ['PAGE_URL' ]。 ob_start(); require_once('../'。$ PAGE_URL); $ contents = ob_get_contents(); ob_end_clean(); $ response-> fields-> frame_main = $ contents; } 但我不得不分開的JavaScript文件,我可以做到這一點,沒有分開的JS? – shay 2010-08-05 16:20:52