ショウジョウバエ研究会オンライン登録プログラム

ショウジョウバエ研究会第7回研究集会で使ったオンライン登録のための PHPスクリプト
ここで動いています。

松尾隆嗣(東京都立大学)の力を借り、都丸雅敏(京都工芸繊維大学)とふた りで作成した2005年のショウジョウバエ研究会のオンライン登録のための PHP スクリプトです。
著作権は松尾と都丸にあります。GNU General Public License version 2 (gpl.txt)または、その上位バージョンの下で配布は自由です。

ダウンロードはこちら(↓)から

JDRC7.tar.gz

ショウジョウバエ研究会第7回研究集会のサイトの 説明 を下に再掲


Source Code

The Online Registration Form was written by Takashi Matsuo (Tokyo Metropolitan Univerisity) and Masatoshi Tomaru (Kyoto Institute of Technology). The source code is open to the public under the terms of the GNU General Public License. You can downlaod from below.

Last update 13 May 2005

JDRC7.tar.gz


readme.txtの内容は下のとおりです。 スパム対策でメールアドレスを変えています。

readme.txt Date: Wed May 11 15:11:04 2005 $

PHP script for
Japanese Drosophila Reserach Conference Online Registration
Copyright (c) 2005 Takashi Matsuo & Masatoshi Tomaru

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Contact:
Masatoshi TOMARU
Drosophila Genetic Resource Center
Kyoto Institute of Technology
Saga-Ippongi-cho, Ukyo-ku,
Kyoto 616-8354, JAPAN
Email: tomaru AT kit DOT jp (replace AT with @, DOT with .)
Phone: +81-75-873-2655
Fax: +81-75-861-0881

See also readme.txt

<<<<< In Japanese


JDRC Online Registration
ショウジョウバエ研究会のオンライン登録のためのPHPスクリプト
Copyright (c) 2005 Takashi Matsuo & Masatoshi Tomaru

松尾隆嗣(東京都立大学)の力を借り、都丸雅敏(京都工芸繊維大学)とふた りで作成した2005年のショウジョウバエ研究会のオンライン登録のための PHP スクリプト。

著作権および配布条件

著作権は松尾と都丸にあります。同梱した GNU General Public License version 2 (gpl.txt)または、その上位バージョンの下で配布は自由です。

GNU General Public License について詳しく知りたい場合は、GNUのウェブペー ジ(http://www.gnu.org/)が参考となるでしょう。

ディレクトリ構造

JDRC7--JDRC7form | +-JDRC7organizer

JDRC7form が登録のためのスクリプト
JDRC7organizer が登録情報を見るためのスクリプト

これだけでも運用できますが、実際はディレクトリ JDRC7 に pukiwiki をイ ンストールしてメインページとして使いました。

JDRC7/JDRC7form/jdrcinc.php に設定すべき変数やエラーメッセージ、タイト ル文字列、例文が入っています。このファイルを編集するだけで、全く別の研 究集会の受け付けに利用できます。各ページのデザインを変更するには、それ ぞれのファイルを変更する必要があります。

例えば、
$jdrc_deadline = "Jun 3, 2005";
のように締め切り日を入れておけば、
$jdrc_real_deadline_timestamp = $jdrc_deadline_timestamp + 60*60; で定義した delay だけ遅れて(ここでは1時間(60*60秒)後の6月4日(土) の午前0時59分59秒)、受け付けが終了します。registration のスクリプトで は、submit ボタン(またはリンク)を消すだけなので、スクリプトは動作し ます。締め切り前にアクセスしてブラウザにボタンが出ていれば、そのまま締 め切りが過ぎてしまっても間に合います。でも……、登録する人はそんなに考 え込まないように準備してほしいものです ;)

JDRC7form のデータベースについて

構造は下の createtable.sql を参考にして下さい。各テーブルでは、userid を使って relation が実現できます。本プログラムでは、sql query であまり relation を使っていませんが(^^;。登録の時に、uniqid("") により userid を作成しています。jdrc_name_list の userid の初期値は、「-------------」 (13 桁のハイフン)であることを前提にしています。

Table account の shortkey は userid の下6桁です。これを各登録ユーザに user ID として入力してもらうようにしました。名前と shortkey で検索して 長いuserid を得て、後は userid だけをページ間で持ちまわるようにしてい ます。

postgreSQL はこけない前提で書いているため、postgreSQL のエラー処理ルー チンはほとんど書いていません。

ロゴの絵(JDRC7-gray.gif、JDRC7-small.gif、JDRC7-small.png、JDRC7.png) は運用していたものとは異なります。

JDRC7organizer にあるスクリプトについて

JDRC7/JDRC7form/jdrcinc.php のような細工をあまりしていないので、実際の 運用にはファイルを直接いじらないといけません。

設置方法

PHP と postgreSQL が動作する環境が必要です。このコードは、OS が Linux、 http サーバが Apache という環境でしか動作させたことがないので、他の環 境で動くかどうかは未知です。

PHP スクリプトについては、アーカイブを解凍するれば動作するはずです。 postreSQL のユーザを作成後、下記のコードで、postreSQL のデータベースの 設置ができます。
※jdrc_name_list の中身を /home/hogehoge/hohehohe.txt に用意した場合で す。userid には初期値として「-------------」を入れておく必要があります。

<<<<<<< createtable.sql ここから

drop table access_log; drop table account; drop table attending; drop table jdrc_name_list; drop table presentation; create table access_log( userid character(13), firstregistered timestamp with time zone, lastmodified timestamp with time zone, modifiedfrom text ); create table account( userid character(13), familynamealphabetical text, lastnamealphabetical text, shortkey character(6) ); create table attending( userid character(13), salary boolean, meeting boolean, symposium boolean, party boolean, lunch29 boolean, lunch30 boolean, lunch31 boolean, lunch1 boolean ); create table jdrc_name_list( userid character(13), familynamealphabetical text, lastnamealphabetical text, kanjiname text, affiliation text, emailaddress text ); create table presentation( userid character(13), title text, names text, affiliations text, abstract text, keywords text, preferoral boolean, englishpresentation boolean, otherlang boolean, langname text ); copy jdrc_name_list from '/home/hogehoge/hohehohe.txt' using delimiters ' ';

<<<<<<< createtable.sql ここまで

postgreSQLで実行する

# psql -f createtable.sql databaseuser databasename

その他

JDRC7/JDRC7organizer は Basic認証によるアクセス制限をして、運用してい ました(.htaccess と .htpasswd を使ってユーザ認証)。

<<<<<<<<<< JDRC7/JDRC7organizer/.htaccessの内容

AuthUserFile "/home/hoge/public_html/JDRC7/JDRC7organizer/.htpasswd" AuthType Basic AuthName "JDRC7 organizer" require valid-user <<<<<<<<<< JDRC7/JDRC7organizer/.htaccessの内容ここまで

.htpasswdのつくり方
$ htpasswd -c .htpasswd username あとは言われるまま

ほんとは、.htpasswdをどこか別な場所に置くほうがセキュリティ上よい。

※おまけ:一緒に運用していた、pukiwikiでのmd5のパスワードの作り方は
$ echo -n 'password' | md5sum

この php スクリプトは松尾と都丸のいかにもモザイクとなっている部分があ ります。perl っぽいところは松尾の、C っぽいところは都丸のコードである ことが多いと思います。繰り返すコードについては、関数としたり、変数とし て処理したり、別なファイルをインクルードしたり、同じファイル内なら繰り 返し書いてしまったり、となっていて、美しいコードを目指す時間がなかった ことがばればれです X<

謝辞

図らずも、このような作成の機会を下さった上村さん(京都大学)に感謝しま す。

連絡先(著者を代表して)
都丸 雅敏
京都工芸繊維大学ショウジョウバエ遺伝資源センター
〒616-8354 京都市右京区嵯峨一本木町
電話: 075-873-2660(内線 34)
電話: 075-873-2655(ダイヤルイン)
Fax: 075-861-0881
Email:tomaru AT kit DOT jp(AT は @、DOT は . に置き替えて下さい)

Last modified at $Date: Sun Jun 05 14:25:19 2005 $