0
我有這個按鈕:PHP IPN自定義變量不工作
<button name="pay">BUY FOR 0.50$</button>
當點擊它插入使用$ 0來支付報酬,買家IP和帳戶細節到DB:
$connect->query("INSERT INTO payments(ip,payed,acc,showed) VALUES('$ip','$payed', '$s', '$h')");
echo '
<form action="https://www.paypal.com/cgi-bin/webscr" id="formsend" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value='.$paypal.'>
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="LOL ACC">
<input type="hidden" name="amount" value="0.50">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="custom" value="<?=$ip;?>">
<input type="hidden" name="button_subtype" value="services">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest">
<input type="submit" name="sub" class="sub" />
</form>
';
?>
<script type="text/javascript">
document.getElementById('formsend').submit(); // SUBMIT FORM
</script>
之後它會自動點擊一個新的表單去付款,如果Paypal工作正常。但是,在IPN上,變量custom
未傳遞IP地址。
這裏面的IPN驗證部分:
require_once("config/config.php");
$connect = new mysqli($server['database']['host'],$server['database']['username'],$server['database']['password'],$server['database']['db']);
// PAYMENT VALIDATED & VERIFIED!
$ip = $_POST['custom'];
$check = $connect->query("SELECT * FROM payments WHERE ip='$ip' AND payed = 0");
if($check->num_rows){
$connect->query("UPDATE payments SET payed = 1 WHERE ip = '$ip'");
}
我也試圖爲它插入隨機字符串,但似乎沒有任何工作。我究竟做錯了什麼?
PHP單引號 - '回聲「... ... =$ip;?>」'不會被解析。您可以在將表單提交給PayPal之前查看頁面源代碼來驗證這一點。嘗試改爲'echo'
';' – Sean 2014-10-18 17:56:24