Передать введенную пользователем переменную в php до POST?

У меня есть страница, которая содержит форму. На этой странице также есть PHP-скрипт для установки некоторых переменных. Эти переменные затем передаются как скрытые значения, когда пользователь нажимает кнопку "Отправить".

У меня есть требование взять введенное пользователем значение (сумму), а затем установить его как переменную внутри PHP, а затем опубликовать форму. Это возможно?

Я не могу просто отправить отправленное значение формы, так как он должен сначала пройти через хеш MD5 в сценарии PHP. Это требование для платежей по кредитной карте Realex.

Я думал, что это может быть возможно с JavaScript?

РЕДАКТИРОВАТЬ

Просто чтобы уточнить, на странице есть PHP (здесь упрощенно, например)

<?php
$amount ="";
$tmp = "$timestamp.$merchantid.$orderid.$amount.$curr";
$md5hash = md5($tmp);
$tmp = "$md5hash.$secret";
$md5hash = md5($tmp);
?> 

Все вышеперечисленные переменные предопределены и не изменяются, однако сумма зависит от того, что вводит клиент.

Форма находится на той же странице, что и приведенная выше, поэтому, когда клиент вводит значение, нажмите "Отправить". Отправляется вышеприведенный хэш md5.

<form>
<input type="text" name="donate_amount" value="">
<input type="hidden" name="AMOUNT" value="<?=$amount?>
</form>

но я не уверен, как сделать это динамически перед публикацией.

3 ответа

Я не уверен, что получаю это правильно, не видя код, но из того, что я получил из этого, я думаю, вы хотите сохранить все, что есть в сеансе.

так что, если это приходит от ввода

$_SESSION['derp'] = Hash::howeveryouhash($_POST['derp'])

или если хеш происходит после получения ввода, просто сохраните хешированный ввод в сеансе?

Я не уверен, что это то, что вы имели в виду, но если это так, обязательно обратитесь к руководству по php, чтобы обеспечить правильное использование $_SESSION!

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

Вы должны спросить пользователя о сумме, которую он хочет пожертвовать на предыдущей странице. Затем вы можете представить последнюю страницу "Обзор пожертвований", содержащую скрытую форму, и кнопку "Перейти к оплате".

Что бы вы ни реализовали в конечном итоге, не помещайте общий секрет Realex в javascript на странице! Это должно быть защищено на стороне сервера.

Как насчет этого:

<input type="text" name="amount" onchange="ajaxFunction(this)" value="" />

Затем, когда поле ввода изменяется, функция ajaxFunction вызывает скрипт PHP, отправляющий значение. В PHP-скрипте вы можете сохранить значение в $_SESSION['amount'] для дальнейшего использования.

function ajaxFunction(obj) {
   $.post("store_amount.php", { amount: $(obj).val() } );
}

Требуется JQuery.

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