CGIについて
会社から以下のようなcgiを作ってくれと言われましたが、初心者の為皆目見当つかない状態です
perl,c,c++のうちなんでもいいそうですが、perlが入っているので、それを使おうかと思っています。
<図書管理サイト(CGIプログラム)要求仕様>
rental.cgi
1.登録社員がアクセス、セレクトボックスから自分を選択し、パスワードを入力。
(パスワードは当面、社員番号と同じでよいと思われる)
2.認証に成功すると図書リスト画面が出る。図書リスト画面は、
「図書テーブル」の内容がリスト表示される。表示は「登録日が新しい順」。
本が増えることを想定すると、図書名による「検索」ができるとなおよい。
3.「貸し出し中ではない」本は、「借りる」といるリンクがつく。「借りる」を
クリックすると、JavaScriptによるアラートで「本XXXXを借りますか?」と出す。
OKがクリックされたら、貸し出し登録。
データベースの更新等貸し出し処理が無事終了したら
該当の本を「貸し出し中」とし、図書リストを更新表示。
なお、この時プログラム内部で「履歴テーブル」にデータを追加しておくこと。
4.図書リスト画面において、該当社員が借りている本の場合は「借りる」ではなく
「返却する」リンクとなる。
クリックすると、JavaScriptによるアラートで「本XXXXを返却しますか?」と出す。
OKがクリックされたら、図書返却登録。3.と逆のステップになる。
データベースの更新等返却処理が無事終了したら
該当の本を「貸し出し中」では無くし、図書リストを更新表示。
なお、この時成功画面に「本は棚に忘れず返却してください」などと出す。
データベースの方はpostgreSQLで下のような感じで作ってあります。
データベース名…bookmanagement
bookmanagement=# CREATE TABLE books(
bookid text, --本ID
bookname text, --本名称
author text, --著者
explanation text, --説明
date date, --登録日
lending text, --貸出中?
finallending text, --最終貸出日
lendinguserid text --最終貸出ユーザID
);
CREATE TABLE
bookmanagement=# CREATE TABLE usertable(
userID text, --ユーザID(社員番号)
name text, --ユーザ名
pass text, --パスワード
post text --所属部署
);
bookmanagement=# CREATE TABLE logtable(
logID text, --<履歴ID><ユーザーID>
date timestamp,<発生日時(=貸出日時)>
bookid text,<本ID>
userID text --<ユーザーID>
);