次のコードを使用して、セッションが存在するかどうか、およびセッションが作成されていないかどうかを確認します。
session_start();
$loginExists='';
$show=1;
if(isset($_SESSION['username'])){
$loginExists = '<div style="color:#006633; font-family: calibri, Times, serif; font-size:1.3em; font-weight:bold; margin-left:4%; margin-top:2%;">You are already logged in!</div>';
$show = 0;
}
elseif (!isset($_SESSION['username'])){
if (isset($_COOKIE['username'])){
$_SESSION['username'] = $_COOKIE['username'];
$loginExists = '<div style="color:#006633; font-family: calibri, Times, serif; font-size:1.3em; font-weight:bold; margin-left:4%; margin-top:2%;">You are already logged in!</div>';
$show = 0;}
Cookieは次のように設定されます。
setcookie('username',$row['username'],time() + 10*24*3600,"/mysite/","");
私の問題は、IE8 / 9でクーキーをクリアすると、Cookieをクリアできないことです。追加フォームに移動できます。FirefoxやChromeでは問題ありません。
インターネットオプション>削除(閲覧履歴)>チェックされたCoookiesに移動してCookieを削除しようとしています。
非常に困惑したATM。
編集:
フォームの追加(セッションのチェック方法):
if (!isset($_SESSION['username'])){
if (isset($_COOKIE['username'])){
$_SESSION['username'] = $_COOKIE['username'];
}
else{
$_SESSION['addForm'] = 1;
header("Location:loginForm.php");
}
したがって、ブラウザを介してCookieがクリアされているかどうかを確認できるように、ログインページにリダイレクトする必要があります。