我有一个包含表单的页面。该页面还有一个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>
但我不确定如何在发布之前动态执行此操作。
答案 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。