Как сохранить данные формы перед отправкой на URL - PullRequest
2 голосов
/ 08 июля 2019

Я пытаюсь сохранить данные из ФОРМЫ в файл.Но когда «отправить» на внешний URL, мой скрипт не видит $_POST array.Как сохранить $_POST, который я отправляю, не получают.

Я могу сохранить $_POST полученных данных (я отправил в свой скрипт и сохранил как post_array.txt).Но я должен отправить его на внешний URL.Я пытался получить и повторно отправить сохраненное $_POST с помощью cURL, но не могу выполнить перенаправление с $_POST.Таким образом, мой клиент остается на моей странице, но его следует перенаправить на страницу оплаты с данными $_POST.

html : <form method="POST" action="cert.php">
php :  cert.php

file_put_contents('post_array.txt', $_POST, FILE_APPEND);
$url = 'https://sandbox.przelewy24.pl/trnDirect';
$fields =['p24_merchant_id' => $_POST['p24_merchant_id'],
        'p24_session_id' => $_POST['p24_session_id'],
        'p24_amount' => $_POST['p24_amount'],
        'p24_currency' => $_POST['p24_currency'],
        'p24_sign' => md5($_POST['p24_session_id'].'|'.$_POST['p24_merchant_id'].'|'.$_POST['p24_amount'].'|'.$_POST['p24_currency'].'|'.$_POST['p24__sign'])];

//open connection
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
// this cURL dosnt have a redirect option coz it doesnt work for me :(

// execute!
$response = curl_exec($ch);
file_put_contents('response.txt', $response, FILE_APPEND);
// close the connection, release resources used
curl_close($ch);

Поскольку cURL не работает должным образом, я хочу напрямую отправить $ _POST сделать внешнюю страницу.(это работает хорошо, но я не сохранил $ _POST в моем файле) Как сохранить $ _POST без отправки данных на мой сервер / скрипт?

1 Ответ

0 голосов
/ 08 июля 2019
  • Вы можете сделать перенаправление со статусом http 307 developer.mozilla.org/en-US/docs/Web/HTTP/Status/307 В этом случае также будет перенаправлено тело сообщения.
  • Другой вариант - сделать это с помощью js, сначала сделать запрос на сервер, получить успешный ответ, а затем сделать второй запрос, используя js, на внешний URL-адрес методом POST. Возможно, вам понадобится скрытая форма, чтобы сделать это в браузере.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...