Передать переменную JavaScript в PHP внутри функции JavaScript

Я знаю, что этот вопрос может быть дублирован. Но я все еще не мог найти решение. Предположим, у меня есть форма, похожая на эту

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. И, конечно же, это произошло до отправки формы!

Почему вы делаете проверку во внешнем интерфейсе, а не в бэкэнде??? Вы понимаете, что это совсем не безопасно!?

epascarello 08.03.2019 04:22

потому что все мое сообщение об ошибке в этой форме во внешнем интерфейсе. Мне это нравится, поэтому «пользователю» не нужно нажимать кнопку «Отправить», а затем ждать появления ошибки. Мне легко проверить это сразу. Вот почему я зашифровал пароль. Я думаю, если нет решения, мне нужно проверить на бэкэнде.

Nixoderm 08.03.2019 04:28

Вы делаете пароль доступным, который является безопасностью.... Вы должны выполнить шифрование в простом JavaScript, чтобы убедиться, что он совпадает.... нет возможности сравнить два.... Сделайте вызов Ajax или отправьте форма. Вы просто напрашиваетесь на неприятности

epascarello 08.03.2019 04:34

где вы взяли зашифровать пароль? Я имею в виду, что алгоритм шифрования заключается в том, что передний или задний пароль end.js представляет собой обычный текст, а cryptedpassword не то же самое..js просто проверяет строку, а не соответствие шифрования. suerly, это не лучший подход.

prasanth 09.03.2019 16:55

У меня есть функция в PHP, которая может зашифровать пароль, когда при загрузке экрана я уже получаю информацию о «пользователе» и пароль, затем запускаю функцию зашифрованного пароля и сохраняю ее в переменной (cryptedOriPassword).

Nixoderm 11.03.2019 01:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
60
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...
    }
}

Но это может быть небезопасно для добавления логики определения пароля со стороны внешнего интерфейса, думаю, это не вызовет никаких проблем с безопасностью.

Другие вопросы по теме