こいちゃんの趣味全開!!

クリエイターズネットワーク参加サイトのひとつ。趣味を書き綴ります。そこのあなた、お願い、ひかないでーっ。

/include/config.php

2012.11/3 by こいちゃん

データベースへの接続設定を保存・整形するスクリプト。

<?php
#設定ファイル
#上にあるものほど重要な設定です。

#データベース接続情報
$dbtype   = 'mysql';			#今は変更してもエラーになるだけです。
$hostname = 'localhost';		#データベースのホスト名
$bbs_user = 'bbs';			#データベースユーザー
$bbs_pass = '';				#データベースパスワード
$bbs_db   = 'bbs';			#データベース名

#通常、表示する記事数(件)。最新$load_max件表示します。
$load_max = 20;

#再読み込みまでの時間(秒)
$reload_time = 10;

#Readonlyで使っているページャの設定
$pager_opt = array(
	'totalItems'   => NULL,			#アイテムの総数 変えないでください。
	'perPage'      => 100,			#1ページに表示するアイテムの数
	'delta'        => 5,			#リンク先として表示する数
	'mode'         => 'Sliding',		#リンク表示モード
	'httpMethod'   => 'GET',		#HTTPメソッドに何を使うか
	'prevImg'      => '&lt;戻る',		#戻るリンクに使う文字列
	'nextImg'      => '&gt;進む',		#進むリンクに使う文字列
	'firstPagePre' => '',			# "[" を表示させない
	'firstPageText'=> '&lt;&lt;最初',	#先頭のページへのリンクに使う文字列
	'firstPagePost'=> '',			# "]" を表示させない
	'lastPagePre'  => '',			#
	'lastPageText' => '最後&gt;&gt;',	#最後のページへのリンクに使う文字列
	'lastPagePost' => '',			#
	'clearIfVoid'  => FALSE,		#1ページしかない場合にリンク先を表示するか
	'separator'    => '|',			#ページリンク同士に挟む文字列
	'linkclass'            => 'pager-link',	#リンクの<a>のCSSクラス名
	'curPageLinkClassName' => 'pager-now',	#現在のページのCSSクラス名
	'spacesBeforeSeparator'=> 1,		#separatorの前にいくつ空白を挟むか
	'spacesAfterSeparator' => 1,		#separatorの後ろにいくつ空白を挟むか
);


##### 以下は実際に使うための設定変数代入・データベース接続部分です。
##### 基本的に編集しないで下さい。

if(!(is_int($load_max) and $load_max > 0)) {
	$load_max = 20;
}

if(!(is_int($reload_time) and $reload_time > 0)) {
	$reload_time = 60;
}

#authテーブル接続情報(pear::DBフォーマット Pear::Auth用)
$auth_connect_pearDB = array(
	'cryptType' => '',
	'dsn' => $dbtype.'://'.$bbs_user.':'.$bbs_pass.'@'.$hostname.'/'.$bbs_db,
#直接編集される方はこちら
#	'dsn' => 'mysql://<db-username>:<db-passwd>@<db-host>/<db-name>',
	'table' => 'auth',
	'usernamecol' => 'username',
	'passwordcol' => 'password'
);

#DB接続 (PDO)
#$db = new PDO($bbs_connect['dsn'], $bbs_connect['user'], $bbs_connect['pass']);
$db = new PDO($dbtype.':host='.$hostname.'; dbname='.$bbs_db, $bbs_user, $bbs_pass);
?>

このスクリプトで設定している項目は次の4点です。

  1. データベース接続情報
  2. /wwwroot/bbs.phpで表示する記事数
  3. /wwwroot/bbs.phpにて新しい記事があるか、自動的にページを更新する間隔
  4. /wwwroot/readonly.phpで使うページャの設定

まず5行目から39行目でデータを変数に格納し、42行目以降で変数内の値を実際に使う形式に整形する、という流れです。

スクリプト内でもコメントを多用していますが一応、詳しい解説を。

5~10行目
データベース接続に関する設定内容です。
今はMySQLのみの対応ですが、将来的に複数のデータベースを使用できるようにするため、データベースタイプを設定する変数($dbtype)を用意しています。
データベースのホスト名、ユーザー名、パスワード、掲示板データを保存するためのデータベース名を指定します。ユーザーは対象データベース、次の権限を持っている必要があります。

  1. テーブルの新規作成
  2. 作成したテーブル構成の変更
  3. テーブルの削除
  4. レコードの読み込み・挿入・書き換え・削除

12~13行目
掲示板メインページ下部のインラインフレーム内に表示する投稿された記事数を指定します。
最新何件表示するかを指定する設定項目です。指定しない、もしくは数字ではないデータが格納された場合、20件表示されるようになっています(→45行目)。

15~16行目
掲示板メインページ下部のインラインフレーム内に表示するページを自動更新する間隔を指定します。
単位は秒です。指定しない、もしくは数字でないデータが格納された場合、60秒(1分)おきに自動更新されるようになっています(→49行目)。

18~39行目
過去ログ倉庫(読み込み専用で書き込むフォームがないためREADONLY、つまり読み込み専用というファイル名)に関する設定です。ページャとしてPear::Pagerを使用しています。
連想配列はPear::Pagerで指定された名前を付けているため変更できません。
いくつかの項目では実際には使っていないものもありますが、今後のバージョンアップをスムーズにするため、という理由があります。
この設定項目だけでページが一つ作れてしまうので今は割愛しますが、そのうち解説ページを書きたいと思っています。

ここまでがユーザーが使う際、環境に合わせて実際に書き換える部分です。
42行目以降は変数・値の書式を整えたり、他のスクリプトで使いやすくするための部分です。

45~47行目
読み込み件数として変数値がふさわしいかを確認します。
具体的には変数値が整数型か、もしくは値が自然数かを確認し、違った場合変数に20を代入します。
この値がデフォルトの記事読み込み件数です。

49~51行目
自動更新間隔時間として変数値がふさわしいかを確認します。
具体的には変数値が整数型か、もしくは値が自然数かを確認し、違った場合変数に60を代入します。
この値がデフォルトのページ自動更新間隔時間です。

53~62行目
5~10行目で設定したデータベース設定に基づき、Pear::Authがデータベースにアクセスしてユーザー認証を実行するために必要な情報へ整形しています。
連想配列の’table’はアカウント情報が記録されたテーブルを、’usernamecol’はユーザー名が記録されたカラム(列)を、’passwordcol’はパスワードを記録されたカラムを指定します。

64~66行目
掲示板プログラムがデータベースを使えるよう、5~10行目で設定したデータベース設定に基づいて接続を開きます。$dbを使ってデータベースにアクセスできるようになります。
どのスクリプトでもデータベースからデータをやり取りするのでここで接続をあらかじめ開いておきます。

Tags: ,

Posted in PHPで動く掲示板プログラム |

Comments are closed.