使用 js 将存储在 php 会话变量中的密码与新输入的密码进行比较
compare password stored in php session variable with new entered password using js
如何将新输入的密码与存储在 php 会话变量中的旧密码进行比较。
我正在使用以下代码。此代码的结果始终是 "password entered is not correct" 即如果输入正确密码时循环不起作用。
<!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
使用了错误的 ID
使用这个:
var oldPass1 =document.getElementById("opass").value;
因为您已将 opass id 提供给输入字段
两件事:
您输入的 ID 是 opass
而不是 op
。更改 getElementById()
调用。
容器dom-target
密码前后有空格导致不匹配。你可以trim它来解决
添加trim:
var oldPass = div.textContent.trim();
但是,将旧密码存储在 HTML 中是不安全的。任何人都可以检查 HTML 来找到密码。您应该在服务器端进行比较。
如何将新输入的密码与存储在 php 会话变量中的旧密码进行比较。
我正在使用以下代码。此代码的结果始终是 "password entered is not correct" 即如果输入正确密码时循环不起作用。
<!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
使用这个:
var oldPass1 =document.getElementById("opass").value;
因为您已将 opass id 提供给输入字段
两件事:
您输入的 ID 是
opass
而不是op
。更改getElementById()
调用。容器
dom-target
密码前后有空格导致不匹配。你可以trim它来解决
添加trim:
var oldPass = div.textContent.trim();
但是,将旧密码存储在 HTML 中是不安全的。任何人都可以检查 HTML 来找到密码。您应该在服务器端进行比较。