如何将新输入的密码与存储在php会话变量中的旧密码进行比较
我使用下面的代码。此代码的结果总是"密码输入不正确",即当输入正确密码时if循环不起作用。
<!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;
}
}
两件事:
-
您输入的id是
opass
而不是op
。修改getElementById()
呼叫 -
容器
dom-target
密码前后有空格,会导致密码不匹配。你可以修改它来解决
添加修剪:
var oldPass = div.textContent.trim();
但是,在HTML中存储旧密码是不安全的。任何人都可以检查HTML来查找密码。您应该在服务器端进行比较。
您使用了错误的oldpass1
id
:
var oldPass1 =document.getElementById("opass").value;
为输入字段