2011-04-07 63 views
0

美好的一天!我如何输入验证PHP

我怎样才能产生一个错误,如果我输入一个字母而不是数字,因为文字仍然可以编码....我的代码如下:

<HTML> 
<BODY> 

Please enter your grade (0-100 only): 
<FORM ACTION="grade.php" METHOD="POST"> 
<table border = "1"> 
    <tr> 
     <td>Grade</td> 
     <td><input type="text" name="grade" /></td> 
    </tr> 
</table> 
<INPUT type="submit" name="submit" value="grade status"> 
</FORM> 
<?php 

$grade = $_POST['grade']; 
IF ($grade>=0 && $grade<=50){ 
    print "You failed"; 
} ELSE IF ($grade<=60){ 
    print "You Passed! But Study Harder!"; 
} ELSE IF ($grade<=70){ 
    print "Nice"; 
} ELSE IF ($grade<=80) { 
    print "Great Job"; 
} ELSE IF ($grade<=90){ 
    print "Excellent"; 
} ELSE IF ($grade<=100){ 
    print "God Like!"; 
} ELSE { 
    print "Invalid Grade!"; 
} 
?> 

</BODY> 
</HTML> 
+0

数字输入类型http://html5doctor.com/html5-forms-input-types/,但一定要始终在客户端进行验证。 – 2017-11-07 15:26:06

回答

3

检查输入文本的ASCII码,看它是否是数字还是不是!

或使用is_numeric($var);

+0

使用echo不打印,因为打印返回时速度稍快0/1 – Sourav 2011-04-07 06:22:39

+0

@newbie只是知道'is_numeric()'将会返回'true'来表示不是'0-9'的东西;;例如'is_numeric(' - 1.5e5')'是'true'。 – 2011-04-07 17:10:07

1

要检查,如果事情仅包含数字,看到ctype_digit()功能。

1

使用JavaScript:

<script language="javascript"> 
function isInteger(s) 
{ var i=document.s.grad.value; 
    for (i = 0; i < s.length; i++) 
    { 
     // Check that current character is number. 
     var c = s.charAt(i); 
     if (((c < "0") || (c > "9"))) 
      { 
alert("Must Enter Number"); 
      return false; 
      } 
    } 
    // All characters are numbers. 
    return true; 
} 

</script> 

,并呼吁在形式上标签此功能

<FORM ACTION="grade.php" METHOD="POST" onSubmint="isInteger(this)"> 
0

你可以,如果你使用HTML5你可以做到这一点使用正则表达式

if (preg_match('/^[0-9]+$/', $str)) { 

} else { 

}