【问题标题】:compare password stored in php session variable with new entered password using js使用js将存储在php会话变量中的密码与新输入的密码进行比较
【发布时间】:2023-04-01 10:35:02
【问题描述】:

如何比较新输入的密码和存储在 php 会话变量中的旧密码。

我正在使用以下代码。此代码的结果始终是“输入的密码不正确”,即输入正确密码时如果循环不起作用。

<!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;
    }
}

【问题讨论】:

  • 如何调试东西:“问:为什么 oldPass1 != oldPass?”,“答:让我们看看里面有什么:console.log(oldPass1, oldPass);”
  • 您不应该在 HTML 页面中输出旧密码。您甚至不应该将其存储为纯文本。通过 ajax 进行验证。
  • 你试过没有 htmlspecialchars() 吗?看起来这会导致您在比较两个密码时可能不需要一些编码:w3schools.com/php/func_string_htmlspecialchars.asp
  • 作为旁注,看看这两个$string = "&lt;!?fgt?}@&gt;"; echo $string."\n"; echo htmlspecialchars($string); 的输出你会发现它们非常不同,这可能会给你带来一些问题。
  • 我投票决定将此问题作为离题结束,因为 SO 不是调试服务。

标签: javascript php validation login login-script


【解决方案1】:

两件事:

  1. 您输入的 id 是 opass 而不是 op。更改getElementById() 调用。

  2. 容器dom-target在密码前后有空格,会导致不匹配。你可以修剪它来解决这个问题

添加修剪:

var oldPass = div.textContent.trim();

但是,将旧密码存储在 HTML 中是不安全的。任何人都可以检查 HTML 以找到密码。您应该改为在服务器端进行比较。

【讨论】:

    【解决方案2】:

    你为oldpass1使用了错误的ID

    使用这个:

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

    因为您已为输入字段提供了 opass id

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2017-08-05
      相关资源
      最近更新 更多