人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPのPear authについて質問です(PHP5 MySQL5)

PHPとMySQLの勉強を兼ねてサイトを作っています。
商品のレビューサイトです。例えば「りんご」「みかん」のような商品があって、それに対して評価(レビュー)ができるサイトです。

これをAmazonや@コスメのような会員制のレビューサイトにしたいです。
自分のスキルでは無理と思っていたのですが、Pear authを使えば出来るのでは?と思っています。

Pear authの仕組みは、
1.IDとパスワードをフォームで入力してサイトの中に
2.そしてその情報をログアウトするまでずっと引き継げる
3.レビューを書き込む際に自分の会員IDをMySQLに飛ばせる

このようなものだと期待しています。1と2はともかく3に関しては可能でしょうか?

具体的には、

INSERT INTO review (reviewer_id , review_contents)
VALUES ('$reviewer_id','$review_contents')

このようなSQLでMySQLにデータを格納したいのですが、変数$reviewer_idにログインしている人の会員IDを入れるような事は可能なのでしょうか?


漠然とした質問で申し訳ないのですが、簡単で構いませんのでアドバイス下さい。
自分で調べる際にスムーズに進みます。

みなさんよろしくお願いします。

●質問者: tokyosmash
●カテゴリ:インターネット ウェブ制作
✍キーワード:@コスメ Amazon MySQL Pear PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ●
●100ポイント ベストアンサー

基本的なPEAR::Authの使い方は、Pear::Auth::Auth()で確認してください。

ログイン済みのユーザ名はAuth::getUsername()で取得可能です。

この内容をSQLのINSERTで使うだけでご要望の処理は可能です。

今回の質問の場合、複数テーブルを使いますよね。

その場合、重要になってくるのがDBの設計です。

どのような情報を、どのテーブルに持ち、相互の関連付けはどのように行うのかを考えなければいけません。

以下にサンプルを載せておきます。(あくまでもサンプルですのでご注意ください。)

列名 説明 補足事項(制約など)
id ユーザID primary key, auto_increment
name ユーザ名 unique
password パスワード MD5ハッシュ値を格納するのが一般的
列名 説明 補足事項(制約など)
id アイテムID primary key, auto_increment
name アイテム名
description アイテム説明
列名 説明 補足事項(制約など)
id レビューID primary key, auto_increment
item_id 商品ID foreign key (itemテーブルのidを参照)
reviewer_id レビューしたユーザID foreign key (userテーブルのidを参照)
review_contents レビュー内容

上記のようにした場合、reviewを追加する場合には、reviewテーブルにAuth::getUsername()で取得した名前をreviewer_idとしてINSERTすれば良いです。

PEAR::Authには他にも便利な機能が沢山ありますので、PEARのマニュアルを一通り確認してみてください。

参考になれば幸いです。

◎質問者からの返答

おお、Auth::getUsername()で出来るのですね。まさにピンポイントで欲しかった情報です。ありがとうございます。ちょっと敷居は高そうですけど勉強と思ってPEAR::Authにチャレンジしてみようと思います。


テーブル設計に関しては自力で作れるようになってきました。全てのテーブルに第3正規化を施しているつもりです。その辺はACCESSで遊んでいた時になんとなく身に付いていたようです。


ご丁寧にありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ