0

私はここ数時間セッションを機能させるために費やしました、私が抱えている問題は、ページを開いて実行されるこのセッションチェックを持っていることです、それはすべて正常に機能します...
しかし、ユーザーが送信をクリックするとページ上でも同じセッションチェックが実行されるため、ページでエラーがスローされます。

セッションチェックは次のとおりです。

$estate_id="";

if (isset($_SESSION['addon_estate_id'])) {
    $estate_id = $_SESSION['addon_estate_id'];
    unset($_SESSION['addon_estate_id']);
} else {         
    $reg_error = "You need to select a house first.";
    $_SESSION['error'] = $reg_error;
    header("Location: addons.php");
    exit;    
}

ユーザーが送信ボタンをクリックすると実行されるコードは次のとおりです。

if (isset($_POST['add_browse_submit'])) {        
    $addon_selected_id = $_POST['addon_hidden_id'];
    $addon_hidden_estate_id = $_POST['addon_hidden_estate_id'];

    $_SESSION['addon_sess_id'] = $addon_selected_id;
    $_SESSION['addon_estate_detail_id'] = $addon_hidden_estate_id;

    header('Location: addon_detail.php');
    exit;
}

基本的に、ユーザーが送信ボタンをクリックすると、session checkコードも実行され、が発生しreg_errorます。elseセッション内チェックでコードをコメントアウトすると、すべてが正常になり、スクリプトは正常に実行さaddon_detail.phpれます。

それがこれをしている理由は何ですか?

ありがとう

4

2 に答える 2

1

あなたの投稿処理コードはセッションチェックの下にあると思います。上記の投稿チェックを移動して、コードが実際に設定されていることを確認する$_SESSION['addon_estate_id']と、エラーは発生しません。

それはこれがあなたの目標であることを前提としています。例で設定すると思いますが$_SESSION['addon_estate_id']、誰にわかりますか?

于 2012-11-20T00:23:34.710 に答える
0

ページへの最初の訪問(ユーザーがすでに$_SESSION['addon_estate_id']設定していると仮定すると、その変数をクリアしてに保存し$estate_idます。2回目の訪問(フォームの送信後)では、$_SESSION['addon_estate_id']設定されていないことがわかり、エラーがスローされます。

2番目のブロックで参照$estate_idしていないので、おそらく必要ありませんか?最初のページの訪問で設定を解除する理由はありますか?

于 2012-11-20T00:23:21.167 に答える