1

いくつかのデータベース更新を実行し、支払いトランザクションを書き込む ipn があります。IPN は正常に動作します。しかし、ペイパルの姓が「オブライエン」である人の場合、今朝は失敗しました。(通常のアポストロフィではなく、バッククォートに注意してください。)

IPN スクリプトでは、変数は次のようになります。

    ...
$firstName  = mysqli_real_escape_string($dbc, $_POST['first_name']);
$lastName   = mysqli_real_escape_string($dbc, $_POST['last_name']);
...

.. 挿入クエリは次のようになります。

$q = "INSERT INTO payments_log (`player_id`,`payer_email`,`transaction_id`,`paypal_first_name`,`paypal_last_name`,`payment_status`,`payment_amount`,`created`) VALUES ('$p_id', '$payerEmail', '$txn_id', '$firstName', '$lastName', '$status', '$amount', NOW())";

他の更新は正常に実行されました。たとえば、名前が「O'Sullivan」、「O'Brien」などで、通常のアポストロフィが付いている人などです。

バックティック以外にipnが失敗した理由は他にありません。それが本当に問題の原因であるかどうか、誰か教えてもらえますか? そうであれば、すべての姓で str_replace を行う必要がありますか? ...

ティア

4

0 に答える 0