これについて以前に投稿したところ、問題を修正したと思っていた間違いを修正する良い反応が得られました。残念ながらそうではありませんでした.私の古い投稿は十分に乱雑であるため、問題を再投稿します.
コード (簡略化):
<?php
session_start();
if (!$_SESSION["companyid"]) {
header("location: http://www.somepage.com");
}
mysql_connect("localhost", "name", "password") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$companyid = $_SESSION["companyid"];
$_SESSION["youtubeurl"] = mysql_real_escape_string($_POST["youtubeurl"]);
$_SESSION["logourl"] = mysql_real_escape_string($_POST["logourl"]);
$_SESSION["plan1head"] = mysql_real_escape_string($_POST["plan1head"]);
$_SESSION["plan1description"] = mysql_real_escape_string($_POST["plan1description"]);
$_SESSION["plan1headline1"] = mysql_real_escape_string($_POST["plan1headline1"]);
$_SESSION["plan1price1"] = mysql_real_escape_string($_POST["plan1price1"]);
$_SESSION["plan1headline2"] = mysql_real_escape_string($_POST["plan1headline2"]);
$_SESSION["plan1price2"] = mysql_real_escape_string($_POST["plan1price2"]);
$_SESSION["plan1price1type"] = mysql_real_escape_string($_POST["plan1price1type"]);
$_SESSION["plan1price2type"] = mysql_real_escape_string($_POST["plan1price2type"]);
if(isset($_POST["submitpreview"])) {
$companyid = $_SESSION["companyid"];
$youtubeurl = $_SESSION["youtubeurl"];
$logourl = $_SESSION["logourl"];
$plan1head = $_SESSION["plan1head"];
$plan1description = $_SESSION["plan1description"];
$plan1headline1 = $_SESSION["plan1headline1"];
$plan1price1 = $_SESSION["plan1price1"];
$plan1headline2 = $_SESSION["plan1headline2"];
$plan1price2 = $_SESSION["plan1price2"];
$plan1price1type = $_SESSION["plan1price1type"];
$plan1price2type = $_SESSION["plan1price2type"];
}
?>
現在、これに関連する 3 つのページ/インスタンスがあります。
- 変数をプレビュー ページに渡すフォームを含むページ
- プレビューページ
- 送信されたプレビュー ページ (ページが更新されたことを意味します)
ユーザーには、さまざまなテキスト フィールドとドロップダウン メニューで満たされた独自のページがあります (ページ 1)。ユーザーはこのページを更新できます。フォームに入力して送信すると、それらの変数がプレビュー ページに渡されます。プレビュー ページが気に入った場合は、それを確認します (「submitpreview」を実行するフォームを送信します)。
ここに私の問題があります: フォームによって入力されるすべてのセッション変数 (最初のログイン時にセッションに保存される会社 ID 以外のすべて) は、すぐにセッション変数にダンプされます。プレビュー ページの下部でこれらのセッション変数をエコーアウトしました (この時点で空でないことを確認するため)。プレビュー ページに到達すると、その内容が適切にエコーアウトされます。ただし、ユーザーが変更を確認し、submitpreview が設定されていると、それらのセッション変数が突然空になります。つまり、フォーム変数によって埋められたすべてのセッション変数は空です。ページが更新される前に正常にエコーアウトされたセッション変数は、companyid 変数を除いてなくなりました。companyid セッション変数はまだ問題ないので、したがって、(1)サーバー上のセッションが正しく機能している必要があり、(2)フォーム変数をセッションにダンプするか、それらの変数を取得するコードに問題があることを知っています。なぜこれが起こっているのかについての理論はありますか?
これは私をかなりイライラさせます。この問題について、ご理解とご協力を賜りますようお願い申し上げます。