現在我有一個表單自己動作。有一些代碼檢查用戶是否在那裏。有沒有辦法阻止腳本運行某些代碼段,如果它在按下提交後被自動執行。當頁面動作自動停止時,停止運行某些代碼位
我想使用一個會話變量來對證,但我已經得到了所有懵懵懂懂在我的腦海:對
任何想法?
現在我有一個表單自己動作。有一些代碼檢查用戶是否在那裏。有沒有辦法阻止腳本運行某些代碼段,如果它在按下提交後被自動執行。當頁面動作自動停止時,停止運行某些代碼位
我想使用一個會話變量來對證,但我已經得到了所有懵懵懂懂在我的腦海:對
任何想法?
當然。如果你是自提交表單操作,只是檢查是否$_POST
是空的(假設你POST'ing到您的形式)
if (!empty($_POST))
{
...
}
當我做PHP我在表單模板使用輸入元素,像這樣:
<input type="submit" name="submit" id="submit" value="Login" /></td>
...在PHP頁面,我檢查POST是自提交像這樣:
// if page is not submitted to itself echo the form
if (!isset($_POST['submit']))
{
...
}
這雖然不是安全。如果您想獲得自我提交的全部好處,您應該嘗試通過用隨機令牌挑戰客戶並要求客戶重複它來反擊Cross-site request forgery (XSRF)。
就像在你的形式是這樣的嵌入一個隱藏的輸入:
<input type="hidden" name="nonce" value="<? echo $NONCE_VALUE; ?>" />
好的,謝謝。是的,我正在使用if isset提交。第一部分是我需要的:)基本上,當它自己動作時,整個頁面都會重定向。在腳本的開始處有一條if語句從數據庫獲取值。第一次加載腳本後,會更改數據庫中的值。動作自己,因此再次運行腳本導致它重定向,因爲代碼是根據它們來自哪裏來檢查使用有效性。 – KriiV
沒問題!希望你得到你的東西工作:) –
什麼是你正在使用的代碼?你的表單是使用POST/GET嗎? – MLeFevre