ウェブ・データベース http://www.hero.ne.jp/~db/
ウェブ・データベース ヒロ・データベース HeRO Data Base Version1.30 2007/08/28

超人気のウェブデータベースCGI!!
テーブル自由設計型データベース(Perl CGI)
この CGI は、登録項目を自由に設定できる簡易データベースです。自分で使うために作りました。このようなものが必要な方はお使いください。別に配布しているヒロ・スキンと組み合わせれば、ホームページ作成支援ツールにもなります。
ホーム > ヒロ・データベース スクリプト本体です
 HeRO DB データベース とは

特徴
  1. MySQL や Oracle などのような特別な DBMS を使用しないで、CGI だけで動作するので簡単です。
  2. 登録項目を設定することで、蔵書管理・CD管理・会員情報・お店情報・1行掲示板・リンク集など様々なデータ管理・検索・閲覧ができます。
  3. 表示する文字数が多くなって画面が雑多になった場合は省略表示できます。
  4. 登録順表示、逆順表示ができます。
  5. 次の拡張子を持つ複数ファイルがアップロードできます。
  6. GIF/JPG/PNG/TXT/LZH/ZIP/PDF/MID/DOC/XLS/PPT/RAM/RM/MPG/MP3
  7. 管理者のみ登録/修正/削除を可能にするオプションがあります。
ヒロ・データベース サンプル
[ サンプル ]
ご注意

 保存データの最大数はホームページ容量に依存すると思います。しかし、データが増えれば処理完了までの時間も必要としますので、定期的に不要データを削除(自動削除機能あり)されることをお勧めします。特にこの点においてご注意いただき、この CGI を利用した事によるいかなる損害も作者は一切の責任を負いませんのでご了承ください。

 

 もくじ

ダウンロード

あなたのホームページでヒロ・データベースを利用するために、まずはダウンロードして入手します。

設置説明
ダウンロードしたファイルをパソコンで設定したり、転送して動作確認を行ないます。

 HeRO DB データベース本体 のダウンロード

  • 使用条件 (スクリプトをダウンロードする場合、無条件に同意したものとみなします。)


    1. ご利用の際には全てにおいて自己責任で行ってください。
    2. 設置したHP及びCGIへのリンクを当ホームページ内に設置させてください。


  • それでは、どうぞ↓


    最新バージョン クリックでダウンロード LZH形式 herodb130.lzh Version 1.30 2008/08/28
    前バージョン クリックでダウンロード LZH形式 herodb126.lzh Version 1.26 2004/07/01


    公開履歴(重要な項目のみ表示)
    過去の履歴 こちらでは過去のバージョンアップ履歴が参照できます。
    Version 1.14 2003/02/21: 1テーブル内で複数のバイナリファイルが取り扱えるようになりました。
    Version 1.16 2003/03/03: タイミングとサーバの状況によるデータ消失の改善。
    Version 1.18 2003/04/23: CSV機能の削除。保存形式 EUC 固定。その他微調整。
    Version 1.20 2003/05/19: アクセス制限の機能を追加。タイプを追加(YMD5/HNS5/RHOST)
    Version 1.21 2003/05/23: 半角カナ認識できる場合は全角カナに自動変換。
    Version 1.23 2003/06/27: YMD6を追加。2重投稿防止機能。
    Version 1.26 2004/07/01: ランダム時検索の不具合を修正。必須入力に*印付加。
    Version 1.30 2008/08/28: アクセス制限機能を追加。
       
 バージョンアップする人へ

  • Version 1.07 以降の方は、herodb.cgi 及び、hero.pl 及び、jcode.pl の3ファイルの差し替えのみでお使いいただけます。
 設置説明

  • ダウンロード後に解凍を行うとファイルが展開されます。

    herodb.cgi の 1行目 #!/usr/local/bin/perl を、ご利用のサーバーに合わせて修正してください。

    そして、展開されたファイルをサーバーに転送してください。
    全体のディレクトリ・ファイル構成とパーミッション設定値の例を書いておきます。(太字がディレクトリです)
ディレクトリ構成例 パーミッション 備考
herodb    
  |    
  |-- img [755]  
  |   |-- edit.gif [644] その他画像あり
  |    
  |-- sample [777]  
  |   |-- bin [777]  
  |   |-- bin_del [777]  
  |   |-- csv [777]  
  |   |-- lock [777]  
  |   |-- config.pl [644] 表示設定
  |   |-- rec.dat [666] テーブルデータ
  |   |-- rec_del.dat [666] 削除データ
  |   |-- table.def [644] テーブル定義
  |    
  |-- cgi-lib.pl [644]  
  |-- hero.pl [644]  
  |-- herodb.cgi [755] 本体
  |-- jcode.pl [644]  

(パーミッション設定 : ○○○.dat=[666] ○○○.cgi=[755] ディレクトリ=[777] その他=[644])

  • それでは試しに動かしてみましょう。次のアドレスをブラウザに入力してください(緑色は転送先サーバーのアドレスです)
    エラーが表示される場合などはパーミッションの設定値を確認してください。
    一部のプロバイダではCGIの設置ディレクトリが決められている場合もあるようですが、これに関しては各プロバイダの説明をご覧下さい。
    ⇒ご参考になるとよいのですが、説明を書きました。


    http://www.xxx.xxx/~user/herodb/herodb.cgi?table=sample


  • うまく動いたら、次は サーバー上の sample ディレクトリ名を、好きな名前(半角英数)に変えて(例では book)から動かしてみましょう(青色が変更後のディレクトリ名です)

    http://www.xxx.xxx/~user/herodb/herodb.cgi?table=book

  • HeRODBは複数の異なったテーブル構成で使用することができます。
    テーブルの識別はディレクトリ名で行います。

    例えば、次のようにすることで、book(書籍に関するテーブル)とmusic(音楽に関するテーブル)の各々の様式で使うことができます。

    ディレクトリ構成例 パーミッション 備考
    herodb    
      |    
      |-- img [755]  
      |   |-- edit.gif [644]  
      |    
      |-- book [777]  
      |   |-- bin [777]  
      |   |-- bin_del [777]  
      |   |-- csv [777]  
      |   |-- lock [777]  
      |   |-- config.pl [644] book用表示設定
      |   |-- rec.dat [666] book用データ
      |   |-- rec_del.dat [666] book用削除データ
      |   |-- table.def [644] book用テーブル定義
      |    
      |-- music [777]  
      |   |-- bin [777]  
      |   |-- bin_del [777]  
      |   |-- csv [777]  
      |   |-- lock [777]  
      |   |-- config.pl [644] music用表示設定
      |   |-- rec.dat [666] music用テーブルデータ
      |   |-- rec_del.dat [666] music用削除データ
      |   |-- table.def [644] music用テーブル定義
      |    
      |-- cgi-lib.pl [644]  
      |-- hero.pl [644]  
      |-- herodb.cgi [755] 本体
      |-- jcode.pl [644]  


  • 呼び出し方は、herodb.cgi?table= の後ろにディレクトリ名を指定します。

    http://www.xxx.xxx/~user/herodb/herodb.cgi?table=テーブルディレクトリ名

  • 呼び出し具体例

    http://www.xxx.xxx/~user/herodb/herodb.cgi?table=book
    http://www.xxx.xxx/~user/herodb/herodb.cgi?table=music

  • herodb.cgi の書き換え

 管理者用マスターパスワード($masterpass)を変更してからご利用ください。管理者用マスターパスワードは、全てのデータについて編集や削除をすることができます。しかし、管理者用パスワードがあるからと言って安心はしないでください。大事なデータが改竄されても作者は一切の責任を負いませんので、あらかじめご了承ください。すべて自己責任でお願いします。

 また、 パス($datpath/$binpath/$BinURL)の設定を正しく行ってください。一部のプロバイダではCGIの設置ディレクトリが決められている場合もあるようです。これに関しては各プロバイダの説明をご覧下さい。CGI設置ディレクトリが決められている場合のパスの設定方法をこちらに説明しました。

 $hero'lockkey の値を 1 にすると、サーバーによっては動かないようです(Windows系サーバーなど)。この場合は 2 で動かしてください。

 cp(UNIXのファイルコピーコマンド)へのパスを正しく設定して頂くことで自動保存時にバイナリーの移動が可能ですが、cpが使えないプロバイダの場合は、次の config.pl で自動削除後の保存を行わないようにしてください。

  • config.pl の書き換え

 このファイルでは、テーブルごとの設定を行います。このファイルの中のコメントを見ながら必要な部分を書き換えてください。 書き換えが終了したらサーバーに転送してから確かめてみてください。
 ランダム表示を設定する場合はデータ件数にご注意ください。データが増えればその分動作が遅くなりますので自動削除機能を併用してください。

 table.def は登録項目を設定するファイルです。例えば書籍の情報を保存するテーブルが次の構造を持つものとします。(展開した sample テーブルの例です。)

日本語名 英語名 入力 タイプ 入力TEXT幅 全/半 表示文字数 選択項目
書籍 タイトル TITLE 必須 TEXT 50 全角 全表示 なし
画像 UPFILE 任意 IMG 39 半角 全表示 なし
著者 AUTHOR 任意 TEXT 50 全角 全表示 なし
感想 REVIE 任意 MEMO2(複数行TEXT) 35 全角 50文字まで なし
発売 SALES 任意 CHK なし なし なし 書店|コンビニ|プレゼント
予備1              
予備2              
予備3・・・・              
※「入力TEXT幅」はデータ登録時のフォームの入力サイズに関する設定であり、フィールドサイズを指定するものではありません。

 テーブル内の1つ分の項目を設定するには次のように記述します(順番がむちゃくちゃですみません)。

項番<>全/半<>入力TEXT幅<>タイプ<>英語名<>日本語名<>入力必須 <>表示文字数<>選択項目 [改行]

 従って、上記のsample テーブルの例では、 table.defを次のように記述します。

ITEM01<>active<>50<>TEXT<>TITLE<>書籍タイトル<>YES<>-1<>
ITEM02<>inactive<>39<>IMG<>UPFILE<>画像<>NO
<>-1<>
ITEM03<>active<>50<>TEXT<>AUTHOR<>著者<>NO<>-1<>
ITEM04<>active<>35<>MEMO2<>REVIEW<>感想<>NO<>50<>
ITEM05<>inactive<>1<>CHK<>SALES<>発売<>NO<>-1<>
書店|コンビニ|プレゼント
ITEM06
ITEM07

ITEM08

 (あ〜、目がチカチカする)

 それでは、それぞれの書き方を説明します。(多分もう拡張しないと思いますが・・・)
 なお、table.def を設定した結果、どうしてもうまく動かないという場合は Table.def チェッカー を試してみてください。

1. 項番(摘要タイプ:全て)
ITEM01 から順番に書いてください。特に名前付けに意味は持ちません。
2. 全/半(摘要タイプ:TEXT/MEMO1/MEMO2)
active : 全角入力にしたい場合。
inactive : 半角入力にしたい場合。
3. 入力TEXT幅(摘要タイプ:TEXT/IMG/ URL/MAIL/MEMO1/MEMO2)
入力時のフォームの幅(SIZE)です。
4. タイプ(摘要タイプ:全
(これはいろいろ試してみるのが一番です)
TEXT 1行文字列の場合  
IMG ファイルをアップロード  
URL URL  
MAIL メールアドレス  
MEMO1 複数行文字列 一覧表示の際にリスト表示したい場合。
MEMO2 複数行文字列 一覧表示の際にそのまま表示したい場合。
YMD3 年月日 入力時に本日日付を自動挿入します。
YMD4 年月日を自動保存 登録or更新日付を自動記録します。入力時は表示されません(HIDDEN属性)。
LIST リスト表示  
CHK チェックボックス表示  
OPT ラジオボタン表示  

その他のタイプはこちらをクリック

5. 英語名(摘要タイプ:
入力時のフォームの名前(NAME)になります。
同テーブル内で同じ英語名は使わないでください。
6. 日本語名(摘要タイプ:
入力時に表示
されます。
7. 入力必須(摘要タイプ:TEXT/IMG/URL/MAIL/MEMO1/MEMO2/YMD1〜3/CHK)
YES : 必ず入力しなければならない項目の場合。
NO : 入力しても、しなくても、どちらでも良い場合。
8. 表示文字数(摘要タイプ:TEXT/MEMO2)
(Version 0.85で追加)

-1 : 省略せずに表示する。
0 : 表示しない。
0以上の数値 : 表示の際に、表示文字が指定した数値以上の桁の場合に省略表示する。
9. 選択項目(摘要タイプ::LIST/CHK/OPT)
(Version 1.00で追加)
項目を | (縦棒)で区切って指定してください。(例) 東|西|南|北 ← 両サイドに | をつけては駄目。

 テーブルに設定できる項目の最大数は指定していませんが、あまり多いと入力フォームが縦長に伸びて非常に使いづらくなります。項目数は多くても10個以内にとどめておいた方が良いでしょう。

 予備の項目には、2〜9を指定してはいけません。予備は後で追加する可能性がある場合には項番だけ設定しておいてください。

 以上の設定ができましたら、table.def をサーバーに転送して動作確認をしてください。table.def の設定内容をいちいちチェックしていませんので、YESと書かなければならないのを、YE とだけ書いた場合は正常に動作しません。このように、異常な動きをしたら設定内容を確認してみてください(Table.def チェッカー)。なお、できれば良いものに仕上げてゆきたいと思っていますので、掲示板に故障情報の書き込みをお願いします(具体例を含めて状況を書いてください)。

  Copyright(c) 2002-2005 By HeRO All rights reserved.
[ FooBe.net RSSが作れるサイト ] [ ザ・ランクテン ] [ プチアイコンのフリー素材『矢印王国』 ] [ JunkPerl.com ]
[ ダウンロードできるフリーソフトの無料掲示板(BBS-CGI)を作る ]

検索ワードてすと:実験中です
ランキングサイト⇒ ホームページランキングのザ・ランクテンに参加しています 人気サイト
アクセス解析