2011-06-02 79 views
-1
<input name="aa" type="text" id="aa" value="please enter your name" size="22"   maxlength="60" /> 
<input name="aab" type="text" id="aab" value="please enter your email" size="22"   maxlength="60" /> 

我有一個文本框,它的值是「請輸入您的姓名」(同樣我有很多fields.i希望值加起來也只有當值被改變數據庫。(如果用戶輸入的名稱)文本字段值改變PHP檢測

我使用PHP isset功能,它不能正常工作。 如何檢測,在PHP?

回答

1

你應該用一個現成的驗證庫,如做到這一點的前端在jQuery或Prototype中顯然你也需要對後端進行一些驗證,但是'垃圾進入','垃圾出',你應該整理你的輸入數據b它在任何地方靠近你的PHP代碼。

1

如果您有一個包含以前值的數組,您可以輕鬆地將所有字段值與以前的值進行比較,如果它們中的任何值不同,則更新。

更新: 對不起,最初不明白你的問題。正如你在其他答案中提到的那樣,你最好在前端檢查它,在工作之後通過你的php代碼來檢查它。

+0

前值可以被更新。這是一個有點危險的方法。 – 2011-06-02 12:13:25

0

您應該在表單發佈之後通過從數據庫獲取數據並根據需要插入新記錄來進行比較。你也應該使用交易來確定競賽狀況。如果它是一個關鍵系統,則必須執行大量測試。

0

isset()可能會像它應該那樣工作,但只有當變量不存在或爲空時它纔會返回false。
如果我理解正確的問題,你應該這樣做:

if($_POST["aa"]!="please enter your name" && isset($_POST["aa"])){ 
    //do something 
} 

同樣適用於其他領域的情況:當他們正在被另一個用戶編輯

if($_POST["aab"]!="please enter your email" && isset($_POST["aab"])){ 
    //do something 
} 
+0

從邏輯上講,首先檢查isset($ _ POST [「aa」])',然後纔會比較'$ _POST [「aa」]!=「請輸入您的姓名」' – Eugene 2011-06-02 15:04:02

+0

在我看來,這更符合邏輯首先檢查默認值,因爲用戶擦除該值的可能性較小,並且保持不變,而不保留該值。 if語句將首先檢查最可能的不希望的結果,而不必測試另一個結果。 – 2011-06-02 16:18:59