スレッド表示 | フラット表示〕 全トピック 920 件中 45 番目 次≫ ≪前

処理の仕方について

created: 2008-07-13 01:24 | modified: 2008-07-13 21:36 | reply: 3

[4204] 処理の仕方について

user: REIRA | created: 2008-07-13 01:24
本当に初歩的な質問になるのですが

現在PHP/MySQLで会員サイトを制作しているのですが

ログインページでDBからID/PWを引っ張ってきてログイン認証したのですがこの時セッション関数にIDを入れセカンドページは、セッションでログインしていないユーザーは、はじいていますが

ここで問題がでました。

DBテーブルには、フィールドが6項目存在し各ユーザーごとにログインしその情報を表示したいのですが

ログインページですべての情報をセッションで持たせてセカンドページもセッション関数から引っ張るのでは、ないと思うのですが

セカンドページ以降も各ページごとにDBにアクセスしデーターを引っ張り表示するのでしょうか?

そのときログイン認証は、終わっていますのでログインしたときにIDとPWのセッション情報を保持しセカンドページで何かこの情報と照合させる処理を行うのでしょうか?

すいません本当に初歩的なことで
教えていただけないでしょうか?
reply: 4205 返信 編集 削除

[4205] 認証OK後の処理

user: ゆうじ | created: 2008-07-13 14:42
> セカンドページ以降も各ページごとにDBにアクセスしデーターを引っ張り表示するのでしょうか?

パスワードは認証処理以外では必要ないので
セッションに保持するのはユーザを特定できるIDだけにしておいて
リクエストの度にIDをキーにDBに問い合わせる方法を
基本と考えてください。

セッションはブラウザを閉じると切断されますが
保存した値はしばらくサーバー上に残っています。
『万一セッションの値が他のユーザに漏れたとしても安全な値か?』
ってところを基準に判断してください。
パスワードをセッションに残さないのはこのためです。

6項目のフィールドの値についても
同じ基準で判断してみてください。

できることなら、セッションに保存するIDも
認証に使うIDとは別のIDにすればセッションの内容から
認証のIDが漏れることが無くより安全です。

# まあこれは私の考え方なので
# 認証処理を含んだフリーのスクリプトなんかを読んで
# 用途にあった方法を考えてみてください。
Parent: 4204  reply: 4207 返信 編集 削除

[4207] DBとの認証について

user: REIRA | created: 2008-07-13 17:18
ありがとうございます。
なんか先が開けてきました。

1つ質問なのですが
セカンドページでDBにアクセスし残りの6項目のデーターを表示したいのですが

if ($_POST['user']== $user and $_POST['pass'] == $pass){
$_SESSION['user'] = $id;
header("Location:http:member_top.php");
} else {
unset($_SESSION['user']);
header("Location:http:error.php");
}

ここでセッションuser を保持しセカンドページに移動したとき
DBのuserと認証しOKならそのuserの情報を引っ張り出したいのですがどうしても書き方がわかりません。

$result = mysql_query("SELECT * FROM aki where user='"****"'"); 

このあたりで判定さすのでしょうか??

セッションに格納した値とDBにある値が同じなら と言う判定をさせてたいのですが。

調べても私には、理解できないというか何処の部分が私が探している構文なのかわかりません。

よろしくお願いいたします。
Parent: 4205  reply: 4208 返信 編集 削除

[4208] Re. DBとの認証について

user: ゆうじ | created: 2008-07-13 21:36
認証が通っていれば $_SESSION['user'] に
ユーザーを特定する値が入ってるはずですよね。

> セカンドページでDBにアクセスし残りの6項目のデーターを表示したいのですが

member_top.php では、$_SESSION['user'] をキーに
該当するレコードを問い合わせてはどうでしょう。

$sql  = "SELECT * FROM aki WHERE user = '". mysql_escape_string($_SESSION['user']). "'";
Parent: 4207  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 45 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑