すべての処理が自分のサイトで行われる場合、すべてが正常に機能しています。セッション変数は正常に保存および取得されます。
これで、POST データを介して処理される 3 番目の部分の統合ができました。session_start()
各phpファイルの最初の行で呼び出されました。
start_process.php - 次のようにいくつかのセッション変数を設定し、response.php にリダイレクトするサードパーティを呼び出します
$_SESSION["id"] = $id // Echoing these shows the correct values $_SESSION["name"]= $name // Echoing these shows the correct values
response.php - このページはサードパーティからの応答を受け取り、セッション変数からデータを取得しようとします
$id = $_SESSION["id"] // This comes out to be blank $name = $_SESSION["name"] // This comes out to be blank
私の処理ページ、つまりresponse.phpで、セッション値を取得しようとしていますが、セッション変数を取得できません。
SOで検索すると、値を確認することを示唆する投稿はほとんどありません
echo session_id();
これは、最初のページと私のサイトに戻ってくる後のページで同じように異なります. さらに検索すると、次の値を空白にする必要があることがわかります
echo ini_get('session.cookie_domain');
これは確かに空白です。この値が空白であることがわかり、セッションが適切にロードされていないにもかかわらず、スタックしています。
次に何をすべきか教えてください。デバッグはありますか?この問題を解決するためのヒントはありますか?
アップデート
start_process.php
投稿アクションがサードパーティサイトへのURLであるフォームがあります... as
<?php session_start();
$_SESSION["Check"] = "Abc";
echo session_id();
>
<form name="myform" action="http://<ThirdPartyUrl.com>/pathToSomePage.jsp" method="POST">
<!-- some hidden fields with value and some other text fields -->
</form>
respone.php
サード パーティは、POST 変数の出力を直接テストする応答ページに再度ポスト リクエストで応答を返します。ここでは、セッション変数を使用しようとしています。
<?php session_start();
echo $_SESSION["Check"];
echo session_id(); // This is different from the one printed in the start_process.php page
?>
現在、私は共有ホストを使用しており、サードパーティは間違いなく独自のサーバーを持っているため、サードパーティのホスティングが同じサーバー上にあるとは思いません。