有什麼辦法有,例如:頁面不能被某個其他頁面請求。
**result.php**
只有所要求的工作:
**input.php**
否則拋出一個錯誤。
明顯沒有直接訪問result.php,但也沒有從除input.php以外的任何其他頁面訪問。
這是可以完成的事情嗎?我嘗試過使用谷歌搜索的方式,例如「限制頁面訪問特定的其他頁面」等。但它沒有任何相關性,只是不相干的東西,如改變chmod等,這不是我所追求的。
非常感謝您的任何幫助....或至少指出我應該如何制定問題。
有什麼辦法有,例如:頁面不能被某個其他頁面請求。
**result.php**
只有所要求的工作:
**input.php**
否則拋出一個錯誤。
明顯沒有直接訪問result.php,但也沒有從除input.php以外的任何其他頁面訪問。
這是可以完成的事情嗎?我嘗試過使用谷歌搜索的方式,例如「限制頁面訪問特定的其他頁面」等。但它沒有任何相關性,只是不相干的東西,如改變chmod等,這不是我所追求的。
非常感謝您的任何幫助....或至少指出我應該如何制定問題。
如果你只是想防止人們不小心打開錯誤的頁面,檢查就足夠了。 HTTP Referer
標題包含鏈接到請求的頁面的URL,因此在您的result.php
代碼中,您可以檢查該引用者是否爲input.php
頁面的正確URL。
但是,引用標頭是由客戶端(例如瀏覽器)發送的,因此您依靠它來告訴您實情。一個熟練的用戶可以請求您的result.php
頁面假冒引用標頭說他們來自input.php
當他們真的沒有。這被稱爲referer spoofing。
如果需要防止的是,出於安全原因,那麼你需要使用PHP的session支持跟蹤其中的步驟,用戶迄今已完成在服務器上,這樣當用戶試圖訪問result.php
,您可以通過一種不容易被欺騙的方式來檢查先決條件。
你是什麼意思,「請求''input.php'?你的意思是你想檢查[推薦人](https://en.wikipedia.org/wiki/HTTP_referer)? – ruakh
對不起 - 澄清 - 當你有一個從input.php鏈接到result.php的鏈接。所以,否則它不應該直接或從其他頁面工作。是的,我剛剛查看了你發佈的鏈接 - 我想推薦人就是這樣,只需要弄清楚。 –
如果我正確理解你的問題,'debug_backtrace'就是你之後的東西 - http://au1.php.net/debug_backtrace - 這將返回一個關聯數組,你可以檢查以確保results.php被文件調用input.php。 問題在於該文件將返回文件的完整地址(即/Applications/MAMP/program/input.php),因此當您部署到另一臺服務器時,預期結果將會不同。 –