首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php服务器端证验

2012-09-08 
php服务器端验证客户页面有一个循环输出的文本框,name属性为grade[],id为grade,现在我要对输入的内容作服

php服务器端验证
客户页面有一个循环输出的文本框,name属性为grade[],id为grade,现在我要对输入的内容作服务器端检测,条件如下:输入的内容必须是6位数字。代码如下。现在的问题是这个服务器端检测已经可以使用,检测没问题时执行下面的数据处理程序(这里没给出),但是如果输入内容不符合条件时,下面的数据处理程序仍然会执行。怎么办?求教。我尝试在检测程序里加了die();以及exit;和exit();都没有效果。如果您觉得用js也可以实现的话那就太好不过了,我给出表单(因为数据处理程序在本页面,所以action为空,你懂得。):
各位大侠帮忙,各显神通,描述应该很详细了,晚上来看。
<form name="form1" id="form1" action="" method="post">
<input type="text" size="6" name="grade[]" id="grade"/>
<input type="submit" name="submit" value="提交" />
</form>

<?php
$grade=$_POST['grade'];
for($j=0;$j<count($grade);$j++){
if($grade[$j]!=""){
if(strlen($grade[$j])==6){
if(!preg_match("/^\d*$/",$grade[$j])){
echo '<script language="javascript">alert("请正确输入数字!");window.history.go(-1);</script>';
break;
die();
}
}else{
echo '<script language="javascript">alert("输入内容必须是6位数字!");window.history.go(-1);</script>';
break;
die();
}
}
}
?>

[解决办法]

HTML code
<script>function foo(){    var grades=document.getElementsByName('grade[]');    var flag=true,grade_value=null;     for(var i=0,len=grades.length;i<len;i++){            grade_value=grades[i].value;            if(grade_value=="" || !/^\d{6}$/.test(grade_value)){                        flag=false;                        break;            }                             }    return flag;}</script><form name="form1" id="form1" action="" method="post" onsubmit="return foo()"><input type="text" size="6" name="grade[]" id="grade"/><input type="text" size="6" name="grade[]" id="grade"/><input type="submit" name="submit" value="提交" /></form> 

热点排行