2012-10-03 96 views
1

現在我有一個表單自己動作。有一些代碼檢查用戶是否在那裏。有沒有辦法阻止腳本運行某些代碼段,如果它在按下提交後被自動執行。當頁面動作自動停止時,停止運行某些代碼位

我想使用一個會話變量來對證,但我已經得到了所有懵懵懂懂在我的腦海:對

任何想法?

+0

什麼是你正在使用的代碼?你的表單是使用POST/GET嗎? – MLeFevre

回答

1

當然。如果你是自提交表單操作,只是檢查是否$_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; ?>" /> 
+0

好的,謝謝。是的,我正在使用if isset提交。第一部分是我需要的:)基本上,當它自己動作時,整個頁面都會重定向。在腳本的開始處有一條if語句從數據庫獲取值。第一次加載腳本後,會更改數據庫中的值。動作自己,因此再次運行腳本導致它重定向,因爲代碼是根據它們來自哪裏來檢查使用有效性。 – KriiV

+0

沒問題!希望你得到你的東西工作:) –