我有一个包含帖子数据的变量:
$ttransid = $_POST["t_transid"];
然后我连接到数据库并从与$ttransid
对应的行中提取信息。
这很好。
然后进行PayPal交易,如果付款成功,则使用付款信息更新数据库 - 这是有效的。
现在我的代码尝试更新数据库并根据开头的原始$ttransid
变量删除库存。
$querysub = "UPDATE ibn_table SET iname = iname - 1 WHERE itransaction_id='$ttransid'";
if(!mysql_query($querysub))
{
//mysql error..!
}
数据库已更新,但仅在itransaction_id
为空的情况下,建议$ttransid
为空。虽然它在代码的开头被正确调用和使用。
有什么想法吗?
答案 0 :(得分:3)
这是因为下次点击您的网页时,$_POST
为空,因此没有$_POST["t_transid"]
。所以当你指定
$ttransid = $_POST["t_transid"];
它变空并更新空字符串。我建议你在数据库或会话中保存该post变量值,这样你就可以使用后者了。
答案 1 :(得分:0)
在进入paypal支付页面之前的起始点,只需将$ transid [POST数据中的可用性]保留到会话中,然后在支付成功后,使用会话transid更新数据库。
在此过程之后,只需从会话中销毁transid。
当然可以。