- ●Tripod CGI ガイド
- http://www.tripod.co.jp/guides/cgi.html
- ●Tripodヘルプ! / Tripodツール / TripodCGI
- http://home.tripod.co.jp/help/tool/tripodcgi.html
- ●Tripodホームページ作成ヘルプ掲示板
- http://www.tripod.co.jp/interact/
CGI設置の基本手順および利用方法は以下の通り。
- スクリプト中にTripodの広告を入れておく(ポップアップまたは埋め込み式広告)→http://www.tripod.co.jp/guides/cgi.html#step6
- マイアカウントページで、CGI設定で「CGIを利用する」に設定。
- 「cgi-bin」というフォルダが作成される。ここに動作させたいCGIスクリプトをアップロード。
- ちなみにCGI本体の拡張子は「.cgi」または「.pl」。ログファイルは「.log」「.dat」「.txt」などなんでも可らしい。
但し、htmlファイルや画像ファイルはアップロードしてもアクセスできない。画像ファイルはcgi-binフォルダ以外にアップロードし、直接「http://members.tripod.co.jp/メンバー名/image/画像名.gif」などと呼び出す必要あり。
※但し「gifcat.pl」を利用しているカウンターの場合、数字画像は通常どおりcgi-binフォルダ内にアップロードしておく(画像へのリンクではなく、カウンタCGI本体が出力するため)。
- CGI本体の呼び出し方(リンク)は次のとおり。
http://cgi.tripod.co.jp/メンバー名/cgi-bin/CGIファイル名.cgi
- CGIから「http://members.tripod.co.jp/メンバー名」内へのリンクは通常どおり相対パスのままで可らしい。リンクの表示は「http://cgi.tripod.co.jp/メンバー名/〜」でも、クリックするとちゃんと「http://members.tripod.co.jp/メンバー名/〜」へジャンプし、該当ページを表示してくれる。
●制限事項
制限事項に関する基本情報は以下のページに。
http://www.tripod.co.jp/guides/cgi.html
Tripodでの使用が制限されているコマンド例;
- system
- exec
- fork
- chown
- chmod
- sleep
- kill
- ソケット(sockets)に関連するすべてのコマンド
- chdirなんかもダメだめらしい?→とほほさんのラウンジが設置できない?
- cgi-binから上はフォルダをたどれない(htmlファイルの設置場所とサーバが異なる?当然??)→全文検索CGIなどが利用できない?
その他、$ENV{'HTTP_REFERER'}なども使えないらしい。
●使えるものメモ
KentWeb のSymlink Checker でチェックしたところ、「symlink関数」「flock関数」は使用可能という判定がでた。
●TripodMail.pm の利用方法(Tripodでフォームメール送信CGIを利用する方法)
『TripodMailは、CGIスクリプトからメールを送るためのモジュール』とのこと。しかし、使い方をマスターするまでけっこう時間がかかった……(^^;)。
以下、KentWebの postmail(WEB上からメール送信することのできるメールフォーム)の設定&改造を例に(ちなみに確認した postmail のバージョンは「Ver: 2.1」)。
1)postmail.cgiの次の箇所を変更する
▼「# メールソフトまでのパス」は不要なのでコメントアウト
# メールソフトまでのパス
# → sendmailの例 :/usr/lib/sendmail
# → BlatJの例 :c:\blatj\blatj.exe
#$mailprog = '/usr/lib/sendmail.exe';
▼「# 送信先メールアドレス」はあなたのアドレスを
# 送信先メールアドレス
$mailto = 'あなたのメールアドレス';
▼「# メールプログラムのパスチェック/種類チェック」は以下のように。
# メールプログラムのパスチェック/種類チェック
#unless (-e $mailprog) { &error("メールプログラムのパスが不正です"); }
#if ($mailprog =~ /blat/i) { $pgType = 2; } else { $pgType = 1; }
$pgType=1;
注)以前は$pgTypeが$prog_typeと表記されてたんですが、いつの間にか変わってる……なんでや?(笑)
▼【重要】「# sendmail送信」の以下の部分を次のように改造。
#長いからbegin-cutでコメントアウト
=begin
open(MAIL,"| $mailprog -t") || &error("メール送信に失敗しました");
print MAIL "To: $mailto\n";
print MAIL "From: $email\n";
print MAIL "Subject: $subject2\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Date: $dat2\n";
print MAIL "X-Mailer: $ver\n\n";
print MAIL "$mail_body\n";
close(MAIL);
=cut
require '../TripodMail.pm';
$MAIL = new TripodMail;
$mail_template = "./mailtemplate.txt";
%variables = (
'mailto' => $mailto,
'email' => $email,
'subject2' => $subject2,
'dat2' => $dat2,
'ver' => $ver,
'mail_body' => $mail_body
);
( $MAIL->sendMail($mail_template, \%variables) ) || &error("メール送信に失敗しました。");
2)TripodMail.pm用のテンプレートを作成する
TripodMail.pmはあらかじめテンプレート(ファイル)が必要なため、作成してアップロードする。ファイル名はとりえず「mailtemplate.txt」で。
作成したmailtemplate.txtは、postmail.cgiと同じフォルダすなわちpostmailフォルダに保存しておくこと。
テンプレートファイルの中身はとりあえず以下のとおり:
To: $mailto
From: $email
Subject: $subject2
MIME-Version: 1.0
Content-type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Date: $dat2
X-Mailer: $ver
$mail_body
3)FTPソフトを使って(Tripodのサーバの)cgi-binフォルダにアクセス。postmailフォルダを作成し、(自分のパソコンの)postmailの各ファイルを転送。
但し、postmail.htmlについては、cgi-bin以外の場所(どこでもよい)にファイルを転送すること(cgi-bin内のhtmlファイルはアクセスできない。Tripod側の仕様のため)。
その際、postmail.htmlの中身の、form部分のaction属性は以下のように書き換えておくこと。
<form action="./postmail.cgi" method="POST">
↓
<form action="http://cgi.tripod.co.jp/メンバー名/cgi-bin/postmail/postmail.cgi" method="POST">
4)【重要】最後に、postmailフォルダをメンバーディレクトリ(つまり、cgi-binが存在するのと同じ階層のディレクトリ)に作成。
こうしておかないと、cgi-bin/postmailディレクトリ内に「mail.数字」のファイルが作成されるだけでメールが送信されない。
なお理由については不明(汗)。Tripodホームページ作成ヘルプ掲示板の過去ログにあった対応策。ちなみにcgi-binフォルダに直接postmail.cgiなど設置した場合、この作業は不要だったりします、実は。
すべての設定完了後は、次のような感じになる
http://cgi.tripod.co.jp/メンバー名/cgi-bin/postmail/postmail.cgi
http://cgi.tripod.co.jp/メンバー名/cgi-bin/postmail/mailtemplate.txt
http://cgi.tripod.co.jp/メンバー名/cgi-bin/postmail/jcode.pl
http://members.tripod.co.jp/メンバー名/postmail/
http://members.tripod.co.jp/メンバー名/postmail.html
5)「TripodMail.pm」内のメールアドレスチェックについて
「TripodMail.pm」の中の、以下の部分はコメントアウトしておくことをおすすめします(但し自己責任で。万一のために予備をコピーしておくように)。
メールアドレスのチェックをする部分なのですが、アドレスに「-」などがあるとエラーになるようです。実は私自身のメールアドレスが該当していて、最初メールが送信されない理由がわからず、ずいぶん悩みました。
# check final template format
# if ($message !~ /to:.*\w+@\w+\.\w+/i){
# print STDERR "To: field missing or invalid recipient\n";
# return 0;
# }
# if ($message !~ /from:.*\w+@\w+\.\w+/i){
# print STDERR "From: field missing or invalid sender\n";
# return 0;
# }
以上でpostmail.htmlからのフォーム送信が可能となるはずです。
このページの先頭へ