2013-05-31 3 views
0

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

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

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

Я думал, что это возможно с помощью JavaScript?

EDIT

Просто для уточнения, то страница 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> 

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

+0

Если я правильно понял ваш вопрос, вы хотите, чтобы шифрование происходило до того, как информация была отправлена ​​по сети? Если это так, javascript, безусловно, правильное направление. – WouterH

+0

У вас был бы какой-нибудь пример? Ive использовал java для передачи переменных на другую страницу, но никогда на одну страницу до отправки – Gary

+0

Я предлагаю взглянуть на jQuery для вашей проблемы, проще написать эффективный Javascript с помощью http://jquery.com/ – Jaay

ответ

-1

Как насчет делать это:

<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.

+0

Это решение будет работать для OP - используйте событие 'onChange' для поля суммы, чтобы отправить запрос Ajax на сервер, чтобы вычислить новый хеш, а затем обновить поле «SHA1HASH», но он очень переработан и, вероятно, вызовет больше проблем, чем того стоит. –

0

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

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

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

или если хэш происходит после ввода получил только сохранить вход хешированной на сессию?

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

0

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

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

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

Смежные вопросы