CGI初心者でこれから勉強しようと思ってます。
とりあえずCGI(もしくはPerl)の解説本(参考書?)を買おうと思ってるんですが、
どれがいいのかわからなくていつも本屋で迷ってしまいます。
なので、オススメの本があったら教えてください!
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

ネットに落ちているフリーの CGI のほとんどは


Perl なので、
Perl から学ぶのがベストだと思います。

自分が使いたいサンプルが載っている
サンプル集の様なものを一冊買って熟読。
フリーで落ちている CGI を分析。

CGI & Perl ポケットリファレンス
技術評論社

↑これで関数などの意味を調べる。
そんな感じがスタンダードかと思われます。

ある程度憶えたら、↓これが便利だと思います。

Perl5 パワフルテクニック大全集
アクロバイト 監訳
\5,400

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=97066
    • good
    • 0

私の使っている本が手元にないので,詳しい値段などは分かりませんが,おおよそのことは分かります.



私は,PerlもCGIも結城浩さんの本を使用しています.
本はソフトバンクから出版されており,各々3000円前後だったかと思います.
結城さんのHPへ行けば,詳細が見れますよ.

文章も非常に丁寧に書かれており,読み出したら止まらないくらいのときが多いです.
よって,どんどん進んでしまって,先に覚えたはずの内容を忘れてしまっているということも
しばしばあるのですが.(^^;

参考URL:http://www.hyuki.com/
    • good
    • 0

CGI入門に関する本は星の数ほどあるので、本屋さんで自分に合ったものを


吟味されるのが良いと思いますが、取りあえず私が持っている本からご紹介
しておきます。

「CGI パワフルテクニック大全集」(インプレス)
  Stephen Asbury/Jason Mathews/Selena Sol/Kevin Greer 著
  アクロバイト 監訳
  ISBN4-8443-4823-X
  \4,600

「CGI プログラミング」(オライリー・ジャパン)
  Shishir Gundavaram 著
  田辺 茂也 監訳
  (株)エディックス 訳
  ISBN4-900900-13-3
  \4,850

CGI や Perl について全くの初心者の場合、ちょっと難しいかも
知れませんが…
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QCGI/Perlという本はありますがCGI/PHPという本はないのはなぜですか?

アマゾンで調べると表題でCGI/Perlという本はありますがCGI/PHPという本はないのはなぜですか?

Aベストアンサー

なぜそのような書籍が無いのか結論から申し上げると「需要が無い」からです。
その理由はPHPとCGIの動作に起因し、PHP利用の最大のメリット(?なのでしょうか?)であるHTML組み込みなど利用できなくなるからです。

動作の概略(あくまで概略なので細かくするとキリがありません)を示しますと(右に長いのでテキストエディタなどにコピペしてみていただくと見やすいかと思います)

CGIの動作
 ブラウザ-[INTERNET]->Webサーバー -[CGI]-> システム:処理言語{Perl/C/Ruby...etc.}+プログラム:処理結果 -[CGI]-> Webサーバー -[INTERNET]->ブラウザ

PHPの動作
 ブラウザ-[INTERNET]->Webサーバー:PHP:処理結果 -[INTERNET]->ブラウザ

PHPを単体で処理できるようにインストール設定すればPHPをCGIとして利用することも可能です。当然、利用範囲がCGIの域を出なくなり、PHPとしてのメリットがなくなってしまいます。
そのような非効率的な運用利用をする方はほとんどいないので書籍にしても需要が無いと思います(何らかの事情で必要な方なら、WebサーバとCGIがしっかり理解できていれば簡単に実現できるかと思います)。

ちなみに、代表的なWebサーバApacheは外部組み込み機能を使ってPerlを「PHPの動作」と同じ動きをさせることができます。
そちらは「CGI」の範疇ではなく「Webサーバー構築」の分野ですのでそういった書籍を参考にしてください。

なぜそのような書籍が無いのか結論から申し上げると「需要が無い」からです。
その理由はPHPとCGIの動作に起因し、PHP利用の最大のメリット(?なのでしょうか?)であるHTML組み込みなど利用できなくなるからです。

動作の概略(あくまで概略なので細かくするとキリがありません)を示しますと(右に長いのでテキストエディタなどにコピペしてみていただくと見やすいかと思います)

CGIの動作
 ブラウザ-[INTERNET]->Webサーバー -[CGI]-> システム:処理言語{Perl/C/Ruby...etc.}...続きを読む

QPerlのCGIでフォームのテキスト配列をPerlで取得するには?

フォームで通常は同じ名前のデータを取得することは無いのですが
表計算のように同じ名前の場合、データの取り出し方がわかりません。
以下、通常の1件の場合のソースです。


#!/usr/bin/perl

$| = 1;

use strict;
our %in;

use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:standard);
require 'jcode.pl';
require 'cgi-lib.pl';
#

#-----分岐-----

&ReadParse;

# 配列でない場合
my $namae = $in{'namae'}
print "$namaeで名前が1件表示される";
# これをフォームで namaeが配列になった場合、
#<input type="text" name ="namae">
#<input type="text" name ="namae">
#<input type="text" name ="namae">
# のような場合、3件取得する場合

exit;

__END__

フォームで通常は同じ名前のデータを取得することは無いのですが
表計算のように同じ名前の場合、データの取り出し方がわかりません。
以下、通常の1件の場合のソースです。


#!/usr/bin/perl

$| = 1;

use strict;
our %in;

use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:standard);
require 'jcode.pl';
require 'cgi-lib.pl';
#

#-----分岐-----

&ReadParse;

# 配列でない場合
my $namae = $in{'namae'}
print "$namaeで名前が1件表示される";
# これをフォームで namaeが...続きを読む

Aベストアンサー

パラメータのデコード処理で使用するモジュールによって、やり方は変わってきますが、cgi-lib.pl と CGI.pm の場合は下記のようになります。

cgi-lib.pl :
 対象のパラメータが収納された変数を \0 を区切り文字として分割する。

CGI.pm :
 リストコンテキストで値を受け取る。


例) cgi-lib.plを使う場合 ----------------------------
require "cgi-lib.pl";

&ReadParth; # デコード処理
@hoge = split(/\0/, $in{hoge}); # \0 で分割
------------------------------------------------

例) CGI.pmを使う場合 --------------------------------
use CGI;

$query = new CGI; # 新しいCGIオブジェクトの作成
@hoge = $query->param('hoge'); # パラメータhogeの内容の受け取り
------------------------------------------------

参考URL:http://www.futomi.com/lecture/form/cgilib.html#3.2,http://member.nifty.ne.jp/hippo2000/perltips/Cgi.htm#FETCHING_THE_VAL

パラメータのデコード処理で使用するモジュールによって、やり方は変わってきますが、cgi-lib.pl と CGI.pm の場合は下記のようになります。

cgi-lib.pl :
 対象のパラメータが収納された変数を \0 を区切り文字として分割する。

CGI.pm :
 リストコンテキストで値を受け取る。


例) cgi-lib.plを使う場合 ----------------------------
require "cgi-lib.pl";

&ReadParth; # デコード処理
@hoge = split(/\0/, $in{hoge}); # \0 で分割
---------------------------------------...続きを読む

Qperl/cgiでjpeg画像のクリック座標をcgiパラメータに渡すには

perl/cgiで表示したjpegの画像のクリックした点の座標位置を次にジャンプするページにcgiパラメータとして渡したいのですがどのようにすれば良いでしょうか?画像全体を<input type="button" src="画像ファイル" name="$test" value="返答">のようにすればよいのかもしれませんが、座標をパラメータ渡しする方法がわかりません。perl/cgiだけでは無理であれば、javascriptでcgiに渡すためのヒントでも構わないのですが。。。
ご存知の方がいたらご教示ください。

Aベストアンサー

「画像ボタン」という手も。
<form ~>
<input type=image name="AAA" height=100 width=100 src="xxx.gif">
</form>

参考URL:http://tohoho.wakusei.ne.jp/html/input.htm

QPerlでCGIの書き方

今、HTML:Templateを用いてCGIのプログラムを書いています。
基本的にCGI上のボタンをおすとPOSTで情報をわたして、次のCGIにいき、そこからTMPLを読み出して、画面を表示してるのですが、画面場のボタンをおしてもCGIを更新せずに、Perlの実行だけすることは可能ですか?あるいは、POSTでCGIに届いた情報をIF文で中身を確認して、表示するTMPLをかえて、Perlの実行も行うのが普通のやりかたなのでしょうか?

あまりよくわからずにネットだけの情報をたよりにプログラミングをしているので設計の仕方など分からないことが多々あります。

どなたかCGIに詳しい方ご返答おねがいします。

Aベストアンサー

Ajaxからコールして受信内容を破棄すれば良いです。
こんな感じ
function HogeHoge(){
var xmlhttp = createHTTPRequest();
var CGIURL = 'CGIのフルURL「http://」から記述';
var sDT;
xmlhttp.open('GET', CGIURL, true);
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
sVOID = xmlhttp.responseText;
} else {
// 通信に失敗
}
} else {
// 通信中…
}
}
xmlhttp.send(null);
}

QPerl/CGIでのエンコード方法

perlを使ってプログラムを書いています。
そこで困ったことが発生しております。
会員用CGIでフォーム上にIDとパスを入力するとログインできるプログラムです。
フォームにIDとパスを入力すると入室できますがログイン後、
http://www.*****.net/bbs.cgi?mode=check&ID=あゆ&PASS=0000
のようになったURLをクリックすると「ページが見つかりません」400エラーがでます。
IDが「あ」ではじまるものだけがこのような症状になります。
エンコード処理されていないからと思うのですが、これを正常な受け渡しをするにはどの辺りの場所にエンコード処理とデコード処理を書けばいいのでしょうか?
ただ、Aサーバーでは発生しないのにBサーバーでは発生します。サーバーにも依存するものでしょうか?
たいへん困っています。
お手数かけますが何卒宜しくお願いします

Aベストアンサー

> エンコード処理されていないからと思うのですが、これを正常な受け渡しをするにはどの辺りの場所にエンコード処理とデコード処理を書けばいいのでしょうか?

下記2つの処理を行う際にエンコード/デコードするのが一般的かと。
 URLへ値を渡す時(GETやURLリンクなど)
 URLから値を取得する時(GETなど)

URLへそのまま全角文字を渡すのは、
例え今は正常に動作したとしてもよろしくないです。あとあと苦労する可能性がありますので。
(別のシステムと相互運用するときとか)


このカテゴリの人気Q&Aランキング

おすすめ情報