■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■               CGI3分クッキング                                  Vol:023                          発行日: 1999年9月24日                        総発行部数:     1301部                          (1999年9月23日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆--------------------------------------------------------- ●「いづつ屋」ホームページ開設!!  Web新撰組ご用達のお肉屋さん「いづつ屋」が、この度  インターネット通信販売を始めました。  お味は、Web新撰組メンバー一同が保証いたします!!  めちゃくちゃ美味しいお肉を、是非ご賞味下さいませ。  http://www.tanba-izutsuya.com/ ---------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●今日の献立:出張ぜんまいはぎちゃん最終回 ●予告 ●はぎちゃん今日のひとこと ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ★★★ 海外旅行にいきたい!!i-book!!が欲しい!! ★★★ 先立つものは、ここにあります。ウェブキャッシング、24時間申し込み可能。 click< http://a.clickincome.net/md/dk?mid=518ffc25ae229975c021b529a82ef385 > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ●Web新撰組ニュース   メールを使った新しい遊びを追及する「メールで遊ぼう!」新装開店です。   http://www.web-kyoto.com/vmail/   いますぐ会員登録だ!   Web新撰組メンバー執筆のCGI参考書。   「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。   内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ●今日の献立:出張ぜんまいはぎちゃん最終回   今回も出張ぜんまいはぎちゃんの最終回です。   前回でめでたくCGIは完成しましたが、これを呼び出すのには、いちいちブラウ ザにURLを入れてやらねばなりません。   ボタンを押したらぜんまいはぎちゃんが出張してくるようにしようと思います。   で、前に紹介したおこさまさんの「二日酔いげろげろチャット」 (http://www.okosama.net/cgi/chat2.cgi)をもう一度見てみますと「ぜんまいはぎ ちゃん」ボタンがついています。   この部分のソースを見ますと、
  となっています。   このようなフォームを使ってぜんまいはぎちゃんを呼び出すように改造します。   ボタンを設置するチャットのURLを仮に http://www.karikari.ne.jp/~karikari/cgi-bin/karikarichat.cgi   サーバーのアドレスを www.kh.rim.or.jp   ぜんまいはぎちゃんCGIのURLを http://www.ushiuma.ne.jp/~tanuki/cgi-bin/zenmai.cgi   とします。 ------------------------------------------------------------- 1:#!/usr/local/bin/perl 2: 3:require 'jcode.pl'; 4:require './www.pl'; 5:require './zhagi3.pl'; 6: 7:$chaturl="http://www.karikari.ne.jp/~karikari/cgi-bin/karikarichat.cgi"; 8:$chathost="www.karikari.ne.jp"; 9 10:$hhttp_status=0; 11: *01:if ($ENV{'REQUEST_METHOD'} eq "POST"){ *02: read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); *03:}else{ *04: $buffer = $ENV{'QUERY_STRING'}; *05:} *06:@pairs = split(/&/,$buffer); *07:foreach (@pairs) { *08: ($name, $value) = split(/=/, $_); *09: $value =~ tr/+/ /; *10: $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; *11: $value =~ s/\r\n/\n/g; *12: $value =~ s/\r/\n/g; *13: $value =~ s//>\;/g; *15: $FORM{$name} = $value; *16:} *17:$uname=$FORM{'uname'} if($FORM{'uname'}; *18: 12:$hhttp_status=&httpSend($chaturl,$chathost,1,90); 13:&error(500) if($hhttp_status == 0); 14:$mess=$buf[15]; 15:&jcode'convert(*mess,'euc'); 16: 17:$mess = (split(/
/,$mess))[0]; 18:($name,$message)=split(/<\/b>:/,$mess); 19:$name = (splir(//,$name))[1]; 20:$Dict1='dict1'; #辞書1 21:$Dict2='dict2'; #辞書2 22:$hword=&zhagi'answer($name,$message,"$Dict1","$Dict2"); 23: 24:if($hword){ 25: $chaturl2="$chaturl?uname=ぜんまいはぎちゃん&mess=$hword"; 26: $hhttp_status=&httpSend($chaturl2,$chathost,0,90); 27: &error(600) if($hhttp_status==0); 28:}else{ 29: &error(600) 30:} *19:print "Location: $chaturl?name=$uname\n\n"; 31:#print "Location: $chaturl\n\n"; 32: 33:exit; 34:sub error { 35: local($err_flag)=@_; 36: 37: print "Content-type: text/html\n\n"; *20: print "めんどくさいので話しませんでした
戻る

\n"; 38:# print "めんどくさいので話しませんでした
戻る

\n"; 39: print "$err_flag\n"; 40: exit; 41:} -------------------------------------------------------------   前回完成した出張ぜんまいはぎちゃんCGIに*のついている行を追加します。   次に、もともとの31行目 print "Location: $chaturl\n\n";   の前に#マークをつけてコメントアウトするか、31行目を消去して下さい。   38行目も、31行目と同じくコメントアウトするか消去して下さい。   チャットCGIに設置するボタンのフォームは以下のようになります。 -------------------------------------------------------------

-------------------------------------------------------------   の$nameはチャットCGI中の書き 込みする人の名前を保存している変数名です。各CGIによって異ります。   また、フォームではなくリンクの形でも同じ事が出来ます。