2014-10-18 1 views
0

작동하지 나는이 버튼이 : 그것은 지불 $ 0 지불을 삽입 클릭하면PHP IPN 사용자 정의 변수

<button name="pay">BUY FOR 0.50$</button> 

를 DB로 구매자 IP 및 계정 세부 : 그 후

$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'"); 
} 

나는 또한 시도,하지만 그 중 하나가 작동하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

PHP는 작은 따옴표 안에 - '에코'... ... ''구문 분석되지 않습니다. paypal에 양식을 제출하기 전에 페이지 소스 코드를보고이를 확인할 수 있습니다. 'echo'로 변경해보십시오.

...
';' – Sean

답변

0

<?php?>작은 따옴표 안에 있으므로 구문 분석되지 않습니다. 이를 위해, 당신과 같이, 문자열 연결 연산자를 사용한다 :

echo '<form...> 
<input type="hidden" name="custom" value="' . $ip . '"> 
</form>';