[PHP-users 22849]Re: ログイン画面作成について

Y.Okazaki you2 @ tql.jp
2004年 7月 28日 (水) 19:13:20 JST


岡崎@BBYです

> ログイン画面でIDとパスワードを入力してログインするとメニュー画面が出るよう
> に作りたいと思っています。メニュー画面が出て左半分にメニューの項目を表示さ
> せメニュー項目にクリックすると右半分が出るように表示させたいんですがそれは
> どういうプログラムを作ればいいですか?教えてください。

個人的にはmysqlとか使いたいんですがテキストで出来るようにしてみました。
下記のもので上記の要求(←目的のことを指します)を満たせるかと思います。



.passwd (認証データ:タブ区切りでid,pw,名前)
------------------------------------------------------------
hoge	fuga	ほげほげ
baseball	nabetsune	やきゅう
player	ignore	せんしゅ
fan	ignore	ふぁん
------------------------------------------------------------


index.html (ID/PWの入力フォーム画面)
------------------------------------------------------------
<form action=auth.php method=post>
id:<input name=id><br>
pw:<input type=password name=pw><br>
<input type=submit value="ログイン">
</form>
------------------------------------------------------------


auth.php (認証ページ) --- タブ区切りのパスワードファイル.passwd
------------------------------------------------------------
<?
if($_POST["id"]){print "id未入力";exit;}
if($_POST["pw"]){print "pw未入力";exit;}
$auth=0;
$lines = file(".passwd");
foreach ($lines as $line) {
  $data = explode("\t",$line);
  if($_POST["id"]==$data[0] && $_POST["pw"]==$data[1]){
    $auth=1;
    $name=$data[2];
    break;
  }
}
if(!$auth){print "id/pwが違います";exit;}
session_start();
$_SESSION["ses"]["id"]=$_POST["id"];
$_SESSION["ses"]["pw"]=$_POST["pw"];
$_SESSION["ses"]["name"]=$name;
$_SESSION["ses"]["stat"]=1;
$sid = session_id();
header("Location: {$_SERVER["SERVER_NAME"]}".dirname($_SERVER["SCRIPT_NAME"])."/frame.php?PHPSESSID=$sid");
?>
------------------------------------------------------------


frame.php (フレーム設定画面)
------------------------------------------------------------
<?
session_start();
if(!$_SESSION["ses"]["stat"]){print "ログインしなおしてね";exit;}
print <<<EOF
<frameset cols="170,*" border="0" framespacing="0" bordercolor="#FFFFFF" frameborder="NO">
  <frame src="menu.php?PHPSESSID=$sid" name=menu marginwidth=0>
  <frame src="top.php?PHPSESSID=$sid" name=main>
</frameset>
EOF;
?>
------------------------------------------------------------


menu.php (左側のメニューページ)
------------------------------------------------------------
<?
session_start();
if(!$_SESSION["ses"]["stat"]){print "ログインしなおしてね";exit;}
print <<<EOF
<base target=main>
ようこそ {$_SESSION["ses"]["name"]} さん<p>
<a href="xxx.php">ぺーじ1</a><br>
<a href="xxx.php">ぺーじ2</a><br>
<a href="xxx.php">ぺーじ3</a><br>
EOF;
?>
------------------------------------------------------------


top.php (右側のページ)
------------------------------------------------------------
<?
session_start();
if(!$_SESSION["ses"]["stat"]){print "ログインしなおしてね";exit;}
print <<<EOF
ようこそ {$_SESSION["ses"]["name"]} さん
EOF;
?>
------------------------------------------------------------



もっとキレイに書く人は沢山いるかと思いますが^^;


#「過去ログ見よう」と言っても、見て分かるんでしょうかとか思ったりする。
# 僕なら分からないです。アホなので探し方も的確に出来ませんから。^^;
# というか、僕が普段使う障害票には「再発の可能性−有/無」があります。
#「無知が悪い」という風習がありますがSEの観点から考えるとそれってどうですか?
# 僕はこんな思いっきり的を外したような質問があっても仕方ないのかもって思います。^^;


**************************************
       Y.Okazaki : you @ hiroba.net
**************************************



PHP-users メーリングリストの案内