Я знаю, что этот вопрос может быть дублирован. Но я все еще не мог найти решение. Предположим, у меня есть форма, похожая на эту
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, чтобы убедиться, что он совпадает.... нет возможности сравнить два.... Сделайте вызов Ajax или отправьте форма. Вы просто напрашиваетесь на неприятности
где вы взяли зашифровать пароль? Я имею в виду, что алгоритм шифрования заключается в том, что передний или задний пароль end.js представляет собой обычный текст, а cryptedpassword не то же самое..js просто проверяет строку, а не соответствие шифрования. suerly, это не лучший подход.
У меня есть функция в PHP, которая может зашифровать пароль, когда при загрузке экрана я уже получаю информацию о «пользователе» и пароль, затем запускаю функцию зашифрованного пароля и сохраняю ее в переменной (cryptedOriPassword).



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, что лучшим решением будет хранить переменную 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...
}
}
Но это может быть небезопасно для добавления логики определения пароля со стороны внешнего интерфейса, думаю, это не вызовет никаких проблем с безопасностью.
Почему вы делаете проверку во внешнем интерфейсе, а не в бэкэнде??? Вы понимаете, что это совсем не безопасно!?