在JavaScript函数中将JavaScript var传递给PHP

问题描述 投票:-1回答:1

我知道这个问题可能会重复。但我还是找不到解决方案。我们假设我的表格看起来像这样

function validateForm(){
  var cryptedoriginalPassword = "<? echo $cryptedOriPassword; ?>";
  var password = document.forms["userForm"]["password"].value;
  
  if(password != ""){	
    if(password == crytedoriginalPassword){
      return true;
    }else{
     alert("Password do not match!");
     return false;     
    }
  }else{
    alert("Please type your password!");	
    return false;
  }
}
<form name="userForm" action="#" onsubmit="return validateForm()" method="POST">
<p>Old Password</p>
<input id="password" type="password" name="password" style="width: 200px;" />
<button>Submit</button>
</form>

我的问题,我设法在validateForm()中获取密码值,但后来我需要传递给php变量,所以我能够检查密码是否与原始密码匹配。我怎样才能做到这一点?

原始密码已加密。这就是为什么我需要获取密码值,以便我可以在PHP中加密它。当然这发生在表单提交之前!

javascript php html5 passwords
1个回答
-1
投票

我认为更好的解决方案是将PHP变量存储在DOM元素中。

在这里,在您的HTML文件中:

<body>
  <div id="cryptedOriPassword"><?=$cryptedOriPassword?></div>
</body>

在您的javascript文件中,您可以通过以下方式访问此变量:

function validateForm(){
    var cryptedOriPassword = document.getElementById('cryptedOriPassword');
    var password = document.forms["userForm"]["password"].value;
    if(cryptedOriPassword == password) {
        blablabla...
    }
}

但是从前端添加密码判断逻辑可能是不安全的,认为这不会导致任何安全问题

© www.soinside.com 2019 - 2024. All rights reserved.