私は自分のサイトにあるフォームを持っています。フォームが送信されると、その情報を内部 (または外部) Web サイトに POST し、ブラウザーをその内部 (または外部) Web サイトにリダイレクトする必要があります。
フォームは次の場所にあります。https://www.mysite.com/form.php
<?php
$urlToPostTo = 'https://www.mysite.com/postPage.php';
$urlToRedirectTo = 'https://www.mysite.com/redirectPage.php';
$curlConnection = curl_init($urlToPostTo);
curl_setopt($curlConnection, CURLOPT_POST, true);
curl_setopt($curlConnection, CURLOPT_POSTFIELDS, $valuesToPost);
curl_exec($curlConnection);
curl_close($curlConnection);
header("Location: $urlToRedirectTo");
exit;
?>
フォームは CURL を使用して正しく送信され、最終的に表示されるページは です$urlToRedirectTo
が、ブラウザに表示される URL は依然としてmysite.com
URL のままです。
POST ページとリダイレクト ページが外部ドメインにある場合、すべて正常に動作します。ブラウザの URL が変わります。この奇妙な動作をするのは、同じドメインの URL の場合だけです。通常は外部 URL に投稿されますが、別のコードを記述しなくても内部 URL の場合に正しく機能する必要があります。
注: 投稿先/リダイレクト先の URL は変数として表示されます。内部ドメインと外部ドメインのどちらを指すかはわかりません。
内部リダイレクトを正しく処理する方法 (ブラウザーの URL を更新する) に関するアイデアはありますか?