CGI練習
since 2001.1.20
※注意 このページのCGIを利用して生じた結果について、
当方は一切の責任を負いません。 .
- 割勘電卓【warikan.cgi】Ver0.02 2006.1.3
割勘のときに、酒豪は割り増し、下戸は割引して計算が出来ます。i-modeで使う事を想定してシンプルな画面になっています。
ソースは後日見直して公開の予定です。http://oi21.com/cgi_lib/warikan/warikan.cgi
- トップページの一言簡単更新2【kantan2.cgi】Ver0.01 2001.11.21
簡単更新のファイルをアップしないでその第二弾の紹介です。これは、ホームページ「KENT WEB」掲示板「SUN BOARD」の最新書き込みSSIを利用してトップメッセージとして表示する簡単なCGIです。従ってSSIが許可されていないサーバーでは動作しません。CGIタイプもちょっと運用方法を変えれば出来るのですが、それは別の機会にしたいと思います。
SUN BOARDの設定等はKENT WEBに詳しく書いてあります。パスワードを変更して管理者だけが書き込みできるようにして下さい。
文字コードについては、HTMLのコードとkantan2.cgiのコードを同じにする必要があると思います。違うと多分文字化けします。
SUN BOARD自体はトップメッセージのバックナンバーとして利用出来ます。他の掲示板でもデータ構造が分かれば簡単に応用が出来ると思います。
◆◇◆◇◆◇ 設定例 ◆◇◆◇◆◇
■ファイル構成
index.html ・トップページ
[new]フォルダ ----- ・SUN BOARD をインストールします。
・ここに以下のkantan2.cgiをインストールします。
ファイルの属性は、705などにします。
■ファイルソース(kantan2.cgi)
#!/usr/bin/perl
$change = "./sunbbs.log";
open DATA, $change;
$line = <DATA>;
close DATA;
($no,$date,$dum1,$dum2,$title, $msg,$dum3,$acs,$dum4) = split(/<>/,$line);
&auto_link($msg);
print "Content-type: text/html\n\n";
print "$msg";
print "<div align=right>$date</div>";
sub auto_link {
#KENTWEB SUNBBS.CGIより引用
$_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1<
a href=$2 target=_top>$2<\/a>/g;
}
■トップページ(index.html)の変更
トップページのメッセージを表示したい部分に以下の様に設定します。
<!--#include virtual="./new/kantan2.cgi"-->
■メッセージの書き込み
実際にメッセージを書き込む時は、SUN BOARDを利用します。SUN BOARDの説明を
ご覧下さい。SSIですから、設定が正しいとindex.htmlを表示した時に最新のメッセージ
データが表示されます。
- パソコン、iモードHP切り替え【start.cgi】Ver0.01 2001.8.30
これだけiモードが普及するとiモード用のホームページも作成したくなるものです。しかし、パソコンのホームページのアドレスの最後に「/i/」などを追加するだけとは言っても、その告知は案外面倒です。このCGIは、サーバーの設定でindex.htmlやindex.htm以外の任意のファイルをホームページをアドレスの最後がスラッシュ「/」で終了した時に自動的に表示されるものとして指定できる時に限られます。ここでは「start.cgi」と設定することになります。サーバーの設定についてはご自分で調べて下さい。
■ファイルソース(start.cgi)
#!/usr/bin/perl
$imode_url = 'http://www.oi21.com/i/';
$pc_url = 'http://www.oi21.com/';
$agent = $ENV{'HTTP_USER_AGENT'};
($browser, $version, $model) = split(/\//, $agent);
if ($browser eq "DoCoMo") {
print "Location: $imode_url\n\n";
} else {
print "Location: $pc_url\n\n";
}
- ランダムバナー表示【bana.cgi】Ver0.01 2001.6.23
トップページの任意の位置に、バナーを表示します。乱数を使ってファイルの中から団ラムに選択します。バナーの画像ファイルとリンクURLはdata.cgiにタブを区切りとしたテキストファイルとします。SSIですから、SSIが使えるようになっていなければなりませんし、トップページでは、<!-- #include virtual="./banassi.cgi"--> のようにしてプログラムを実行します。変数の初期化が以下で適当なのか分かりませんが、サーバーの秒を利用しています。
■ファイルソース(banassi.cgi)
#!/usr/bin/perl
$datafile = "data.cgi"; # 644
open DB, $datafile;
@lines = ;
#$number = @lines; # 要素の個数
$number = $#lines; # 最後の添え字
close(DB);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
srand($sec);
$m = int(rand($number));
#$number = 3;
#$m %= $number;
$line = $lines[$m];
($filename, $url) = split(/\t/, $lines[$m]);
print "Content-type: text/html\n\n";
#print "$line";
print "<a href=\"$url\"><IMG src=\"bana/$filename\" border=0></a>";
print "[<font color=black>$number, $m</font>]";
print "$line";
■データ例(data.cgi)
01.gif http://www.oi21.com/test1/
02.gif http://www.oi21.com/test2/
03.gif http://www.oi21.com/test3/
04.gif http://www.oi21.net/test4/
- 簡単更新【kantan.cgi】Ver0.01 2001.4.10
いつ見ても同じトップページになっていませんか。トップページに毎日ちょっとしたメッセージを入れるだけでもホームページを訪問してくださる方の印象は違ってくる様です。もちろんアクセスアップにも繋がります。この「簡単更新」ではcgiを使ってトップページの一部を簡単に変更出来るようにしたものです。
設置がちょっと面倒かもしれませんが、簡単な仕組みのcgiですが、おすすめです。
■ダウンロード:kantan001.lzh 準備中!
■サンプル:ここ
- 予約システムになる予定【yoyaku.cgi】Ver0.01 2001.4.1
将来は、美容院、パソコン教室などの予約システムにしたいのですが、現在は2週間の予定表?となっています。入力したデータの訂正も出来ません。iモードでの利用を想定して画面を作成しています。近く入力した内容のメール送信機能を設置する予定です。
■ダウンロード:yyaku001.lzh
■サンプル:ここ
- ファイル更新チェック 【new.cgi】 Ver1.00 2001.2.22
そんなに細かく管理したくはないが、ホームページを更新したことが分かりにくいので、1週間以内に更新された項目には、「New!」とでも表示をしたい。そんなことは良くあると思います。JavaScriptなどを使えばわざわざCGIを利用しなくても出来るかもしれませんが、練習その1として作ってみました。掲示板の内容が更新されたことをトップページに表示したい時に便利です。
■ダウンロード:new110.lzh
ファイルを展開しreadme.txtをご覧下さい。簡単に設置方法を説明しています。
- カウンタ&ログ記録 【count.cgi】Ver1.00 2001.1.19
アクセスカウンタとログ記録は別のものをそれぞれ動かしていました。SSIを使用しないのでIMGタグを利用したログ記録を使っているのですが、アクセスカウンタのあるページでログの記録をする事が多いので機能を合体させました。カウンタは、以下の二つのホームページから、
1.Access Counter Ver 2.0 公開用
Copyright 1996/8/21 Funny(ホームページ助っ人)
2.wwwcount.cgi Ver3.07 作者: とほほ
また、画像連結スクリプト「gifcat.pl」を利用しています。
ログの記録は、
1.ログ記録CGI WebACCESS v2.2 is Free. (c)rescue@ask.or.jp
を改造しています。
■ダウンロード:countlog.lzh
ファイルを展開しreadme.txtをご覧下さい。簡単に設置方法を説明しています。
2001.1.19 作成
|