如何在表单中添加验证?

时间:2012-04-19 10:40:06

标签: php forms validation

我有一个php表单,它正在向我的sql数据库添加信息,我需要它只接受文本框中的数字。

这是我的php表单

<form id="MakeBid" action="MakeBid.php" method="POST">
    <input type="hidden" name="propertyID" value="1" />
    <div>Bid Now
        <input type="text" name="pricesoldfor" />
    </div>
    <input id="submit" input type="submit" value="Submit" />
</form>

4 个答案:

答案 0 :(得分:1)

客户端无需加载反馈,您可以执行类似

的操作
<form [...] onsubmit="if( !this.pricesoldfor.match(/\d+/) ) { 
     alert('Please enter only numbers for the price!'); return false; 
}">

(我把这个例子写成内联 - 因为你的表格可能会更大,我建议你不要使用onsubmit属性,而是附上一个合适的事件处理程序。看看preventDefault()以及这通常是return false的更好替代方案。)

您真正需要做的是在 PHP (服务器端)中验证在将其保存到数据库之前它只是数字。例如:

if((string)(int)$input === $input) { /*was a number*/ } else { /*was not a number*/ }

请记住,这两个都只允许全数(整数),所以没有“35.43”或类似。看看is_numeric()

答案 1 :(得分:1)

您可以使用javascript进行客户端验证。这不是非常安全,但速度快,可用于提供响应式用户体验,但应始终使用服务器端验证进行备份。

您可以混合使用正则表达式和if / else或case / switch来查看输入的字符。

if (!preg_match("/^[0-9]", $textfield)) 
// display error message

答案 2 :(得分:1)

$num = 123456;
if(!filter_var($num, FILTER_VALIDATE_INT))
 {
 echo("Not number");
 }
else
 {
 echo("Number");
 }

答案 3 :(得分:0)