2016-11-04 8 views
0

phpセッション変数に保存されている古いパスワードと新しいパスワードを比較する方法を教えてください。PHPセッション変数に保存されているパスワードと、jsを使用して入力した新しいパスワードとを比較します

私は次のコードを使用しています。このコードの結果は、常に正しいパスワードを入力したときにループが機能していない場合、「パスワードは正しく入力されていません。

<!DOCTYPE html> 
<html lang="en"> 
    <div id="dom-target" style="display: none;"> 
     <?php 
      session_start(); 
      $oldPsassword=$_SESSION['storpass']; 
      echo htmlspecialchars($oldPsassword); 

     ?> 
    </div>  
    <form name="myForm2" method ="post" action = "index-login.php" onsubmit="return PasswordMatch()"> 
     <div class="form-group"> 
      <label>Old Password</label> 
      <input type="password" name = "op" placeholder="old Password" id = "opass" class="form-control" > 
     </div> 
    </form> 
</html> 

はJavaScript

function PasswordMatch() {  
    var div = document.getElementById("dom-target"); 
    var oldPass =div.textContent; 

    var oldPass1 =document.getElementById("op").value; 

    if (oldPass1 == oldPass) {  
     alert("password entered is correct");  
    } 
    else 
    { 
     alert("password entered is not correct"); 
     return false; 
    } 
} 
+2

"Q:なぜoldPass1!= oldPass?"、 "A:内部は何かを見てみましょう:console.log(oldPass1、oldPass);" – Federkun

+2

HTMLページに古いパスワードを出力しないでください。プレーンテキストとして保存するべきではありません。この確認はajax経由で行います。 – Phiter

+0

htmlspecialchars()を使わずに試しましたか?これは、2つのパスワードを比較するときに望ましくないエンコーディングを引き起こしているようです:http://www.w3schools.com/php/func_string_htmlspecialchars.asp –

答えて

0

の入力フィールドにopass IDを与えているよう

var oldPass1 =document.getElementById("opass").value; 

を2トンhings:

  1. ご入力のIDがopassないopです。 getElementById()コールを変更します。

  2. コンテナは、パスワードの前後に空白があり、一致しない場合があります。しかし、HTMLに古いパスワードを保存することは危険です

    var oldPass = div.textContent.trim(); 
    

    :あなたは

トリムを追加することを解決するために、それをトリミングすることができます。誰でもHTMLを調べてパスワードを見つけることができます。代わりに、サーバー側で比較を行う必要があります。

0

あなたはoldpass1

使用するため、この間違ったIDを使用している:あなたは

関連する問題