■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■               CGI3分クッキング                                  Vol:035                          発行日: 1999年11月09日                        総発行部数:     1581部                            (1999年11月08日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●おいしいお肉でお馴染の「いづつ屋」では、  只今100名様限定キャンペーン中。  牛タンのみそ漬けを1000円にてご奉仕中!  めちゃくちゃ美味しいお肉を、是非ご賞味下さいませ。  http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●今日の献立:検索CGIを作りましょ ●予告 ●はぎちゃん今日のひとこと ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ◆ いまからでも間に合う 「SE・プラグラマーを目指して頂ける方」大募集!◆ ◆ 11月16日(火) ◆ 専門・短大・大学・中途の方を対象にセミナー開催! ◆ click< http://a.clickincome.net/md/dk?mid=dacdd53a9b97756d3d0dffefe6f4f62b > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ●Web新撰組ニュース   メールを使った新しい遊びを追及する「メールで遊ぼう!」。   出会いの広場「みんなの掲示板」も登場!   http://www.web-kyoto.com/vmail/   へGO!   Web新撰組メンバー執筆のCGI参考書。   「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。   内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ●今日の献立:検索CGIを作りましょ   最初に・・・   前回、分類に「その他」を入れるの忘れてました。31番目にその他、というの を追加しといて下さい。   あと、データベースに入れる項目で、作品名にもふりがなを入れたいと思いま す。漢字が苦手なんで。。。   内容       形式   入力条件   データの数 1:題名       文字列  必須     1 2:題名よみがな   文字列  入れたければ 1 3:作者名      文字列  必須     複数可 4:作者名よみがな  文字列  あれば    複数可 5:訳者名      文字列  あれば    複数可 6:収録先      文字列  あれば    複数可 7:収録先よみがば  文字列  入れたければ 複数可 8:収録作品     文字列  あれば    複数 9:収録作品よみがな 文字列  入れたければ 複数 10:国名       文字列  あれば    複数可 11:出版社      文字列  あれば    1 12:発行年月日    文字列  あれば    1 13:値段       文字列  あれば    1 14:ISBN     文字列  あれば    1 15:分類       文字列  必須     1 16:購入日      文字列  あれば    1 17:関連URL      文字列  あれば    1 18:URLへのコメント  文字列  あれば    1 19:備考       文字列  あれば    1   てな具合になりました。   では、今回は検索部分のCGIを作って行きます。 ◇検索方法は、、、   そう言えば、、、まだ検索方法も決めてないんだった・・・。行き当たりばっ たりの恐さよ。。。   えー検索方法ですが、 1:題名検索   1:題名、6:収録先、8:収録作品から入力した文字列を含むものを探し出   します。 2:題名よみがな検索   2:題名よみがな、7:収録先よみがば、9:収録作品よみがなから入力した   文字列を含むものを探し出します。 3:作者名検索   3:作者名から入力した文字列を含むものを探し出します。 4:作者名よみがな検索   4:作者名よみがなから入力した文字列を含むものを探し出します。 5:分類検索   15:分類から、選択フォームで選んだ分類のものを探しだします。 6:備考検索   19:備考から入力した文字列を含むものを探し出します。   検索方法はこの6種類。and,orの検索も出来るようにしましょう。 ◇アタマ   例によって前についてる数字は行番号なので無視して下さい。 ----------------------------------------------- 1:#!/usr/local/bin/perl 2: 3:use Sprite; #Spriteの読み込み 4:$CgiName='hserch.cgi'; #このCGIのファイル名 5:$CgiTitle='熱血!検索君'; #このCGIの名前 6:$DBFile='book.db'; #データファイル名 7: 8:%FORM=&GetFormdata; #フォームの内容を%FORMに入れる 9: 10:if($FORM{'action'}){ #actionによって動作を変える 11: $action=$FORM{'action'}; 12:}else{ 13: $action="show_serch_form"; 14:} 15: -----------------------------------------------   GetFormdataサブルーチンは前々回に使ったのをそのまま使います。 ----------------------------------------------- 1:sub GetFormdata { 2: local($buffer,$name,$value,@pairs,%FORM); 3: 4: require 'jcode.pl'; 5: 6: if ($ENV{'REQUEST_METHOD'} eq "POST"){ 7: read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); 8: }else{ 9: $buffer = $ENV{'QUERY_STRING'}; 10: } 11: 12: @pairs = split(/&/,$buffer); 13: foreach (@pairs) { 14: ($name, $value) = split(/=/, $_); 15: $value =~ tr/+/ /; 16: $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; 17: $value =~ s/[\r\n]//g; 18: &jcode'convert(*value,'euc'); 19: $FORM{$name} = $value; 20: } 21: 22: return(%FORM); 23:} -----------------------------------------------   これは、CGIの最後の方にひっつけます。 ◇フォームの部分   入力フォームを表示するサブルーチンを作ります。 ----------------------------------------------- 1:sub ShowSerchForm { 2: 3: print <<"EOL"; 4:Content-type: text/html 5: 6: 7: 8: 9:$CgiTitle 10: 11:
12: 13:[ データ入力 ] 14:[ データ変更 ] 15: 16:
17:検索しましょ 18: 19:
20: 21:
22: 23:
24: 25: 26: 27: 28: 29: 30: 31: 32: 36: 37: 38: 39: 40: 41: 42: 46: 47: 48: 49: 50: 51: 52: 56: 57: 58: 59: 60: 61: 62: 66: 67: 68: 69: 104: 105: 106: 110: 111: 112: 113: 114: 115: 116:
題名
33: または  34: しかも 35:
題名よみがな
43: または  44: しかも 45:
作者名
53: または  54: しかも 55:
作者名よみがな
63: または  64: しかも 65:
分類 103:
107: または  108: しかも 109:
その他考
117: 118:
119:
120: 121:
122: 123: 124: 125:EOL 126: 127:} -----------------------------------------------   これも、GetFormdataと同じように最後の方に書いておきます。   いつ出来上がるのだろう、、、と思いつつ続く ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆予告◆------------------------------------------------------------------ ●次回は、検索部分の続きです。 ------------------------------------------------------------------◆予告◆ ◆PR◆-------------------------------------------------------------------- ■ 機能多彩&高速レンタルサーバー ■ 50MB+6POPで3,400円/月より。ドメイン登録は今すぐ! click< http://a.clickincome.net/md/dk?mid=8dc3438c53d606350e58104c33cef187 > ///////// やりたいって言ったら、今すぐやりたいんだい!! いや〜んえっちぃ〜〜、、、じゃないよ、ゲームのお話し。 欲しいソフトが発売日に手元に届きます。こりゃええわい。 てなわけで、こちらにどうぞ。 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 に、削除及び登録フォームを用意致しております。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆はぎちゃん今日のひとこと◆------------------------------------------  ●鼻毛がのびていたので切りました。   じゃんじゃん切りました。   切りすぎて鼻水が止まりません。 ------------------------------------------◆はぎちゃん今日のひとこと◆ ◆お願い◆ このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 はぎちゃんについての、麗しいお嬢様からのお問い合わせがないので寂しいです。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 ◆担当者◆ 本文文責    :Web新撰組プログラマー萩原逸郎(はぎちゃん) Web新撰組  :http://www.web-kyoto.com/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■