PHP - захват всех переменных POST - PullRequest
2 голосов
/ 09 марта 2011

Есть ли в PHP способ сбора всех записей и получения переменных, отправляемых на страницу?

Я проверяю свой веб-сайт подписки PayPal в изолированной программной среде PayPal, но каждая транзакция, которую я выполняю, вызывает недействительную транзакцию вмой код.

Итак, я хотел бы захватить все, что PayPal отправляет на мою страницу ipn, и посмотреть, смогу ли я понять, что происходит.Возможно ли это?

Спасибо!

Ответы [ 6 ]

6 голосов
/ 09 марта 2011

Для IPN PayPal вы должны иметь возможность использовать $postdata = file_get_contents('php://input'); для извлечения необработанных данных почты, необходимых для обратного вызова проверки.

4 голосов
/ 27 ноября 2012

У меня есть простой метод, который помогает мне захватить все данные поста:

$post_vars = "";
if ($_POST) {
    $kv = array();
    foreach ($_POST as $k => $v) {
        if (is_array($v)):
            $temp = array();
            foreach ($v as $v2) {
                $temp[] = $v2;
            }
            $kv[] = "$k=" . join("|", $temp);
        else:
            $kv[] = "$k=$v";
        endif;
    }
    $post_vars = join("&", $kv);
}

Это позволяет вам захватить все данные поста (независимо от их имени или значения) и затем сохранить, чем встрока, отлично подходит для вставки в базу данных, хотя вы можете захотеть, чтобы URL закодировать ее.Я обновил его, добавив поддержку массивов, но вам придется настроить его под свои требования, он выводит примерно так:

firstname = Terry & фамилия = Kernan & userid = 111111 & device = 999999999 & text = Hello & questions = q1 | q2| q3 и ответы = a1 | a2 | a3 и тип = ручной

2 голосов
/ 09 марта 2011

Да.

На своей странице IPN вы можете довольно легко регистрировать все переменные get, post и cookie.

Попробуйте это:

ob_start();
print_r($_REQUEST);
$data = ob_get_contents();
ob_end_clean();

file_put_contents("Path/to/log.file",$data);
1 голос
/ 13 сентября 2013
<?php  
$req = 'What i reveive from paypal=====';          
foreach ($_POST as $key => $value) // Loop through the key value pairs
    {         
        $req .= "\n\r$key=$value";                    // Add the key value pairs to the variable
    }
        mail('<Your own email address>','Data',$req,'from: <any email address of your own domain>');//mail yourself    
?>
1 голос
/ 09 марта 2011

Значения записи находятся в массиве $_POST.

Значения получения находятся в массиве $_GET.

Значения Get, post и cookie помещаются в $_REQUEST

Просто сохраните и / или распечатайте содержимое этих массивов по мере необходимости.

Для получения более подробной информации, проверьте:

http://php.net/manual/en/language.variables.superglobals.php

0 голосов
/ 09 марта 2011

У вас есть $_REQUEST, который является комбинацией $_GET и $_POST.

http://php.net/manual/en/reserved.variables.request.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...