□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ ------------------ CGI・3分クッキング ---------------------(^○^)~~ 発行日:1999年7月20日 毎週火曜と金曜発行 Vol.【005】 ●PR●━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ゲームソフト通信販売!新作ソフトが発売日にお手元に届きます! http://takafumi.grabit.net/powersoft/ ⇔⇔Web新撰組News http://www.web-kyoto.com/ ⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔   最近鷹氏出張が多いので、飯を食わせてもらっていません。   はぎちゃんおなかすいた・・・ ⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━●PR● □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ 【今日の献立:娯楽の殿堂其之三】==========================================   今回はデータの足し算と引き算とでデータの処理を分けます。   また、ついでに保存されているデータを読み込む部分と書き込む部分も書いて しまいましょう。   さて、娯楽の殿堂のフォームの部分は、こんな感じになってました。
  得点を入れる場合は、actionにpushという値が、引く場合は、pullという値が 入っています。これで動作を区別します。   前回お話した通り、ユーザーからの入力は%FORMという名前の連想配列に入って いますので、ここからactionを取りだします。 $FORM{'action'}   がその値を持っています。そこで、、、 if($FORM{'action'} eq "push"){ 足し算ルーチン }elsif($FORM{'action'} eq "pull"){     引き算ルーチン }   とします。   が、ちょっと問題があります。ただ単にこのCGIを開いて見ただけでボタンを 押していない場合、$FORM{'action'}が存在しません。存在しない変数でeq等の 比較演算を行うのは、あまりよい事ではありません。まあPerlなら問題ないかも 知れませんが言語によっては暴走を招きます。   そこで、$FORM{'action'}が存在するかどうかを先に調べておきます。 if(!$FORM{'action'}){ $FORM{'action'}="showhtml"; }   というわけで、「娯楽の殿堂」はこんな感じになります。 hanarakkyo.cgi(0.04) #!/usr/local/bin/perl $CgiName="./hanarakkyo.cgi"; $DataFile="./kacchoii.data"; &get_formdata; &ReadData; if(!$FORM{'action'}){ $FORM{'action'}="showhtml"; } if($FORM{'action'} eq "push"){ 足し算ルーチン }elsif($FORM{'action'} eq "pull"){     引き算ルーチン } &ShowHtml; exit; #データを読み込むサブルーチン sub ReadData { open(IN,"$DataFile"); @Lines=; close(IN); } #データを書き込むサブルーチン sub WriteData { local(@NewLines)=@_; local($line); open(OUT,"> $DataFile"); foreach $line (@NewLines) { print $line,"\n"; } close(OUT); } #フォームからデータを得るサブルーチン sub get_formdata {   (この内容は前回と一緒) } # html表示のサブルーチン sub ShowHtml {   (この内容は前回と一緒) }   ついでにデータを読み込むサブルーチンと書き込むサブルーチン もつけておきました。   次回は、足し算引き算をします。 ===============================================================【続く】 ---------------------------------------------------------------------- このメールマガジンは、 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 に、削除及び登録フォームを用意致しております。 ---------------------------------------------------------------------- (^○^)/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 【お願い】 このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 はぎちゃんに対する質問・苦情は、このメールマガジンのリプライでどうぞ。 麗しいお嬢様の愛情は個人的に大歓迎ですが、アニキの愛情は勘弁して下さい。 【今回の担当】 WEB新撰組CGIプログラマー はぎちゃん(萩原 逸郎)でした。                 監修 組長(津田 羊子)&鷹(津田 貴史) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\(^○^)