Передать введенную пользователем переменную в 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.