私のサイトには友人を招待するためのフォームがあります。これは単純なテキストフィールドと送信ボタンです。エラーがある場合は、このページにリダイレクトし、セッション変数が設定されている場合はエラーメッセージを表示します。セッション変数の設定を解除する際の問題
if (isset($_SESSION['invite_error'])) {
echo $_SESSION['invite_error'];
unset($_SESSION['invite_error']);
}
ただし、このページから離れて戻ってきても、エラーメッセージは表示されています。私が離れてもう一度戻ると、それは完了します。私はそのページをリフレッシュするときと同じです... 1リフレッシュはそれを取り除くことはありませんが、2はそれを取り除きます。私はセッション全体を破壊することはできません、私はちょうどこの1つの変数を解除したいです。 PHPのバージョンは5.2.5ビルド6、レジスタグローバルはオフです、私はこのページの一番上にsession_start()を呼び出していますが、ノーキャッシュヘッダも使ってみました。
編集:完全なコードを追加しました。
<?php
ob_start();
session_start();
$user_id = $_SESSION['user_id'];
$user_name = $_SESSION['user_name'];
if ($user_id==null) header("Location: /login.php");
if (isset($_SESSION['invite_errors'])) {
$error = $_SESSION['invite_errors'];
unset($_SESSION['invite_errors']);
}
require_once("ui/header.php");
?>
<div id="invite" class="content">
<?php if($error) { ?>
<div class="errors round">
<?php echo $error ?>
</div>
<?php } ?>
<h3>Invite Your Friends</h3>
<div class="invite-form">
<form method="post" action="controllers/invite.php">
<div class="row">
<textarea class="txt-area" name="emails" id="emails" rows="5"></textarea>
<div class="tip">Separate multiple email addresses with ,</div>
</div>
<div class="row-submit">
<input type="submit" name="submit" id="submit" class="submit-btn" value="Submit" />
</div>
</form>
</div>
</div>
<?php
require_once("ui/footer.php");
?>
未設定($ _ SESSION ['invite_error']; =>未設定の権利)はありません。私はそれがコピーの貼り付けの問題だと思います。 – Macarse
リクエストのどこにAJAXを使用していますか? –
エラーは$ _SESSION varを設定解除する前に設定されている別の変数にある可能性がありますか? – alex