Amigoデータベース、スクリプト集

『With you あなたもHPを持とう』AmigoデータベースのQ&Aがあります
全般・基本スクリプト 管理認証・環境設定 ユーザ登録・認証(編集) データ登録・認証(編集) データ一件分のデザイン
(db-html.cgi)
検索、ショートカット
検索結果(一覧) データ詳細(data-part) フォームメール db-fm.cgi メール文章設定法 db-mail.cgi トップ画面など表紙 注意事項、その他

全般・基本スクリプト
  基本スクリプト
■database.cgi
print qq(<OPTION value="ur" $select{ur}>管理者ユーザー登録</OPTION>
<OPTION value="dr" $select{dr}>管理者データ登録</OPTION>
<OPTION value="uj" $select{uj}>ユーザー申\請審査 [$UtempSu件]</OPTION>
<OPTION value="dj" $select{dj}>データ申\請審査 [$DtempSu件]</OPTION>
<OPTION value="c" $select{c}>環境設定</OPTION>
<OPTION value="ia" $select{ia}>データ種類追加</OPTION>
<OPTION value="id" $select{id}>データ種類削除</OPTION>
<OPTION value="js" $select{js}>登録数ファイル更新</OPTION>
<OPTION value="b" $select{b}>バックアップ作成</OPTION>
<OPTION value="bd" $select{bd}>バックアップ削除</OPTION>);}


  ◎以前のバージョンより移行される方へ
以前のバージョンからの変更点及び変更ファイルがver.txtにあります。
こちらをご覧頂きますと最小限の作業で移行できます。
途中のバージョンを飛ばして移行されたい場合は
現在ご利用のバージョンから最新(利用する)バージョンまでの
全てのバージョンでの変更点及び変更ファイルをリストアップし
それらのファイルを最新(利用する)バージョンのものに差し替えて下さい。


  ◎設置手順1(任意)
ディレクトリ(フォルダ)名をデフォルトから変更します。
変更出来るのはdata,data/user,image,lockディレクトリです。
※dataディレクトリ名は変更する事をお勧めします。
※data/dataディレクトリは変更しないで下さい。
※その他のディレクトリ・ファイル名(database.cgi除く)は変更しないで下さい。


  ◎設置手順2 database.cgi
1行目のPerlのパスを使用サーバーに合わせて変更します。
※ほぼ#!/usr/bin/perlか#!/usr/local/bin/perlですが
分からない場合はサーバー管理者へ問い合わせて下さい。

設定部(■のリスト)を設定します。

■基本ディレクトリ(http://から)
database.cgiを設置するディレクトリです。
※http://から記述し最後に/は付けません。
(例):http://www.cgi-amigo.com/cgi-bin/database
例の設定の場合cgiのURLは
http://www.cgi-amigo.com/cgi-bin/database/database.cgi となります。

■データディレクトリ〜ファイルアップロードディレクトリ
各ディレクトリへのパスです。
ディレクトリ名を変更した場合は設定を変更して下さい。
※最後に/は付けません。

■ロックタイプ(1=flock式/2=rename式/3=symlink式/4=mkdir式/5=open式)
ロックタイプはご利用の環境やお好みに合わせて5種類から選択できます。
※open式は他の4種よりも強固さで若干劣ります。
なるべくopen式以外をご利用される事をお勧め致します。
※database.cgi?cmd=ltにアクセスするとロックテストを行い
利用可能なロックタイプを表示します。
※ロックタイプを2に設定した場合のみlockフォルダ内に
DATA.loc,USER.loc,CONFIG.loc,MAIL.locファイル(空ファイル)を作成して下さい。

■メインスクリプト名
database.cgiのファイル名を変更した場合のみ変更が必要です。

■バックアップファイル名
バックアップファイルの名称です。
そのままでも構いませんがバックアップファイルを
ダウンロードされる恐れがあるのでなるべく変更して下さい。

■設置サイトの最短URL
設置したサイトとして認識できる最短のURLです。
他のサイトからCGIを不正使用されるのを防止する為の機能(設定)です。
http://www.cgi-amigo.com/ と設定した場合
http://www.cgi-amigo.com/****.html等の
サイト内から呼び出されないとエラーとなるページがあります。
URLを''で囲んで複数設定する場合は,で区切ります。
(例1)@MyUrl=('http://www.aaaaa.com/');
(例2)@MyUrl=(
'http://www.aaaaa.com/',
'http://www.bbbbb.com/',
'http://www.ccccc.com/'
);

■リンク制限(ON=1/OFF=0)
他サイトからデータ登録ページ等へのリンクを制限する機能です。
ONにすると"サイトの最短URL"で設定したサイト内からしか
リンクが貼れなくなります。
※ブックマークやURLの直接入力によるアクセスも不可となります。

■method形式チェック(ON=1/OFF=0)
GET形式でのデータ送信を制限する機能です。
通常はONのままにして下さい。

■保存パスワードの暗号化(ON=1/OFF=0)
ファイルに保存するパスワードを暗号化する機能です。

■時差修正(日本は+9)
設置サーバーの国毎の時差修正です。
サーバーが日本国内の場合変更の必要はありません。

■ジャンプタイプ(0=Location/1=META)
設置サーバーがLocation使用不可の場合は1にして下さい。
※カウントUPリンクから正常にジャンプ出来れば0のままで問題ありません。

■カウントアップタイプ(0=リンク式/1=投票式)
カウントアップのタイプを選択します。
0は通常のリンク式で1は登録ユーザー限定の投票式となります。

■gzipのパス
gzip圧縮による高速表示機能を使用する場合
gzipへのパスを設定します。
※サーバーにより使用出来ない場合もあります。
※これを設定した事により表示がおかしくなる等
といった事もありますのでその場合は未設定にして下さい。



  ◎設置手順3
/data 755
/config 755
 db-config.cgi 666
db-short.cgi 666
submit.cgi 666
/data 755
data.cgi 666 登録データ
num.dat 666
reset.dat 666
submit.data 666
temp-num.dat 666
vote.dat 666
wait.cgi 666
/access 777
      access.log 666 アクセスログ
/mail 755
submit.dat 666
/access 777
      access.log 666 メール送信ログ
/user 755 777
num.dat 666
submit.dat 666
temp-num.dat 666
user.cgi 666
wait.cgi 666
/file 777 アップするファイル(写真や画像、TXTなど)
/image 755 各種アイコン
    new.gif 644
up.gif 644
/js 755
data-su.js 666 データ登録件数
user-su.js 666 ユーザ登録件数
/lib 755
db-admin.cgi 644
db-data.cgi 644
db-fm.cgi 644
db-html.cgi 644 データ一件分のデザイン
db-mail.cgi 644 メールの設定
db-view.cgi 644
jcode.pl 644
/template 755
admin-certify.html ほか全てのファイル644
/complete 755
bkup-del.html ほか全てのファイル644
/data-part 755
/data 755
default.html 644 データ詳細ページ
/user 755
default.html 644 ユーザ詳細ページ
/result 755
default.html 644 データ(ユーザ)一覧ページ
/lock 777
  index.html 644
database.cgi 755
sample.html 644


管理認証・環境設定

  基本スクリプト
BannerSizeH==バナーサイズ(縦),BannerSizeW==バナーサイズ(横),BannerURL==バナーURL,DFile==アップするファイル,Pass2==再入力,TempPass==仮パスワード,ReissueFlag==パスワード再発行,Sub==名称,SubKana==よみがな,SubR==ロシア語表記,EstY==設立年,EstM==設立月,Dai==代表者,DaiKata==代表者肩書,Seki==責任者,SekiKata==責任者肩書,Staff==担当者名,StaffKazu==スタッフ数,Mem==会員制度(有無),MemKazu==会員数,MemFee==会費,Yubin==郵便番号,AddA==住所(都道府県),AddB==住所,AddC==ビル名,Tel==電話番号,Fax==ファックス番号,MailYes==メール(有無),Mail==メール,HpYes==ホームページ(有無),HPName==サイト名,URL==ホームページ,Branch==日本の支部,BranchR==ロシアの支部,Friend==ロシアの友好機関(名称),ComA==設立目的,ComB==最近の活動,ComC==今後の活動,ComD==主な事業,File==画像(写真),FileK==キャプション,SyoukaiKiji==組織の紹介
◆追加分
YA==活動地域,YB==情報種別,YC==会員種別,ZA==ロシアでの活動地域,ZB==ロシア側の情報種別,ZC==ロシア側の組織種別


  ◎設置手順4 管理者認証ページ 環境設定
基本的な環境設定を行います。
管理者認証ページ(database.cgi?cmd=ac)へアクセスします。
初期状態ではパスワードは未設定の為
何も入力せず認証ボタンを押して入室します。
環境設定を選択します。

■パスワード
必ず設定して下さい。

■sendmailのパス
メール送信用のsendmailのパスです。
サーバーに合わせて設定を変更して下さい。

■メールアドレス
管理者のメールアドレスです。

■CCメールアドレス
管理者以外へ同内容のメールを送信したい場合に設定します。

■ホームURL
戻り先のURL(トップページ等)です。

■検索フォームURL
データ検索フォームのあるページのURLです。

■このスクリプトの名称
スクリプト(データベース)の名称です。

■アクセスログ
アクセスログを何件/何ファイルまで保存するかを設定します。
※アクセスログを記録しない場合は0件と設定して下さい。

■最低投票間隔
同一ユーザーが同データに再投票を出来るようになるまでの時間です。

■カウントリセット間隔
カウント数を何時間毎にリセットするかを設定します。
※リセットしない場合は0として下さい。

■新着期間
データの登録から何時間まで新着期間として
NEWマーク表示対象とするかを設定します。

■更新期間
データの最終更新から何時間までを更新期間として
UPマーク表示対象とするかを設定します。

■カウント後のジャンプ先
カウントアップリンクをクリックした後の
ジャンプ先をデータ詳細ページにしたい場合はチェックして下さい。

■検索結果表示件数
検索結果の表示件数のデフォルトと最大値を設定します。

■自動リンクTarget
自動リンク機能で貼られたリンクのTargetを設定します。

■クッキー設定
クッキー名称,保存期間,クッキーによる直接認証の許可を設定します。
※クッキーによる直接認証とはユーザー認証ページから
ユーザー番号とパスワードを入力せずに
直接ユーザー室へ入室できるようにする機能です。

■カウントアップ制限設定
カウントアップを制限したいパターンの
チェックボックスをチェックします。

■ユーザーデータからの検索
データファイルベース検索時に
ユーザーファイル(user.cgi)のデータを
検索対象として指定できるようにする場合はチェックします。
※ONのままで問題ありませんが
ユーザーデータを検索条件として使用&検索結果で表示しない場合は
OFFにしておいた方が検索速度が向上します。

■制限設定
データ登録等のファイルへの書きこみを
Proxy経由や特定ドメインのみ制限したい場合は
チェックボックスをチェックします。
制限解除機能とは特定のドメインの制限を解除する機能で
Proxy制限や特定ドメイン制限で引っ掛かっても
制限解除ドメインに設定されていれば制限が解除されます。

■データ関連制限設定
複数データ登録制限とは同一ユーザーが
複数のデータを登録する事を制限します。
ユーザーのデータ登録制限とは
ユーザーがデータを登録する事を一切制限します(登録は管理者のみ)

■制限ドメイン/制限解除ドメイン
制限したい/解除したいドメインをホスト名やIPアドレスで設定します。
複数の場合「,」で区切って設定します。
※IPアドレスで123.と設定すると123.**.**.**のパターンを制限できます。
※IPアドレスで設定する場合必ず.を付けて下さい(×123 ○123.)

■管理者審査
管理者の審査を必要とするもののチェックボックスをチェックします。

■閉じるタグ
許可しているタグの中で
閉じるタイプのタグ(A,B,FONT等)を設定します。
複数の場合「,」で区切って設定します。

■使用可能タグ属性
使用出来るタグの属性をタグ毎に設定します。
A==href|targetのようにタグ名==属性(複数は|で区切る)
の形式で複数の場合「,」で区切って設定します。
※タグ名は必ず大文字にします。

■アップ可能ファイル形式
アップロード可能なファイル形式をデータ種類毎に設定します。
データ種類==拡張子
の形式で設定し1つのデータ種類で複数許可する場合は「&」で区切ります。
データ種類==拡張子&拡張子
各データ種類は「,」で区切ります。
(例) DFile==txt,File==gif&jpg
※この設定は[ユ][デ]共通となります。

■ファイルサイズ制限
アップロードするファイルのサイズ制限をデータ種類毎に設定します。
データ種類==上限サイズ(KB)
の形式で設定し各データ種類は「,」で区切ります。
(例) DFile==30,File==10
※この設定は[ユ][デ]共通となります。



  ◎設置手順5 環境設定 ユーザー登録関連部の設置
まずユーザーの情報として保存するデータ種類を決めます。
例えば名前,住所,年齢,性別など必要なデータをリストアップします。
※データ種類はいくつあっても構いません。

管理室から環境設定を選択します。
"全データ種類[ユ]"に先程リストアップしたデータ種類を設定します。
この際データ種類には半角英数字のみ使用可能となります。(-や_等も利用不可)
名前というデータならName,住所ならAddressのようにします。
複数の場合「,」で区切ってデータ種類を設定します。
※Pass,Mail,UserTypeは必ず必要なデータ種類です。
削除しないようにして下さい。

"全データ名称[ユ]"に"全データ種類[ユ]"に設定した
データ種類の名称を設定します。
これは例えばユーザー登録時にNameという種類のデータの
入力が不正だった場合にエラー画面で
Nameの入力が不正です。と表示しても登録する人には意味が分かりません。
その為Nameは名前のデータであると設定して
名前の入力が不正です。と表示する為のものです。
Name==名前のようにデータ種類==データ種類名称
の形式で複数の場合「,」で区切って設定します。
※Pass,Mail,UserTypeは必ず必要なデータ種類です。
削除しないようにして下さい。

"入力必須項目[ユ]"に入力を必須とするデータ種類を設定します。
複数の場合「,」で区切って設定します。
※Pass,Mail,UserTypeは削除しないようにして下さい。

"同一確認項目[ユ]"にユーザー登録時に
入力が同一である必要があるデータ種類2つを1組で設定します。
Pass==Pass2のようにデータ種類==データ種類
の形式で複数の場合「,」で区切って設定します。

"文字数制限項目[ユ]"にユーザー登録時に
入力文字数を制限するデータ種類を設定します。
Name==20のようにデータ種類==文字数(半角)
の形式で複数の場合「,」で区切って設定します。
※Pass==8は文字数は変えても削除しないようにして下さい。

"有効書式項目[ユ]","無効書式[ユ]"にユーザー登録時に
入力データの書式をチェックするデータ種類を設定します。
Pass==\wのようにデータ種類==正規表現
の形式で複数の場合「,」で区切って設定します。
※正規表現については(◎正規表現について)を参照

"数値上限項目[ユ]","数値下限項目[ユ]"にユーザー登録時に
数値をチェックするデータ種類を設定します。
Age==100のようにデータ種類==数値
の形式で複数の場合「,」で区切って設定します。

"確認時自動リンク項目[ユ]"にユーザー登録プレビュー時に
自動リンクされるデータ種類を設定します。
複数の場合「,」で区切って設定します。
※プレビュー時のみで保存されるデータには影響しません。

"自動リンク項目[ユ]"にユーザー登録時に
自動リンクされるデータ種類を設定します。
複数の場合「,」で区切って設定します。
※自動リンクされたデータが保存されます。

"改行可能項目[ユ]"にユーザー登録時に
改行が可能なデータ種類を設定します。
複数の場合「,」で区切って設定します。

"タグ使用項目[ユ]"にユーザー登録時に
タグが使用出来るデータ種類を設定します。
Comment==FONT&B&Iのようにデータ種類==使用可能なタグ(複数は&で区切る)
の形式で複数の場合「,」で区切って設定します。
※タグはかならず大文字で記述して下さい。

"チェックボックス項目[ユ]"にユーザー登録時に
チェックボックス,ラジオボタンのデータ種類を設定します。
UserType==h&vのようにデータ種類==value(複数は&で区切る)
の形式で複数の場合「,」で区切って設定します。
※valueとは<INPUT type="checkbox" name="UserType" value="h">のhの部分です。
※同じデータ種類で全く同じ値を複数設定(データ種類==A&Aのように)する事はできません。

"セレクトメニュー項目[ユ]"にユーザー登録時に
セレクトメニューのデータ種類を設定します。
Address==北海道&青森県のようにデータ種類==value(複数は&で区切る)
の形式で複数の場合「,」で区切って設定します。
※valueとは<OPTION value="北海道">*****</OPTION>の北海道の部分です。
※同じデータ種類で全く同じ値を複数設定(データ種類==A&Aのように)する事はできません。

"ファイルアップロード項目[ユ]"に
ファイルアップロードのデータ種類を設定します。
複数の場合「,」で区切って設定します。

"未入力時の表示値[ユ]"に
登録者が未入力としたデータ種類の検索結果での表示値を設定します。
File==space.gifのようにデータ種類==表示値
の形式で複数の場合「,」で区切って設定します。
※空白の表示で構わないデータ種類は設定の必要はありません。
※ここでの設定はあくまでも検索結果表示時のもので
データファイルにこの値が記録されるものではありません。

"データ保存項目[ユ]"にユーザー登録時に
ファイルに保存するデータ種類を設定します。
複数の場合「,」で区切って設定します。
※Pass,Mail,UserTypeは自動的に保存されるので設定しないで下さい。

ユーザー登録時等にメールを送信する場合は
"管理者宛送信[ユ]"と"ユーザー宛送信[ユ]"の
チェックボックスの必要なものをチェックして下さい。

メールを送信する設定にした場合メールのサブジェクトと本文を設定します。
設定はlib/db-mail.cgiを編集して行います。
詳しくは(◎メール文章設定法)をご覧下さい。

user-regist.htmlをHTMLエディタ等で開きフォームに必要な部品を
追加する等の編集を行います。
この際<INPUT type="***" name="Address">のように
name="データ種類"の書式で設定していきます。

user-regist-preview.htmlを開き編集します。
プレビュー画面で表示したいデータを自由に設定します。
フォームに入力されたデータを表示する為には
$PREFORM{Pass}のように$PREFORM{データ種類}の形式で設定します。

user-edit.htmlを開きフォームに必要な部品を追加する等の編集を行います。
この際<INPUT type="***" name="Mail" value="$DATA{Mail}">のように
name="データ種類" value="$DATA{データ種類}"の形式で設定していきます。
ただしチェックボックス(ラジオボタン)の場合は
<INPUT type="radio" name="UserType"
value="h" $CheckBox{UserType}{1}>のように
<INPUT type="radio" name="データ種類"
value="登録フォームと同じvalue"
$CheckBox{データ種類}{環境設定で設定したvalueの順番}>
の形式で設定します。
※環境設定で設定したvalueの順番とは例えば
UserType==h&vと設定していた場合hは1vは2となる。
またセレクトメニューの場合は
<SELECT name="Address">
<OPTION value="北海道" $Select{Address}{1}>北海道</OPTION>のように
<SELECT name="データ種類">
<OPTION value="登録フォームと同じvalue"
$Select{データ種類}{環境設定で設定したvalueの順番}>
登録フォームと同じ</OPTION>
の形式で設定します。

user-edit-preview.htmlを
user-regist-preview.htmlと同様に設定します。

なおuser-regist(edit)-admin.htmlは管理者専用ページで
database.cgi?cmd=ur&Who=Admin とアクセスすれば専用登録ページに
ユーザー認証で管理者として入室すれば自動的に専用編集ページになります。
管理者のみが登録・編集可能なデータ項目を作りたい場合等にご利用下さい。


  ◎設置手順6 環境設定 データ登録関連部の設定
ユーザー登録関連部と全く同様に
データ種類のリストアップ〜環境設定までをします。
※環境設定の設定項目は[ユ]ではなく[デ]の方です。
ただしユーザー登録関連と違う部分がいくつかあります。
※Pass,Mail,UserTypeというデータ種類は不要です。

data-regist.htmlをuser-regist.htmlと同様に
フォームに必要な部品を追加する等の編集を行います。

data-regist-preview.html は user-regist-preview.html
data-edit-preview.html は user-edit-preview.html
data-edit.html は user-edit.html
data-edit-admin.html は user-edit-admin.html と同様に設定します。

data-regist(edit)-admin.htmlは管理者専用ページで
database.cgi?cmd=dr&Who=Admin とアクセスすれば専用登録ページに
データ編集認証で管理者として入室すれば自動的に専用編集ページになります。


  全データの初期化
data,js,fileディレクトリ(及び中のファイル)を
全て初期のものにすれば完全に初期状態となります。



- Link Collection -