2015-04-14 25 views
0

在我的主頁(我們稱之爲index)我有一個名爲#main的div,並且我正在使用JQuery和PHP更新其內容,當導航菜單中的某個鏈接點擊文件(讓我們稱它爲NEWPAGE)。我遇到的問題是以這種方式加載的任何PHP都不會執行。通過Ajax加載的PHP沒有被執行

因此,例如,當在index上單擊其中一個鏈接時,我的JQuery腳本將將NEWPAGE的內容加載到#main中。

NEWPAGE中的任何和所有HTML內容加載完全正常,但PHP內容沒有。

E.g.如果NEWPAGE的內容是:<p>Hello stackoverflow</p>,我會看到的。但如果內容是:

<p><?php 
echo "Hello stackoverflow"; 
?><p> 

我最終什麼也沒看到。

我該如何補救?

P.S.我應該對PHP和Javascript真的很陌生。

+1

PHP只能在服務器上運行。 *下載後無法運行*。 – Blazemonger

+3

你可以發佈你的Ajax調用代碼或調用的PHP代碼嗎?如果PHP沒有被執行,那可能是因爲你的web服務器沒有意識到它是PHP。也許檢查被調用文件的文件擴展名是PHP? – RyanW

回答

1

您調用NEWPAGE的文件,它的文件名實際上是什麼?您的服務器可能需要結束.php才能知道在發送結果之前應該解釋任何內容的PHP代碼。否則,你的服務器將只發送文件的內容,就像它是純文本或HTML一樣。嘗試使用任何DOM檢查內置到您的Web瀏覽器來查找main股利,看看是否包含未解釋的PHP。

搜索「yourbrowsername devloper tools`並查找這些頁面,瞭解如何檢查網頁上的元素說明:

https://developer.mozilla.org/en-US/docs/Tools/Tools_Toolbox

https://msdn.microsoft.com/library/ie/bg182326(v=vs.85)

假設你已經測試你代碼您提供的<p>Hello stackoverflow</p>示例,我認爲文件名不是NEWPAGE.php是您的問題。

+0

所以我叫'NEWPAGE'的文件實際上叫做newpage.php 編輯:我無法在此評論框中獲得格式化權限,因此我已將其鏈接到了外部。 我使用它的代碼是: JS:http://pastebin.com/6biAUcFc PHP:http://pastebin.com/rGiT8S7K – user3126739

+1

我看到你的問題。好的工作不是簡單地讓PHP腳本在任何需要btw的東西上使用'get_file_contents'。但它仍然會產生潛在的安全隱患。我會完全拋棄它,並使用JS來檢測頁面ajax給你的是你的網站404頁面。如果您想繼續使用'load_page.php'來處理您的ajax請求,您將需要使用'include'而不是'get_file_contents',並對請求的頁面進行更嚴格的檢查。如果內存服務於我,黑客可以在文件名的開始處添加'../'來訪問[pages'目錄外的頁面。 – Bob

+0

爲了澄清一下,我應該使用JS加載'newpage'還是僅僅用於404檢查? – user3126739