2014-02-22 65 views
1

我在检查密码是否与密码确认相同时遇到问题。逻辑很好,我不认为我的代码有错误。密码检查问题

 $("#pass2").keyup(function(){ 
     check_password(); 
    }); 
     function check_password(){ 
    $.ajax({ 
    type: "post", 
    url: "register.php", 
    data: { 
    'pass1_check': $("#pass1").val(), 
    'pass2_check': $("#pass2").val() 
    }, 
    success : function(data){ 
    if(data == 'success'){ 

     $("#output_pass2").html('<img src="images/check.png" alt=""/>'); 
    $("#output_pass1").html('<img src="images/check.png" alt=""/>'); 


    } 
     else{ 
    $("#output_pass2").css("color","red").html(data); 
    } 
    } 

    }); 
    } 

我的问题是在这种情况下:如果(数据==“成功”) 在我的输出我没有图像,我在输出“成功”,而不是支票影像

我register.php:

<?php 
if(!empty($_POST['pass1_check'])&& !empty($_POST['pass2_check'])) 
{ 
    if(strlen($_POST['pass1_check']) <6 || strlen($_POST['pass2_check']) <6) 
    { 
     echo'<br>Very short'; 
     exit(); 
    }else if($_POST['pass1_check'] == $_POST['pass2_check']){ 
     echo'success'; 
      exit(); 
}else{ 
     echo '<br> the two password are not same'; 
    exit(); 

    } 
} 

?> 

密码的HTML代码中两个标签:

<div class="form-group"> 
    <label for="pass1" class="col-sm-5 control-label">Password :</label> 
    <div class="col-sm-5"> 
     <input type="Password" id="pass1" class="form-control" placeholder="Enter Your Password " required> 
     <small id="output_pass1" ></small> 
    </div> 


     </div> 
      <div class="form-group"> 
    <label for="pass2" class="col-sm-5 control-label">Confirm Your Password :</label> 
    <div class="col-sm-5"> 
     <input type="Password" class="form-control" id="pass2" placeholder="Confirm Your Password " required> 
     <small id="output_pass2"></small> 
    </div> 

     </div> 

我使用引导3设计CSS。

+0

什么是警报(数据)显示您是否将它添加到您的阿贾克斯回应中的if语句之前? – bart2puck

+0

为什么你必须使用ajax来验证长度?以同样的方式,您不需要将这些数据发送到服务器以比较字符串是否相同。 Javascript已经可以做到这一点。 – rationalboss

+0

这个页面是否总是通过“https”服务?如果没有,'$ .ajax({... url:“register.php”,...)'以明文发送密码。您应该指定一个绝对的https网址,以保证安全。 –

回答

-1

看起来你的POST数据部分是不是由麦克·塞缪尔ponted了以下应工作正确

更新。 你有

data: { 
    'pass1_check': $("#pass1").val(), 
    'pass2_check': $("#pass2").val() 
    }, 

如前所述if(data == 'success')不工作。

可能是需要做的

if(data.trim() == 'success') 

确保如果有删除所有空格。

+0

可以引用对象构造函数中的键。它根本不会改变程序的语义。 –

+0

仍然是同样的问题,当我把警报(数据)之前,如果我已经输入一个很好的价值问题是只在if(数据=='成功')程序不读这一行:( –

+0

@MikeSamuel你是对我的坏,我从来没有用过''所以乍一看,它看起来是一个错误!! –