邮政编码验证


Zip Code Validation

我想完成以下任务1. 如果邮政编码存在于我的数据库中,那么打印符合交付条件2. 否则不符合交付条件

我写的代码如下:html

    <form>
        Pincode: <input autocomplete="off" type="text" maxlength="6" name="pincode" class="pincode" id="pin_code" placeholder="Enter Pincode" onkeypress='validate(event)'/><br>
               <span class="check"  ></span> <br/><br/>

javascript和ajax

<script type="text/javascript">
$(function()
{
  $('.pincode').keyup(function()
  {
  var checkcode=$(this).val();
  if(checkcode){
  $('.check').show();
  $('.check').fadeIn(400).html('<img src="image/ajax-loading.gif" /> ');
    var Str="pin=" + checkcode;
  $.ajax({
          type: "POST",
          url: "available.php",
          data: Str,
          cache: false,
          success: function(result){
               if(result==''){
                       $('.check').html('<img src="image/error.png" /> This pincode is not valid');
                       $(".check").removeClass("red");
                       $('.check').addClass("green");
                       $(".pincode").removeClass("yellow");
                       $(".pincode").addClass("white");
               }else{
                       $('.check').html('<img src="image/accept.png" /> This pincode is valid');
                       $(".check").removeClass("green");
                       $('.check').addClass("red")
                       $(".pincode").removeClass("white");
                       $(".pincode").addClass("yellow");
               }
          }
      });
   }else{
       $('.check').html('');
   }
  });

});
</script>

可用php代码

<?php
$mysql_db_hostname = "localhost";
$mysql_db_user = "healthmate";
$mysql_db_password = "healthmate";
$mysql_db_database = "test";
$con = mysql_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password) or die("Could not connect database");
mysql_select_db($mysql_db_database, $con) or die("Could not select database");
if(isset($_POST['pincode']) && !empty($_POST['pincode'])){
      $query="select * from cod_locations where pin=$pincode";
      $res=mysql_query($query);
      $count=mysql_num_rows($res);
      $HTML='';
      if($count > 0){
        $HTML='delivery available';
      }else{
        $HTML='not there';
      }
      echo $HTML;
}
?>

问题:即使数据库中的有效代码也显示为无效。任何帮助都将不胜感激。我猜问题在于ajax部分的结果

这里有几个问题:

  1. 你正在设置它被发送到你的php脚本:var Str="pin=" + checkcode;。php端需要$_POST['pin'];
  2. 当pin码被设置(你的$HTML变量)时,你总是会回显一些东西,所以你的成功函数中的result变量永远不会为空;
  3. 你有一个sql注入问题。你应该切换到PDO或mysql和预处理语句。