
作成された、enquete.htmlと、formail.cgiを各々の環境に合わせてカスタマイズし、サーバーに送ります。
enquete.htmlのカスタマイズ
enquete.htmlで必ずカスタマイズが必要なのは、
<FORM ACTION="/cgi-bin/formail.cgi" METHOD="POST">
<META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=x-euc-jp>
formail.cgiのカスタマイズ
formail.cgiでカスタマイズが必要なのは、
#!/usr/local/bin/perl $sendmail = '/usr/lib/sendmail'; $myaddress = 'yyy@xxx.xxx.or.jp';
新しい項目を追加する
さて、アンケート内容をHTMLの方で変えた場合は、当然CGIの方も変更しなければなりません。
1)変数の追加
1)単数選択項目欄の場合
2)複数選択項目欄の場合
2)メール送信の部分の項目追加
1)単数選択項目欄の場合
2)複数選択項目欄の場合
3)書き込みのお礼の部分の項目追加
1)単数選択項目欄の場合
print <<END_OF_HTML;
Content-type: text/html
<HTML>
<HEAD><TITLE>TANKS</TITLE>
</HEAD>
<BODY>
<H1>以下のように書き込みました。</H1><BR>
年月日:$year/$mon/$mday<BR>
お名前:$name<BR>
性別 :$sex<BR>
E-Mail:$email<BR>
HOMEPAGE:$homepage<BR>
きっかけ:$where<BR>
END_OF_HTML
|
2)複数選択項目欄の場合
きっかけ:$where<BR>
END_OF_HTML
print "<B>面白かったページ</B>:<BR>\n";
foreach $goods(@good){
print "${goods}<BR>\n";
}
print "<B>ためになったページ</B>:<BR>\n";
foreach $studys(@study){
print "${studys}<BR>\n";
}
print <<END_OF_HTML;
<B>コメント</B>:$comment<P>
|
カスタマイズの注意
★カスタマイズは、慎重に行って下さい。たとえば、$goodと$goodsは違いますし、”と"とは違います。; が抜けるだけで動作しません。もちろんアルファベット違いも動きません。
本当は、HTML部分だけのカスタマイズの方が良いのですが、まあ、理屈が解れば挑戦してみてもいいかもしれませんね。
★アップ後は、サーバーにTelnetで接続が許されているなら(シェルが解放されているなら)、デバッグしてみてください。
接続後、formail.cgiのあるディレクトリに移動して、perl
-wc formail.cgiと入力します。Syntax OKが出れば問題ない可能性が高くなります。エラーが出れば、どのあたりがエラーなのかが表示されますので、探してみてください。
★カスタマイズしたスクリプトをEUC,LFで保存してください。必ずそうしてください。
その他に必要なもの
htmlやcgiを含めて必要なものをアーカイブでまとめてありますので、ダウンロードしてください。(すべて文字コードはEUC、改行コードはLFになっていますので、EUC
LFに対応したエディタが必要です)
Windows版は解凍にLHAソフトが必要です。ディレクトリ付で解凍してください。
Macintosh版は解凍にStuffIt Expanderが必要です。
ZAPさんのフリーソフトダウンロードページへ ←ここをクリックする
ファイルの送信とパーミッション
enquete.htmlとformail.cgiおよび各ファイルをを各々の場所に送信します。
★enquete.htmlの<FORM ACTION="Pass">で指定したformail.cgiのパスと同じ位置関係に置いてください。
★jcode.plとcgi-lib.pl .htaccessは、formail.cgiと同じディレクトリに置きます。
★すべてASCII(TEXT)モードで送ってください。
★FTPでの送信の方法が解らなければ、FTPでputのページをご覧ください。
次に、パーミッションを設定します。
★enquete.html、.htaccessは、デフォルトのままで良いのですが、
★formail.cgi,jcode.pl,cgi-lib.plは705にします。
旨く行かないときのチェック項目。
旨く行かない時は以下の点をチェックします。
cgi-binに入れる場合、パスをフルパスにしなければならない、とか、スクリプトエイリアスを経由するため、/UserID-bin/xxx.cgiにするなどの決まりが有る場合があります。パスに関しては安全を考えサーバーの管理者に詳しく電子メールなどで聞いたほうよいです。
特に以下の5つの点は間違っていると、動作しません。
1) htmlでActionで指定する、cgiのパスの書き方
2) cgiスクリプト内でsendmailのパスの書き方。
3) .htaccessが必要かどうか。
4) perlのパス(#!/usr/local/bin/perlなど)
5) cgiを入れるディレクトリに決まりがあるか。