[PHP-users 20371]掲示板内のセッション管理
hira
hirayama @ npweb.com
2004年 2月 14日 (土) 19:32:01 JST
初めまして。いつもこのMLでお世話になっていますhiraと申します。
ちょっと困ったことが発生したので皆様のお力をお貸ししていただけたらと思い、投
稿しました。
この度、会員しか書き込めないような(その他のユーザーは閲覧のみ)掲示板を設置
したいと思い、改造可能なフリーの掲示板に手を加えてみました。
会員のIDとパスワードはDBで管理し、トップページで認証させるように作りました。
認証後、セッション変数を登録し掲示板にアクセスさせました。
〜〜トップページ〜〜
認証後処理
@session_register("mem"); //$men をセッション変数として登録
$mem = 'on'; //$mem にセッションキーである'on'を登録
掲示板の内容を見て、会員しか書き込めないようにする簡単な方法を考え、浮かんだ
方法が「セッション変数を持ってないユーザーは書き込み時にエラーではじく」
でした。
幸い、掲示板のソースには書き込みチェックの関数があったので付け加えました。
〜〜掲示板プログラム〜〜
書き込みチェック関数
function add_chk($root=0, $oya=0, $name, $email, $subj, $com, $url, $pass,
$email_reply, $no=''){
global $REQUEST_METHOD,$PHP_SELF;
〜〜この部分を加えました。〜〜
if($mem != "on"){
$this->error = "会員以外の方は書き込みすることが出来ません。mem=$mem";
return false;
}
〜〜ここまで〜〜
if($REQUEST_METHOD != "POST") {
$this->error = "不正な投稿をしないで下さい";
return false;
}
if($url && !ereg("^http://", $url)){
$this->error = "URLはhttp://から記入してください";
return false;
}
〜〜以下略〜〜
クラスで$memを宣言し、掲示板のソースの頭部分でセッション処理を開始し、$memの
内容を出力したところ、ちゃんとonが出力されたのにもかかわらず、書き込みチェッ
クの部分で$memの値が渡っていないのです。(よって会員でアクセスして書き込みし
てもエラーではじかれるのです。)
初歩的な質問かもしれませんが、お力をお貸ししていただけたらと思います。
ちなみに使用した掲示板は「レッツPHP!さんのツリーBBS」です。
(当環境)
PHP4.0.4 + MySQL3.23.22
PHP-users メーリングリストの案内