2016-02-08 2 views
0

После успешной оплаты данные страницы на странице моего сервера. Там я могу только читать данные поне удалось прочитать данные в почтовом методе в php

foreach($_POST as $key => $value) 
    { 
    file_put_contents($filename, "$key: $value\n", FILE_APPEND);   
    } 

это PHP код и записать в текстовый файл но не получают каких-либо данных по обычной переменной пост.

Например, статусный ключ, отправленный через данные сообщения, если я вызвал через $ _POST ['status'], я не получаю никакого значения через него.

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

документации определяют отправки данных в методе пост и шифровать типа в применении/х-WWW-форм-urlencoded

Мой PHP файл кода Где разместить данные перенаправлять

<?php 
    session_start(); 


echo "post Data:"; print_r($_POST); //Nothing Show 


$filename = "webhook_data2.txt"; 

foreach($_POST as $key => $value) 

{ 

    file_put_contents($filename, "$key: $value\n", FILE_APPEND); 


} 

file_put_contents($filename, "----------\n", FILE_APPEND); 

?> 

Это работает и вне положенный текстового файла, как показано ниже:

buyer_name: xxxx xxxxx xxxxx 
offer_slug: xxxx xxxxxx xxxxx 
currency: INR 
custom_fields: {"Field_42842": {"value": "[email protected]", "required": "on", "type": "char", "label": "Email Mentioned on the Form"}, "Field_85492": {"value": "XXX XXX XXX", "required": "on", "type": "char", "label": "Student Name"}} 
status: Credit 
quantity: 1 
variants: [] 
payment_id: MXXXXXXXXXXXX 
buyer: [email protected] 
amount: xxxx.00 
fees: 0.xx 
buyer_phone: ############ 
offer_title: ###### #### ######### 
mac: ****************** 
unit_price: ##.00 
+1

где ваша HTML-форма? укажите его –

+1

Попробуйте: var_dump ($ _ POST) 'или' print_r ($ _ POST) 'и посмотрите, установлено ли что-либо. –

+0

уверены, что« статус »- это правильное имя ключа? – simon

ответ

0

Проверьте Сообщение отправить

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $data = ''; 
    foreach($_POST as $key => $value) { 
      $data .= "$key: $value" . PHP_EOL; 
    } 
    //write data 
    file_put_contents($filename, $data); 
} else { 
    die('POST REQUEST IS NOT SEND'); 
} 
  1. Получение данных и последующей записи его в файл один раз быстрее, чем писать его в цикле.
  2. Если пост не тип запроса (не отправлять), то он потерпит неудачу, и он будет отображать «сообщение просьба не посылать»
  3. Если 2 появляется затем проверить, если ваш метод формы устанавливается в POST и URL действия является верный.

Кроме того, если ваши данные POST является сырым, то вы можете прочитать его из потока имени php://input с функциями, которые считывают из потока, например

file_get_contents(`php://input`); 

читать RAW пост и сохранить его, вы можете использовать код ниже

file_put_contents($filename, file_get_contents(`php://input`)); 

Когда ваш запрос в необработанном виде, например JSON/XML не будет отображаться в $ _POST автоматически вам нужно декодировать входные данные по своему усмотрению, например, если это JSON затем использовать json_decode, если это XML то вы можете использовать DOM или simplexml. Из инструкции:

$_POST

Ассоциативный массив переменных, передаваемых в текущий скрипт через метод HTTP POST при использовании применение/х-WWW-форм-urlencoded или многокомпонентные/form-данные, как HTTP Content -Тип в запросе.

+0

данные отправляются другим сервером, который перенаправляет на мое имя страницы receiver2.php. Где только я могу записать данные в текстовое имя файла data2.txt, но не могу получить данные обычной переменной $ _POST. Я уже попробовал этот файл_get_contents ('php: // input'); но никакого результата для меня. – Avinash

+0

, если это не сработает, тогда данные не отправляются в этот файл – Robert

+0

, но отсюда я могу записать данные в текстовый файл. См. Мой отредактированный пост. Там я отправляю оба файла. – Avinash

0

Фактически иногда $ _POST пуст по разным причинам.Когда это происходит со мной всегда работать, чтобы читать php://input как $postdata = file_get_contents("php://input");

$ PostData теперь JSON-строку, которую можно преобразовать в массив, как:

$arr = json_decode($postdata, true); 

Тогда вы должны быть в состоянии сделать:

foreach($arr as $key => $value) { file_put_contents($filename, "$key: $value\n", FILE_APPEND);
}

+0

Я попробовал эти вещи просто посмотреть на это: $ post_data = file_get_contents ('php: // input'); print_r ($ post_data); --------- ничего в этом нет. $ rawPostBody = file_get_contents ('php: // input'); $ postData = json_decode ($ rawPostBody, true); \t print_r ($ postData); ------------ ничего в этом. – Avinash

Смежные вопросы