2011-06-02 76 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