#php #post
#php #Публикация
Вопрос:
Я хочу перенаправить пользователя со страницы 1 на страницу 2 с некоторыми данными POST.Страницы 1 и page2 находятся в двух разных доменах, и я контролирую оба из них
Страница 1
<?php
$chars="stackoverflowrules"
?>
Я хочу отправить символы в качестве данных post и перенаправить на страницу 2.
Затем на одной странице 2 я хочу использовать данные POST, такие как
<?php
$token = $_POST['chars'];
echo $token;
?>
Ответ №1:
Я сделал это, используя форму и JS
На странице 1
<?php
$chars="stackoverflowrules";
?>
<html>
<form name='redirect' action='page2.php' method='POST'>
<input type='hidden' name='chars' value='<?php echo $chars; ?>'>
<input type='submit' value='Proceed'>
</form>
<script type='text/javascript'>
document.redirect.submit();
</script>
</html>
На странице 2
<?php
$token = $_POST['chars'];
echo $token;
?>
Ответ №2:
- На странице 1 используйте
curl
для публикации данных на странице 2. - Там где-нибудь сохраните отправленные данные (база данных?).
- Перенаправление со страницы 1 на страницу 2
- Восстановил данные обратно.
Ответ №3:
Вы хотите использовать curl()
для этого.
На page1.php, выполните следующее:
$data = $_POST;
// Create a curl handle to domain 2
$ch = curl_init('http://www.domain2.com/page2.php');
//configure a POST request with some options
curl_setopt($ch, CURLOPT_POST, true);
//put data to send
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//this option avoid retrieving HTTP response headers in answer
curl_setopt($ch, CURLOPT_HEADER, 0);
//we want to get result as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute request
$result = curl_exec($ch);
// now redirect to domain 2
header("Location: http://domain2.com/page2.php");
На странице 2 вы можете получить данные POST:
<?php
$token = $_POST['secure_token'];
echo $token;
?>
Комментарии:
1. Это не будет работать так, как ожидалось, потому что сейчас есть 2 запроса на страницу 2. Одним из них является POST из curl. Второй — GET from
header()
. Вы пытаетесь получить $_POST из последнего, что не сработает.