我希望目錄中的所有PHP頁面只在PHP變量存在且有效時才加載。我知道如何在單個或多個頁面上手動執行此操作,但我希望這會自動發生在目錄中的所有頁面上。是否有某種類型的設置可以放在php.ini文件中,以便我可以執行此操作。PHP在加載頁面之前檢查全局變量
回答
只需向每個頁面添加一條if語句,檢查是否設置了會話變量。爲什麼編輯ini文件?
我想阻止整個目錄的訪問。有成千上萬的文件,添加if語句來檢查每個文件中的變量是不切實際的。 –
@MitchMitchell如果這些文件都不應該被直接訪問(瀏覽器,另一個腳本 - ajax等),那麼你可以考慮添加一個.htaccess(或者如果你不使用apache的話也可以使用類似的方法)? –
@OliverMaksimovic他們應該被訪問,但只有當一個全局變量具有正確的值。我不想完全切斷訪問 –
你可以使用htaccess。使用下面的代碼在您要保護的目錄中創建一個htaccess文件。
.htaccess文件
php_value的auto_prepend_file 「/path/globalchecker.php」
globalchecker.php
<?php
if($some_global_value !== 'some value')
exit;
?>
@Mitch Mitchell做了這項工作嗎? – bassxzero
- 1. 頁面加載之前檢查密碼
- 2. PHP全局變量通過頁面
- 3. 在其他全局變量之間匹配PHP全局變量
- 4. 在頁面完全加載之前顯示加載圖像
- 5. ajax - 在寫入頁面之前檢查圖像已加載
- 6. 在每次頁面加載之前進行會話檢查?
- 7. 在頁面加載之前檢查會話變量並重定向到登錄頁面
- 8. 如何在加載父頁面之前加載子頁面?
- 9. PHP - 加載變量頁面內容
- 10. 頁面加載的PHP會話變量
- 11. 如何在iOS中聲明全局變量之前進行可用性檢查?
- 12. PHP全局變量
- 13. 標籤之間的PHP全局變量
- 14. (Wordpress)檢測分頁的全局變量?
- 15. 檢查變量添加關鍵陣列之前設置 - PHP
- 16. 如何重新加載全局變量在每個頁面刷新在DJango
- 17. Angular2在頁面/組件之間共享變量或全局變量
- 18. ASP.Net全局/頁面範圍變量
- 19. document.body.appendChild在頁面加載之前
- 20. 在頁面加載之前執行Javascript
- 21. bxslider在頁面加載之前堆疊
- 22. 在加載頁面之前編譯scss
- 23. 在頁面加載之前使用PHP附加到URL
- 24. 在頁面完全加載之前單擊按鈕
- 25. 在顯示之前完全加載新頁面
- 26. DocumentComplete在頁面完全加載之前觸發
- 27. 檢查頁面加載
- 28. jQuery全局加載頁面問題
- 29. 在設置變量之前加載UITableView
- 30. 在頁面之間緩存PHP變量
這是一個優勢框架。在一個框架中,如果不加載你的*基文件集*,你永遠不會加載其他文件。我建議,如果你不使用它,至少在這方面模仿他們。讓你的php文件全部包含一個文件。在該文件中,確保所有必須在其他事情發生之前發生的邏輯。這也很棒,因爲您可以確保您的標題永遠不會發送到多個地方。 –
沒有辦法只爲一個目錄執行此操作。有一個全局'auto_prepend_file'選項,但它適用於所有目錄中的所有腳本。 – Barmar
我想限制訪問的目錄充滿了來自第三方的文件。我無法控制他們是否使用框架。我同意你的評論100%,但如果這對我來說很簡單。我需要儘可能避免觸摸代碼。 –