哦,源码没有呢!
先判断生分证字段长度
如果是18位取第7位--第15位
然后比较生日匿的数值!
ELSE
如果是15位
。。

解决方案 »

  1.   

    我觉得如果这个能用js在客户来实现判断效果更好,是不是? 用JS写的程序如下:<script language="JavaScript">
    //利用字符串查找功能
    function checkID()
    {
      var birth=form1.year.value;
      var perID=form1.pid.value;  if(perID.length==15)
      {
         birth=birth.substring(2,4);
       }
       else if(perID.length!=18)
            {
               alert("身份证位数不对");
       return;
             }
       
       birth+=form1.month.value+form1.day.value;
       
       var pos=perID.indexOf(birth);
       
       if(pos!=6)  //身份证第7位起是出生日期
       {
          alert("身份证与生日不付");
          return;
        }
       else { alert("身份证与生日相付"); }
    }
    </script>
    ///////下面是html相关部分
    <form name="form1" method="post" action="">
        <input name="pid" type="text" id="pid" size="18" maxlength="18">
        <input name="year" type="text" id="year" size="4" maxlength="4">
        <select name="month" id="month">
          <option value="01" selected>01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
        </select>
        <select name="day" id="day">
          <option value="01" selected>01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>
          <option value="29">29</option>
          <option value="30">30</option>
          <option value="31">31</option>
        </select>
        <input name="check" type="button" id="check" value="check" onClick="checkID();">
    </form>
      

  2.   

    我觉得在前台客户端来实现这个功能要好一些,这样执行起来快,而且可以减轻服务器的数据处理负担,如果一定要用php来实现,我再给你写,
      

  3.   

    教课书上说利用js,但不能依赖于js,因为有的浏览器是不支持js的。所以在服务器端检查是很有必要的。
      

  4.   

    我想用php写,请帮忙,js是能实现,但我能用php写,能增加我学习php的动力,这样才能把php 这样脚本语言学好
      

  5.   

    <?php
    $birth=$year;
    $IDlen=strlen($pid); //取身份证长度if($IDlen==15)
    {
       $birth=substr("$year",2,4);  
    }
    else if($IDlen!=18)
         {
       echo "身份证位数不对";
       exit();
     }$birth.=$month.$day;if(strpos("$pid","$birth")==6)
    {
       echo "身份证与生日相付";
    }
    else
    {
       echo "身份证与生日不付";
    }
    ?>