在POST之前将用户输入的变量传递给php?

时间:2013-05-31 13:53:30

标签: php html realex-payments-api

我有一个包含表单的页面。该页面还有一个PHP脚本来设置一些变量。 然后,当用户单击“提交”时,这些变量将作为隐藏值提交。

我要求用户输入值(金额),然后将其设置为PHP中的变量,然后发布表单。这可能吗 ?

我不能只发送表单提交的值,因为它必须首先在PHP脚本中通过MD5哈希。这是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 个答案:

答案 0 :(得分:0)

我不确定我是否在没有看到代码的情况下正确地得到了这个,但是从我得到的内容中我认为你想要的是保存它对会话的任何影响。

所以如果来自输入

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

或者在获得输入后发生哈希只是将哈希输入保存到会话中?

我不确定这是否意味着你的意思,但如果确实如此,请务必参考php手册以确保正确使用$ _SESSION!

答案 1 :(得分:0)

在创建隐藏表单Gary之前,您需要知道最终金额。没有它就没有必要创建哈希。

您应该询问用户他们希望在上一页上捐赠的金额。然后,您可以显示包含隐藏表单的最终“捐赠概览”页面,以及“继续付款”按钮。

无论你最终实现什么,都不要将Realex共享秘密放在页面上的javascript中!这必须在服务器端保持安全。

答案 2 :(得分:-1)

这样做:

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

然后当输入字段更改函数时,ajaxFunction调用发送值的PHP脚本。在PHP脚本中,您可以将值存储在$ _SESSION [&#39; amount&#39;]中供以后使用。

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

需要jQuery。