■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■               CGI3分クッキング                                  Vol:025                          発行日: 1999年10月1日                        総発行部数:     1330部                           (1999年9月30日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●「いづつ屋」ホームページ開設!!  Web新撰組ご用達のお肉屋さん「いづつ屋」が、この度  インターネット通信販売を始めました。  お味は、Web新撰組メンバー一同が保証いたします!!  めちゃくちゃ美味しいお肉を、是非ご賞味下さいませ。  http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●今日の献立:ヨッ!人気者っ!!(その2) ●予告 ●はぎちゃん今日のひとこと ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ■■ Windows 2000時代に備えて ・徹底比較:ActiveDirectory vs NDS 8・■■ ノベル情報戦略セミナー【D-day】 参加無料 10/8:東京 10/15:大阪 click< http://a.clickincome.net/md/dk?mid=d6b26a5debd0aa5395313cb2b9bcc157 > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ●Web新撰組ニュース   メールを使った新しい遊びを追及する「メールで遊ぼう!」。   多数の登録ありがとうございま〜す!   引き続き会員募集を行っておりますので、未だの方は、   http://www.web-kyoto.com/vmail/   へGO!   Web新撰組メンバー執筆のCGI参考書。   「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。   内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ●今日の献立:ヨッ!人気者っ!!(その2)   今回からプログラムを作って参ります。プログラムは、全てEUCコードで書く 事にします。   が、前回紹介したサブルーチンですが、もう一つ、タイムアウト用のサブルー チンを書くの忘れてましたんで、書いておきます。 ----------------------------------------- sub time_to_exit { close(HTTP); print "Server is busy."; exit(1); } -----------------------------------------   あと、書き込みの時にフォームから受け取るデータをデコードする部分も必 要なので、この部分もサブルーチンにしておきます。 ----------------------------------------- sub GetFormdata { local($buffer,$name,$value,@pairs); require 'jcode.pl'; if ($ENV{'REQUEST_METHOD'} eq "POST"){ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }else{ $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$buffer); foreach (@pairs) { ($name, $value) = split(/=/, $_); $value =~ tr/+/ /; $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; $value =~ s/\r\n/\n/g; $value =~ s/\r/\n/g; $value =~ s//>\;/g; &jcode'convert(*value,'euc'); $FORM{$name} = $value; } } -----------------------------------------   GetFormdataを実行すると、フォームから送られたデータが%FORM変数に入り ます。   必要なサブルーチンは、time_to_exit、httpSend、openSocket、GetFormdata の3つ。あとGetFormdata内でjcode.plも使ってます。   では、本体部分のプログラムを始めます。   先ず、ターゲットとなるチャットの書き込み内容をそっくりまとめて盗んで来 ましょう。   盗んでくる先のチャットのURLを、 http://www.www.www/~kappa/chat.cgi   ホスト名を www.www.www   とします。 ---------------------------------- 1:#!/usr/local/bin/perl 2: 3:$ChatURL='http://www.www.www/~kappa/chat.cgi'; 4:$ChatHost='www.www.www'; 5:$CgiName='./hninki.cgi'; 6: 7:&GetFormdata; 8: 9:if(!$FORM{'action'}){ 10: $action='show'; 11:}else{ 12: $action=$FORM{'action'}; 13: $action='show' if($action ne 'write'); 14:} 15: 16:if($action eq 'show'){ 17: &httpSend("$ChatURL","$ChatHost",1,300); -----------------------------------------   とりあえずここまでを説明します。   1行目の#!/usr/local/bin/perlはサーバーによって異りますんで書き換えて 下さい。   3〜6行目は初期設定です。   $ChatURLと$ChatHostはそれぞ盗んで来る先のチャットのURLとサーバーアドレ スです。   $CgiNameはこのCGIのファイル名です。   7行目でフォームからのデータを読み込みます。   9〜14行目は、書き込みか、ただの表示かの判断用の変数設定です。   もし$FORM{'action'}というデータがなければ、表示、そうでなくて、 $FORM{'action'}がwriteという値を持っていれば、書き込み、という事にします。   16行目は、もし、表示モードであれば、という意味になります。   17行目で、ターゲットのチャットにアクセスして、データを@buf変数に読み 込みます。   さて、読み込んだはいいですが、これをそのまま表示してしまうと、ターゲッ トのチャットと同じになってしまいます。   また、書き込みをしたりリロードしたりすると本物のチャットの方に飛んで行っ てしまいます。   そこで、この@bufの内容を適当にいじって、さも自分のチャットのように見せ ます。   次回に続く・・・。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆予告◆------------------------------------------------------------------ ●10月5日(火)は都合によりお休みします。  次回10月8日(金)は、引き続き「ヨッ!人気者っ!!」です。 ------------------------------------------------------------------◆予告◆ ◆PR◆-------------------------------------------------------------------- 大学生・大学院生・短大生のための最新就職サイト「メガジョブ」登録開始!!! まずは、話題の「メガジョブ」に登録して就職活動のスタートを! click< http://a.clickincome.net/md/dk?mid=556070f6a8885f935f19fcb5358aeedd > やりたいって言ったら、今すぐやりたいんだい!! いや〜んえっちぃ〜〜、、、じゃないよ、ゲームのお話し。 欲しいソフトが発売日に手元に届きます。こりゃええわい。 てなわけで、こちらにどうぞ。 http://takafumi.grabit.net/powersoft/ --------------------------------------------------------------------◆PR◆ このメールマガジンは、 Subject部が、CGI3分クッキング【Vol.番号】は、まぐまぐ様にて、 ( http://www.mag2.com/ ) Subject部が、CGI3分クッキング Vol.【番号】は、Macky様にて、 ( http://macky.nifty.ne.jp/ ) Subject部が、CGI3分クッキング番号 は、Pubzine様にて、 配布致しています。 メールマガジンの解除について まぐまぐ様の解除は、 http://www.web-kyoto.com/dp/3min/ に、削除及び登録フォームを用意致しております。 Macky様の解除は、 http://macky.nifty.ne.jp/ を参考して下さい。 Pubzine様の解除は、 http://www.pubzine.com/srchid.asp?keyword=1379 に、削除及び登録フォームを用意致しております。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆はぎちゃん今日のひとこと◆------------------------------------------  ●メールで遊ぼう!が大人気!!   登録者1000名を突破しました!!!   でも、やっぱり誰もメールくれない・・・しくしく、、、 ------------------------------------------◆はぎちゃん今日のひとこと◆ ◆お願い◆ このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 ◆担当者◆ 本文文責    :Web新撰組プログラマー萩原逸郎 Web新撰組  :http://www.web-kyoto.com/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■