セッション変数にエラーメッセージが1回だけ表示されるようにしました。私の方法は、それがそこにあるかどうかを確認し、それをエコーして後に解除することです。エコー後にセッション変数を解除できません
<div class="signin">
<form name="signuser" action="php/signin_user.php" onsubmit="return validateForm()" method="POST">
<input type="text" name="email" placeholder="E-mail" value="<?php echo $_SESSION['signin']['email']; ?>"><br>
<input type="password" name="password" placeholder="Password"><br>
<input type="submit" value="Sign in">
</form>
<br>
<div id="login-error" style="display: none"></div>
<?php
if(isset($_SESSION['msg']['signin-error'])) { \t
echo '<div id="login-php-error">';
echo '<p>'.$_SESSION['msg']['signin-error'].'</p>';
echo '</div>';
}
if(isset($_SESSION['msg']['signin-error'])) {
unset($_SESSION['msg']['signin-error']);
}
if (isset($_SESSION['signin']['email']))
unset($_SESSION['signin']['email']);
?>
</div>
私が試してみました= "" だけでなく!
<?php
if($_SESSION['msg']['signin-error'] != "") { \t
echo '<div id="login-php-error">';
echo '<p>'.$_SESSION['msg']['signin-error'].'</p>';
echo '</div>';
}
if($_SESSION['msg']['signin-error'] != "") {
unset($_SESSION['msg']['signin-error']);
}
if ($_SESSION['signin']['email'] != "")
unset($_SESSION['signin']['email']);
?>
何も機能しません。私は私のすべてのページにsession_start()を持っています。各リフレッシュがまだ表示されます。
EDIT:
は明らかに私はPHPに新しいですし、私は今、ユーザーからのフィードバックを与えるためにセッションを使用することは愚かであることがわかります。私はエラーメッセージを表示するためにGETを使用して終了し、それは私の必要性に最適です。助けてくれてありがとう!
まだセッションを開始していない場合は、セッションを開始する必要があります。 –
<?php session_start(); ?>すべての私のページオフフック –
エラーをチェックしてください。http://php.net/manual/en/function.error-reporting.php - HTMLソース、 'var_dump()'、echoはすべて便利なデバッグツールです。 –