loginとregisterにそれぞれリンクをつけて、logoutはjavascriptのsettimeoutで1秒後に、loginにリダイレクト。
register.php
<h1>新規登録</h1> <?php if($status == "ok"):?> <p>登録完了</p><br> <a href="login.php">ログインページ</a> <?php elseif($status == "failed"): ?> <p>エラー:既に存在するユーザ名です。<br> ユーザ名(英数字3~32文字)、推測されにくいパスワード(英数字8~32文字)を入力してください。</p> <form method="POST" action=""> ユーザ名:<input type="text" name="username"> パスワード:<input type="password" name="password"> <input type="submit" value="登録"> </form> <a href="login.php">ログイン</a> <?php elseif($status == "none"): ?> <p>ユーザ名(英数字3~32文字)、推測されにくいパスワード(英数字8~32文字)を入力してください。</p> <form method="POST" action=""> ユーザ名:<input type="text" name="username"> パスワード:<input type="password" name="password"> <input type="submit" value="登録"> </form> <a href="login.php">ログイン</a>
<h1>ログイン</h1> <?php if($status == "logged_in"): header('Location: hoge.php');?> <?php elseif($status == "ok"): header('Location: hoge.php'); ?> <?php elseif($status == "failed"): ?> <p>ログイン失敗</p> <form method="POST" action="login.php"> ユーザ名:<input type="text" name="username" /> パスワード:<input type="password" name="password" /> <input type="submit" value="ログイン" /> </form> <a href="register.php">新規登録</a> <?php else: ?> <form method="POST" action="login.php"> ユーザ名:<input type="text" name="username" /> パスワード:<input type="password" name="password" /> <input type="submit" value="ログイン" /> </form> <a href="register.php">新規登録</a> <?php endif; ?>
hoge.php
<?php session_start(); ?> <?php if(isset($_SESSION["username"])): ?> <p>コンテンツコンテンツコンテンツ</p> <a href="logout.php">ログアウト</a> <?php else: header('Location: login.php'); ?> <?php endif; ?>
logout.php
<h1>ログアウト</h1> <p>ログアウト完了しました<p> <script> setTimeout(function(){ window.location.href = "login.php"; }, 1000); </script>
以下のようにも書けますね。
<?php session_start(); ?> <?php if(isset($_SESSION["username"])): ?> <p><?php echo $_SESSION["username"]; ?>さんの会員ページ</p> <a href="logout.php">ログアウト</a> <?php else: header('Location: login.php'); ?> <?php endif; ?>