当前位置: 代码迷 >> PHP >> php服务器端证验
  详细解决方案

php服务器端证验

热度:76   发布时间:2016-04-29 00:18:48.0
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>
  相关解决方案