忍者ブログ

おやっさんのWEBサイト制作への道

WEBサイト制作ど素人のおやっさんが、HTML、CSS、PHPなど学んでいく技術ブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHP016(会員制掲示板01 パスワードボックス,seesion-start(),$_SESSION[セッション変数名]),mysql_num_rows(),header(’Location:URL/相対パス’)

今度は会員制掲示板を作ります。この教本つくって覚えるPHP入門はログインシステムがおかしいって言うかこんなめんどくさいログインの仕方しないだろうって感じですがとりあえずやります。

サイト構成図
とりあえずサイトマップを作ってみました。

↓login.htmlをchap5ディレクトリの中に作ってみましょう。


<!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" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>2京ちゃんねる</title>
</head>
<body>
<h1>しょぼい掲示板【2京ちゃんねる】</h1>
<p>※一応会員制です。</p>
<hr />
<h2>■ユーザー名とパスワードを入力してください</h2>
<form action="check_login.php" method="POST">
<p>
ユーザ名:<br />
<input type="text" name="user" size="30" />
</p>
<p>
パスワード:<br />
<input type="password" name="pass" size="30" />
</p>
<div id="sendButton">
<input type="submit" value="ログイン">
</div>
</form>
<hr />
</body>
</html>

↓とりあずstyle.cssも作ってみました


body{
background-color: #efefef;

}

input{
width:200px;
}

#sendButton{
text-align: center;
}

#sendButton input{
width:150px;
}

パスワードボックス

inputタグのtype属性、passwordです。入力値は黒丸等の伏字で表示さます。暗号化はされないそうです。


↓こんな感じで画面ができます。(※画像はクリックで拡大できます。)

ログイン画面


↓check_login.phpを作ります。


<?php
// セッションの開始
session_start();

$user = $_POST['user'];
$pass = $_POST['pass'];

// MySQLへの接続
$conn = mysql_connect('localhost','sample_user','sample_pass');

if($conn){
// データベースの選択
mysql_select_db('sample_db',$conn);

// データベースへのお問い合わせSQL文
$sql = 'SELECT user_name FROM user_tb
WHERE login_name = "'.$user.'"
AND login_password = "'.$pass.'"';

// SQL文の実行
$query = mysql_query($sql, $conn);
}

// 認証
if(mysql_num_rows($query) == 1){
// ログイン成功
$login = 'OK';
// データの取り出し
$row = mysql_fetch_object($query);
// 表示用ユーザー名をセッション変数に保存
$_SESSION['name'] = $row->user_name;
}else{
// ログイン失敗
$login = 'Error';
}

// セッションを変数に記録
$_SESSION['login'] = $login;

// 移動
if($login == 'OK'){
// ログイン成功:ログイン画面へ
header('Location: menu_message.php');
}else{
// ログイン失敗:ログインフォーム画面へ
header('Location: login.html');
}
?>

seesion-start()

セッションを扱うときは必ず記述すします。書き込み/読み込みどちらも記述は一緒です。ファイルの最初に実行します。(HTMLタグを含む)

$_SESSION[セッション変数名(※任意です。)]

ログインフォームからユーザ認証プログラムへ「ユーザー名」「パスワード」を送信し、ログインに成功すればセッションを生成しログインに成功すればセッションを生成し、ブラウザのCookieにセッションIDを書き込みます。セッション変数をセッションIDをリンクさせてサーバー上に保存します。ページ移動時はブラウザーのCookieからセッションIDを取り出し、セッションを生成した
ブラウザーかどうかを判断します。セッションを生成したブラウザ(同じセッションIDを持つブラウザー)であれば、サーバーに保存されているセッション変数へのアクセスが可能です。こんな感じでログインが維持されています。これはそのセッション変数です。


mysql_num_rows()

引数のデータ件数を取得です。
よくわかりませんがmysql_query()の戻り値、ここでは「1」の時trueです。その他はたぶんfalseを返します。


header(’Location:URL/相対パス’)

httpヘッダを送信する。ほかのページに飛ばすってことです。リダイレクトってやつです。コンテンツタイプ指定、文字コード指定。って、メモってあるんですけど何のことかわかりません。

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

フリーエリア

にほんブログ村 IT技術ブログ HTML/CSSへ にほんブログ村 IT技術ブログ PHPへ

最新コメント

[11/23 テスト]

プロフィール

HN:
おやっさん
性別:
非公開

バーコード

ブログ内検索

P R

忍者ツールズプロフィール

忍者ツールズプロフィールは終了しました

カウンター