back

ページ遷移、クッキー、セッション (7/8)

■ログインしている時だけページを表示する

続いて、index2.phpです。これは、ログインされているかどうかをチェックし、ログイン時だけページを表示させてみます。下にサンプルコードを掲載しておきます。

ここでは、まず@session_startした後、登録ユーザーのアカウントとパスワードを$ok_account$ok_passに用意します。そして、$SESSIONからaccountpassの値をそれぞれ取り出し、値をチェックして、アカウントとパスワードが正しければ、$flgという変数をtrueにしています。これがログインOKかどうかを示す変数で、これがtrueならログインしている、falseならしていないとなります。

ログインしていないときには、echoでエラーメッセージと、index.phpに戻るリンクを主力し、最後に「exit」をしています。これは、「ここでスクリプトの実行をやめる」ためのものです。exitすると、それ以降にあるものはすべて実行されません。PHPのスクリプトのみならず、書かれているHTMLのコードもすべて出力されないのです。つまり、ログインしていないと、ここに用意されたページそのものが表示されなくなる、というわけです。

ここではechoでエラーを書いてexitする、といった対応をしましたが、やり方はもっといろいろとあります。エラーページにリダイレクトしたり、ログインページに戻したりするのもよいでしょう。そのあたりは、いろいろ応用を考えましょう。


(by. SYODA-Tuyano.)

※リストが表示されない場合

AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。

<?php
	@session_start();
	
	// ACCOUNTとPASS
	$ok_account = "admin";
	$ok_pass = "kanri";
	
	// ログインチェック
	$flg = false;
	$account = $_SESSION['account'];
	$pass = $_SESSION['pass'];
	if ($account == $ok_account and
			$pass == $ok_pass){
		$flg = true;
	}
	// ログインしてないときの処理
	if (!$flg){
		echo "<html><body><h1>NOT LOGIN!!!</h1>";
		echo '<a href="./index.php">back to login page.</a>';
		echo "</body></html>";
		exit;
	}
?>
<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
		xml:lang="ja" lang="ja"> 
	<head> 
		<meta http-equiv="Content-Type"
			content="text/html; charset=UTF-8" /> 
		<title>sample page</title>
	</head>
	<body>
		<h1>Index2.php!</h1>
		<p>[Account: <?php echo htmlspecialchars($account); ?>]</p>
		<p>新しく用意したページです。</p>
		<hr>
	</body>
</html>




   

記事のリストに戻る



PC Site G+ mail