KAME-Board Programmer's Manual

関数たち

kameboard.cgi

get_kame_url
return "http://" . $ENV{'SERVER_NAME'} . $ENV{'SCRIPT_NAME'} . "/";
get_kame_top
return $ENV{'SCRIPT_NAME'} . "/";
HTML出力時は、HTML出力ルートに変更される。
get_kame_cgi
return $ENV{'SCRIPT_NAME'} . "/";
get_kame_cgi_scheme
return $ENV{'SCRIPT_NAME'} . "/" . $PARAM->{'_SCHEME'};
get_kame_cgi_scheme
return $ENV{'SCRIPT_NAME'} . "/" . $PARAM->{'_SCHEME'};
get_kame_cgi_base
http:// から始まり PATH_INFO を含んだURLから、末尾ファイルを除いたもの。

kame-dat/syslib/auth_.pl

auth_user_login
$PARAM->{'user_name'} と $PARAM->{'password'} を見て、正しいログインなら、auth_cookie をセットして、$PARAM->{'_REFERER_PATH_INFO'}へ飛ぶ。
auth_user_logout
auth_cookie を消去して、$PARAM->{'_REFERER_PATH_INFO'}へ飛ぶ。
show_login_form
&show__skelfile('login_form.html');
auth_user
cookie のユーザ名とセッションコードからユーザ認証をする。正しければ ユーザ名を返す。不正ならば 0 を返す。
auth_set_cookie
セッションコードを新たにセットする。
auth_user_role
ユーザ名が、その scheme の role かどうかを user.db1 を元に判断する。

kame-dat/syslib/cookie_.pl

cookie_parse
引数に、$ENV{'HTTP_COOKIE'}を与えると、パースして、ハッシュの参照 $GET_COOKIE にセットする。
cookie_compose
($name, $value, $expire, $domain, $path) から Set-Cookie: にセットする文字列を生成して、返す。
cookie_time_to_str
time を引数に与えると、Sun,1-Jan-2001 12:34:56 GMT 形式の時刻文字列表記を返す。
cookie_delete
$SET_COOKIE->{'KAME'} に、KAME という COOKIE(値は XXX)を、時刻 time=1(すごい過去)をセットする。Set-Cookie で返されると、過去のCookie なので、ブラウザに保存されている Cookie KAME は消される。

kame-dat/syslib/db_.pl

db_load($db_file, $key_record, $lock)
db 形式のファイルをロードする。
  • $db_file: ファイルパス
  • $key_record: 主キーとするレコード名
  • $lock: 0=ロックしない。
db1_load($db1_file, $lock)
db1 形式のファイルをロードする。
  • $db_file: ファイルパス
  • $lock: 0=ロックしない。
db1_write
db1 形式のファイルを書き込む

kame-dat/syslib/parse_.pl

parse_input
CGI 入力をパースする。ハッシュの引数を取る。全てオプショナル
  • size_limit: CGIの受け取る、最大入力サイズ
  • mehod_limit: 'GET', 'POST', 'MULTIPART' をとる。パラメータ受け渡し方法が、その方法に限られる。
パース結果は、
     $PARAM->{'フォーム名'} = フォーム値   (通常フォームの時)
     $PARAM->{'フォーム名'} = ファイルの内容   (ファイルアップロードフォーム)
     
parse_copy_to_skel
$PARAM の内容を、sanitize_nohtml して、$SKEL にコピーする

kame-dat/syslib/pathinfo_.pl

pathinfo_parse
PATH_INFO を引数に与えるとパースする。
  • $PARAM->{'_CMD'}: コマンド(show_indx など)
  • $PARAM->{'_FILE'}: show_??? の対象ファイル、show__file の対象ファイル
  • $PARAM->{'_SCHEME'}: scheme 部
  • $PARAM->{'_ARTICLE_ID'}: show_article 時の article ID

kame-dar/syslib/show_.pl

show__skelfile($file, [$scheme])
  • $file を SKEL ファイルとして表示する。
  • $scheme は省略時、$SCHEME->{'_SCHEME'}->{'scheme'} (通常の scheme)が使われる。
  • SKEL ファイルは、<skel_include> <skel_func> <skel> が順に置換される。それぞれの置換は、置換するものが無くなるまで、再帰的に行われる。
  • 置換が終われば、skel_output によって出力される。
show_index
&show__skelfile('index.html'); 便利なようなデフォルト
show_not_found
&show__skelfile('not_found.html'); 便利なようなデフォルト
show__file
  • $PARAM->{'_FILE'}; を scheme_findfile で探してきて、
  • ファイル名から content-type を推測して、
  • あるがままに返す。
  • 元ファイルの stat より Last-Modified: を付けれるようなら付ける。
show_guess_ct
ファイル名から content-type を推測して返す。