※ ChatGPTを利用し、要約された質問です(原文:インラインフレーム内のセッション)
インラインフレーム内のセッションの問題と解決方法
このQ&Aのポイント
通常のHTMLファイルのインラインフレーム内に、別サーバーからPHPファイルを取得して表示しています。しかし、フォームの遷移に問題があります。
インラインフレーム内でフォームに入力して送信ボタンを押すと、同じ画面に戻ってしまいます。
セッションがうまく保持されていないために、確認ファイルでセッションをチェックしている部分で問題が発生しています。
通常のHTMLファイルのインラインフレーム内に、別サーバーからPHPファイルを取得して表示しています。
そのPHP自体は簡単なアンケート(フォーム→入力内容確認→送信)なんですが、このフォーム→入力内容確認の遷移がうまくいきません。
セッションでフォーム内の値と送信ボタンの値(sub)を保持し、確認のファイルに
if(@$_SESSION['sub']!=TRUE){
header("location:form.php");
exit();
}else{
(以下略)
}
と記述することで、もしURL直打ちの場合はフォームの入力画面に飛ばされるようにしてあるのですが、インラインフレームの中でフォームに入力して送信ボタンを押すと、強制的に同じ画面に戻ってしまうのです。
直接ブラウザで該当のPHPを見たときは、何の問題もなく動くので、プログラム自体にエラーがあるわけではないと思うのですが・・・。
どうも確認ファイルのif(@$_SESSION['sub']!=TRUE)で、セッションがうまく保持されていないためにheaderで飛ばされてしまっているらしいのですが、インラインフレーム内でセッションを利用するときはどうすればいいのでしょうか?
お礼
回答ありがとうございます。 ご指摘の通りに書き換えてみましたところ、正常に動作しました! 実は以前issetで記述していたのですが、その時は記述にミスがあったらしく動かなかったので書き換えてしまいました。 これで先に進めます。ありがとうございました。