爲什麼這項工作:PHP包括幫助
<?php include "includes/top_nav.php"; ?>
?爲什麼這不是爲我工作嗎?作爲所述in the documentation該服務器
http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
爲什麼這項工作:PHP包括幫助
<?php include "includes/top_nav.php"; ?>
?爲什麼這不是爲我工作嗎?作爲所述in the documentation該服務器
http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
我看到兩個可能的原因。
首先,您的服務器可能未配置爲允許URL文件訪問。在這種情況下,錯誤將顯示爲「在服務器配置中禁用URL文件訪問」
如果包含實際工作,但不包括您的期望,但這是一個完整的其他故事。在這種情況下,理解的關鍵是如何處理這樣的請求。在執行你共享的腳本時,你的服務器會執行一個HTTP請求(對它自己)並要求輸出top_nav.php
。這是對服務器的一個全新的請求,所以關於請求的原始請求的細節不再起作用。
該請求將來自不同的IP地址(即您的服務器的地址,而不是原始客戶端)的不同用戶(即Apache),不同的Cookie,不同的$_GET
數據和不包含$_POST
數據。
因此,如果top_nav.php
在渲染時以任何方式檢查服務器變量,環境變量,PHP變量或任何其他運行時狀態,則將失敗。
你說得對,allow_url_include被設置爲Off。 – oshirowanen 2010-11-05 16:36:56
@oshirowanen你最好保持關閉,愚蠢 – 2010-11-05 18:59:00
爲什麼要保持關閉? – oshirowanen 2010-11-11 20:21:44
URL fopen封裝可能是無效的,即使它的啓用,它不與Windows上工作。
您需要啓用URL fopen wrappers上
<?php include "http://localhost/includes/top_nav.php"; ?>
如果「URL fopen封裝」在 PHP(他們是在默認 配置)啓用後,您可以指定 文件使用URL包括(通過 HTTP或其他支持的包裝 - 請參閱 支持的協議/包裝列表 獲取協議列表)而不是 本地路徑名。
你的服務器上的URL fopen包裝的價值是什麼?
您忘記了添加代碼。 – zzzzBov 2010-11-05 16:27:43
你忘了添加錯誤信息。 – 2010-11-05 16:28:18
沒有錯誤消息,第一個示例包含我期望它包含的html,第二個示例不包含我期望它包含的html。 – oshirowanen 2010-11-05 16:29:12