Нужно получить доступ к данным, введенным в форму, используя php, а затем отправить их в javascript все на той же странице и без перезагрузки? - PullRequest
0 голосов
/ 04 марта 2012

У меня есть форма регистрации пользователя (register.php), пользователь вводит имя пользователя, пароль и адрес электронной почты.Затем они отправляются на другую страницу php (formValidate.php) для проверки с использованием ajax.

Я хотел бы преобразовать введенный в форму пароль в хэш md5 с помощью php, а затем передать эту переменную в javascript, чтобыjavascript может передавать эти данные в formValidate.php

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

Я не уверен, как это сделать.

1 Ответ

0 голосов
/ 04 марта 2012

Для этого вам придется использовать AJAX. По сути, есть две части:

1) Вам нужен PHP-скрипт, который будет принимать переменную post для пароля, будет хэшировать его в md5, а затем выводить его в качестве вывода. Давайте назовем это to_md5.php

2) На странице регистрации вам необходимо перехватить отправку формы, вызвать ajax-вызов, который отправит пароль на ваш to_md5.php скрипт. Вам также необходимо настроить функцию обратного вызова, чтобы завершить отправку формы, когда вы получите хешированный пароль MD5. В функции обратного вызова вы можете изменить значение пароля и отправить форму.

Возможно, есть лучшие способы сделать это, но, надеюсь, это даст вам приблизительное представление.

[EDIT]

В этом проблема, мне посоветовали не использовать javascript для отправки простого текста пароля на страницу php.

Ах, понятно. К счастью, в Javascript реализовано множество криптоалгоритмов. На ум приходит CryptoJS , размещенный в Google Code.

Реализация MD5 выглядит примерно так:

<script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.5.3-crypto-md5.js"></script>

<script type="text/javascript">

   var digest = Crypto.MD5("MyP@ssw0rd");

   // Two different ways of creating the MD5 hash...
   var digestBytes = Crypto.MD5("MyP@ssw0rd", { asBytes: true });
   var digestString = Crypto.MD5("MyP@ssw0rd", { asString: true });

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...