我必須編寫一個測驗應用程序,其中包含將所選答案發送到「results.php」的不同頁面,然後查詢數據庫到相關表以將答案與「answerkey」表進行比較。
我想有選擇地從數據庫中查詢不同的表格,具體取決於發佈數據來自哪個頁面。
說如果數據來自'functions.php',我會查詢'功能'表。
這是如何實現的?
我必須編寫一個測驗應用程序,其中包含將所選答案發送到「results.php」的不同頁面,然後查詢數據庫到相關表以將答案與「answerkey」表進行比較。
我想有選擇地從數據庫中查詢不同的表格,具體取決於發佈數據來自哪個頁面。
說如果數據來自'functions.php',我會查詢'功能'表。
這是如何實現的?
我想選擇性地從依賴於數據庫查詢不同的表...
只需在包含任何標誌,你會用它來確定這個條件的形式隱藏字段。事情就這麼簡單:
<input type="hidden" name="sourcePage" value="Functions" />
然後在服務器端的代碼,你可以檢索該值:
$_POST['sourcePage']
基本上,信息被髮送到服務器已經是一種形式,所以,當你希望包含更多信息,只需將其包含在該表單中即可。
全局變量$_SERVER['HTTP_REFERER']
應包含該請求是通過將其從用戶隱藏第二個窗體輸入字段提交
不要使用$ _SERVER ['HTTP_REFERER']非常不可靠,並可能導致問題 – virepo
我檢查了文檔。 David提供的解決方案滿足了我的需求。 – Br34th7aking
'HTTP_REFERER' 將用戶代理引用到當前頁面的頁面地址(如果有)。這由用戶代理設置。並非所有的用戶代理都會設置它,有些提供了將HTTP_REFERER修改爲功能的功能。 **總之,它不能真正被信任**。 請參閱http://php.net/manual/en/reserved.variables.server.php – user6838959
您可以輕鬆地做到這一點的URL。
例如:
<input type="hidden" name="the_page_requester" value="name_of_page" />
而且在你的PHP代碼,你可以做到以下幾點:
$pageRequester = $_POST['the_page_requester']
我認爲這個解決方案是更好的:
$table = pathinfo($_SERVER['SCRIPT_NAME'])['filename'];
現在你可以使用$table
來組裝你的sql。
這將返回*當前正在執行的*腳本的路徑,而不是前一頁。 – David
試試這個代碼,如果你想要像你提到的文件名'echo basename($ _ SERVER ['PHP_SELF'],「.php」);' – user6838959