2014-02-22 63 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你是對我的壞,我從來沒有用過''所以乍一看,它看起來是一個錯誤!! –