こんにちわ
私はCGIについて勉強したいと漠然とながら思っているのですが、何か王道のような書籍、あるいは皆さんがオススメされる書籍等がありましたら教えて下さい。
以前にも同様の質問があったのかもしれませんが、
検索できなかったため質問させていただきます。
以前に同様の質問がありましたらすみません・・・

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

A 回答 (3件)

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


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

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

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

↑これで関数などの意味を調べる。

そんな感じがスタンダードかと思われます。 ( ̄∇ ̄)
    • good
    • 0

とりあえずどの程度言語に関する知識があるのかはわかりませんが、あまりプログラム言語というのを触った事がないのであれば言語としてはPerlがお勧めだと思います。

後は入門書を1冊程度、辞書系に使える本を1冊。後はネットで調べるなりするのが良いと思いますよ。
    • good
    • 0

CGIに限らず、コード書きは模倣が一番の近道だと思います。

最初はあんまり細かい事は考えず、入門書を2,3冊
買って来てなるべく自分がやりたい事に近い物を探して、実際にWEBサーバーで動かしてみて、簡単なところから
変更していくというのでいいのでは。

机上の空論では、上達はないですよお・・・
経験より(笑)
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Q勉強がどうしてもしたくない時、やる気の出し方教えてください!

勉強がどうしてもしたくない時、やる気の出し方教えてください!

Aベストアンサー

そういうときは『寝る』
そして『遊ぶ』
に限ります。
そういうことは大切です。

QCGIでCGIを呼び出す方法

いつもお世話になっています。

今掲示板のCGI(a.cgi)上に広告をランダムで表示するCGI(b.cgi)を記述しているのですがどうにも正しく表示されず困ってます…

他のCGIを呼び出すにはどのように記述すればいいのでしょうか?

(htmlでいうとSSIで呼び出すように…)

Aベストアンサー

掲示板で表示するなかにscriptタグを使ってcgiを呼び出すのどうでしょう。
現在閲覧中の人をカウントするcgiなどを見てみると
そうしてます。(閲覧中でも定期的に内容を書き換えてるので
広告を表示するのにも適してるのではないかと)

Q勉強のやる気の出し方を教えてください。

勉強のやる気の出し方を教えてください。


この前、河合塾の模試の結果が帰ってきましたが、信じられないことに偏差値を約20も落としてしまいました。原因は、前の模試が良かったのでそれで満足してしまい勉強を3ヶ月間全くしなかったことが問題だと思いますが…手応えを感じていたのでなおさら凹みました。志望校は全てE判定でした。(今思えば回答を埋められたことに満足していただけかもしれませんが。)

模試なのでそんなに落ち込まなくても良いかもしれませんが、期末試験もその気持ちを切り替えることができず、散々な結果に終わりました。

本当は、自分のことなのでこの場を借りてこんな質問はするべきではないと思いますが、どうしても気持ちを切り替えることができません。なので、アドバイスもしくは意見をお聞きしたいです。お願いします。

Aベストアンサー

こんにちは。おっさんです。

まず、模擬試験を受けることの意味とは何でしょうか。
私が思うに、
1.試験というものに慣れる
2.自分の実力を測定する
の2つかなと思います。

模試の結果が悪かったということは、2の目的を十分に果たしたということになります。
悪い結果だったら「もっと頑張らねば」と思い、良い結果だったら慢心するのが普通だと思います。
つまり、あなたはラッキーだったのです。
今こそ、慢心しているライバル達をぶち抜くチャンスです。
私は一応難関の部類に入る大学を出ていますが、高3の前半ぐらいに受けた模試の判定は、その大学がEで、第二希望でさえDでした。
しかし、高3の後半の追い込みでライバル達を一気に抜いて、冬の試験でついに校内の上位にランクインしました。

そしてまた、テストというものには、時として「事故」が起こります。
私は本番の入試でも、物理のマークで5割しか取れないという「事故」がありました。理系で、ちょっと得意な人であれば9割取れるというレベルの問題であったにもかかわらずです。
それでも他の科目でそこそこ取れたので、受かってしまいましたが。
あなたは本番ではなく模試で事故に遭っていますから、これに関してもラッキーです。
勉強をサボったら実力が下がるのは当然だとは思いますが、真の実力が3か月で20も下がるはずがありません。

>>>どうしても気持ちを切り替えることができません。

とりあえず、毎日の勉強時間はあまり長くなくてもよいので、雑念が湧かない勉強方法を採用してみましょう。
以下は、その例です。

1.遊び心を持って勉強する
<例>
・山手線に乗って、1周する約1時間の間に英単語・英熟語を50個確実に覚える。
 ちゃんと覚えられれば、1ヶ月で1500個覚えられる。
・図書館に、わざと閉館の1時間前に行って・・・(以下同文)

2.集中力アップの秘策
集中力アップについては、2007年8月29日放送のNHK「ためしてガッテン」
「脳もビックリ!集中力アップ大作戦」
http://www3.nhk.or.jp/gatten/archive/2007q3/20070829.html
ちなみに、
以前のQ&Aで同様の回答をしたところ、質問者さんから喜びの声が寄せられました。
http://oshiete1.goo.ne.jp/qa3382430.html

3.暗記と集中
脳科学者・茂木健一郎氏による「鶴の恩返し勉強法」(暗記法)
テレビで見ましたが、茂木さんが暗記を実演している様子がテレビに映りました。
http://www.nhk.or.jp/professional/backnumber/080429/index.html
暗記する言葉を声にするだけでなく、
「あー、くそ! なんで覚えられねんだっ」
とか言いながら、やっていました。
その姿をとても人には見せられないので「鶴の恩返し勉強法」と言うんだそうです。

4.今勉強することをのちのちにも役立つようにすることこそ合理的
東大合格者のノート(ページをめくって中身が閲覧できます。)
http://www.amazon.co.jp/gp/reader/4163706208/ref=sib_dp_ptu#reader-link
(「東大」の2文字にビビることなかれ。私の小学校時代の社会科自習ノートにそっくり)

3と4についても、以前のQ&Aで回答したところ、質問者さんから喜びの声が。
http://oshiete.goo.ne.jp/qa/5979666.html

こんにちは。おっさんです。

まず、模擬試験を受けることの意味とは何でしょうか。
私が思うに、
1.試験というものに慣れる
2.自分の実力を測定する
の2つかなと思います。

模試の結果が悪かったということは、2の目的を十分に果たしたということになります。
悪い結果だったら「もっと頑張らねば」と思い、良い結果だったら慢心するのが普通だと思います。
つまり、あなたはラッキーだったのです。
今こそ、慢心しているライバル達をぶち抜くチャンスです。
私は一応難関の部類に入る大学を出ていますが...続きを読む

Qcgiからcgiを呼び出す方法2

先日「cgiからcgiを呼び出す方法」で質問させていただいたのですが、
その後の状況にて新たな質問をさせていただきます。

【経緯】
もともと単体で動作していたcgi Aに対して新たにcgi Bを作成し、
cgi Bからcgi Aを呼び出したいのですが、うまくいきません。
 cgi A:アンケート回答フォームのようなもの
 cgi B:認証フォーム(コードを入力してDB内のデータと一致したらcgi Aを呼び出したい)

【その後の状況】
exec("perl A.cgi");
とすることで cgi A の画面を表示することが出来ました。

【新たな質問】
(1) cgi A の画面は表示されましたが title は cgi B のままです。
 exec で cgi A が呼び出された時点で title は cgi A にならないのでしょうか?
(2)いろいろなサイトに、呼び出し先に
 "Content-Type: text/html; charset=Shift_JIS\n\n"
 の記述があってはダメとの説明がありましたが、この記述がないと
 cgi Aにてデータを入力し、送信ボタンを押すと
 500 Internal Server Error(malformed header from script. Bad header~)
 が表示されてしまいます。
 Content-Type の記述があれば、cgi A の送信ボタンを押すことによって
 入力したデータがDBに格納され、また、title も cgi A のタイトルが表示されます。

【cgi A が呼び出された時点の画面イメージ】
 cgi B のタイトル
 Content-Type: text/html; charset=Shift_JIS
 cgi A のタイトル
  cgi A の入力項目
  cgi A の送信ボタン

cgi A の送信ボタン(submit)を押すことによって、完全に cgi Aに制御が渡るということでしょうか?
cgi A を呼び出した時点で完全に cgi A に制御を渡したいのですが、
どなたかアドバイスをお願いします。
cgi A の構成を変える必要があるようであれば、その当たりのアドバイスもお願いします。

先日「cgiからcgiを呼び出す方法」で質問させていただいたのですが、
その後の状況にて新たな質問をさせていただきます。

【経緯】
もともと単体で動作していたcgi Aに対して新たにcgi Bを作成し、
cgi Bからcgi Aを呼び出したいのですが、うまくいきません。
 cgi A:アンケート回答フォームのようなもの
 cgi B:認証フォーム(コードを入力してDB内のデータと一致したらcgi Aを呼び出したい)

【その後の状況】
exec("perl A.cgi");
とすることで cgi A の画面を表示することが出来ました。

【新たな質問...続きを読む

Aベストアンサー

横から失礼します。

一度認証して、LocationでちがうCGIを呼び出すのは 認証した意味がなくなると思うのですが・・
というのも、認証しないでいきなりCGI-Aを呼び出したらどうなります?
認証するということは、一度の処理ですべてを行わないと意味がなくなります。

なので、AとかBとかに分けないで1つにするのが初心者向けですよー
もうちょっと理解が深まれば、CGI-Aをrequireして1つのCGIとしてあつかえることができます。

さらに簡単にするのなら、1つのCGI内でサブルーチンにして分けて処理を行う方向性が後々の変更のため
そして、コード量を減らすことや なによりエラーをなくすためにはいい方法です。
例)
認証サブルーチン、DB問い合わせサブルーチン、アンケートフォームサブルーチン、アンケート受け取りサブルーチンetc


そしてこれらを1つのCGIで処理するページングを行いたいのであれば、引数としてURLに含めるのが一般的です。
例)
xxx/B.cgi?que=form (認証して入力用のアンケートフォームを表示するなど)
xxx/B.cgi?que=input (認証してアンケートフォーム入力値を受け取り結果を表示するなど)

上記のように常に認証しないと、意味がなくなります。


それと、system関数やexec関数は同じプログラム言語を使うならお勧めできません。
環境によっては使えないことも多々ありますし、なによりコスト(サーバ負荷)とリスク(トンネル)が高いです。
この辺はもう少し言語に対する理解が深まってから手を出すべきです。(初心者に勧めるべきことではありませんよね)

横槍のようで何なんですけど、なんだか変な方向に行きそうなので、口を出してしまいました。

横から失礼します。

一度認証して、LocationでちがうCGIを呼び出すのは 認証した意味がなくなると思うのですが・・
というのも、認証しないでいきなりCGI-Aを呼び出したらどうなります?
認証するということは、一度の処理ですべてを行わないと意味がなくなります。

なので、AとかBとかに分けないで1つにするのが初心者向けですよー
もうちょっと理解が深まれば、CGI-Aをrequireして1つのCGIとしてあつかえることができます。

さらに簡単にするのなら、1つのCGI内でサブルーチンにして分...続きを読む

Q勉強のやる気の出し方

高校生の女の子から、どうしたら勉強のやる気が出るか、相談を受けています。勉強のやる気がでるようにしてあげたいです。どんなアドバイスをしたら、勉強のやる気を出させてあげられるでしょうか?

みなさんが、今まで、勉強のやる気が出た理由は、何でしょうか?

皆さんのお知恵をお貸し下さい。お願いします。m(__)m

Aベストアンサー

勉強は得意ではありませんが、体験談ということでアドバイスさせていただきます。

理想的には明確な目的意識を持ち、今やっている勉強が将来の自分に繋がっているイメージを持てれば良いと思います。

加えて、No.1の方が指摘されているように周囲の環境というのは重要ですね。

私の場合もNo.1さん同様、周りの雰囲気に影響されて受験勉強していました。

大手予備校が主催している模擬試験を受験してみることをお勧めします。私は負けず嫌いな性格だったので、将来の進路などに関係無く勉強に対する意欲が湧いてきました。

また、模擬試験だけではモチベーションが持続できないならば大手予備校の高校生向けのクラスなどに通われてみるのはどうでしょう?

QCGIから別のCGIへPostするには?

こんにちは。
a.cgiにアクセスがあったらb.cgiに<data=hoge>というデータを
postしたいのですが、どうすればいいのですか?

よろしくお願いします。

Aベストアンサー

CGIの言語がPerlだとして、
LWP
HTTP::Request::Common
を使う例。


use LWP::UserAgent;
use HTTP::Request::Common qw(POST);

$url = "http://hogehoge/cgi-bin/b.cgi";

%formdata = ('data' => 'hoge');

$request = POST($url,[%formdata]);
$ua = LWP::UserAgent->new;
$res = $ua->request($request);

Q勉強のやる気の出し方、集中の仕方を教えてください

17歳の高校3年生です。
期末テストまで1ヶ月もないのですが、家にいるとまったくやる気が出ません。どうすればやる気が出るでしょうか?
またやる気が出た後、集中力を持続させる方法もあれば教えてほしいです。
また電車やバス、騒がしい教室など、どこでも勉強に集中するにはどうすればいいでしょうか?

Aベストアンサー

(1)よく有名大合格する子が使ってる手だけど家で勉強しない。
塾とか図書館とかカフェとか使うんです。
他に電車とか、リビング。

(2)それと「考える前にやる」こと。
英単語とか漢字とか軽いのでいいので、ともかくすぐにやってしまう。
そうすると「勉強脳」になるから自然と集中できる。
考えるのはその後でいい。
例えば「おしっこしたからトイレに行く」のを習慣にしてれば、
そのうち「トイレに行くからおしっこしたくなる」でしょ?

(3)優先順位の徹底
モノによるけど、一種切ってしまう。
要するに「英語と数学を80点以上」とかそういう目標にする。

英語も数学も100点を目指さないし、社会も国語も捨ててしまう。
結局あれもこれもになるから上手くいかないんです。
ちゃんと優先順位をつけて、実現可能な目標を立てれば成功する。
またこういうやり方をするほど、ボーナスとして他のことも上手くいく
(英語で94点も取れた! あんまり勉強してない国語でも平均点以上取れたetc)可能性も
けっこうあるのです。
ただ優先順位を「好き嫌い」でつけないこと。あくまで「損得」でつけること、
「実現可能なもの」でつけること。

(1)よく有名大合格する子が使ってる手だけど家で勉強しない。
塾とか図書館とかカフェとか使うんです。
他に電車とか、リビング。

(2)それと「考える前にやる」こと。
英単語とか漢字とか軽いのでいいので、ともかくすぐにやってしまう。
そうすると「勉強脳」になるから自然と集中できる。
考えるのはその後でいい。
例えば「おしっこしたからトイレに行く」のを習慣にしてれば、
そのうち「トイレに行くからおしっこしたくなる」でしょ?

(3)優先順位の徹底
モノによるけど、一種切ってしまう。
要するに「英...続きを読む

QCGI1からCGI2への変数の受け渡しと表示

他のご質問読んでもわからなくて笑
CGIの知識は、書いてあるとおりに設定を変えたりhtmlとか書き出すところの内容変えたり…いらないところに#を付けて、うごくかなぁってドキドキしている程度です(笑)わかりにく。

今回は、まず、キリ番のCGI-Aがあります。そのCGI-Aはキリ番GETしたら登録formが出てきます。登録があったらメールが管理人宛てにくるんです、その時、変数で、フォームで書いてもらった内容+その人の取ったカウント数・時間・エージェント・HOSTが、一緒に記載されてきます。
CGIではこんな感じ↓

print MAIL "時間 : $adate\n";
print MAIL "ホスト: $ahost\n";
print MAIL "使用PC: $kuag\n";
print MAIL "名前 : $aname\n";
print MAIL "カウント : $acount\n";
print MAIL "メール: $email\n";

ってちゃんと送られてきます。
で、この変数なんですが、同ディレクトリにあるメールフォームのCGI-Bに渡して(CGI-Aで登録したら必ずCGI-Bにくると)、CGI-Bが送るメールにも乗せたいのです。CGI-Bのなかのメールの雛型?の部分に
ここです↓
#メール内容
$body.="取得時間 : $adate\n";
$body.="ホスト : $ahost\n";
$body.="使用PC : $auag\n";
$body.="メール : $email\n";
$body.="内容 : $nowdate\n";

内容ってのはCGI-Bのメールフォームに書いてもらったことを表示します。でその上の4つなんですが、それがCGI-Aの変数で、これをCGI-Bのメールに一緒に送らせたいわけです。

そこで、CGI-Aの変数をCGI-Bに持ってくるにはどうするか、素人なりに考えて

#キリ番からの情報取得
require "./CGI-A.cgi";
とか考えて書いてみて、やったんですが、見事に失敗しました。どうすれば変数だけをわたせますか?教えてください。
不適切な表現とかありましたら勘弁してください。
補足など、待ってます。

他のご質問読んでもわからなくて笑
CGIの知識は、書いてあるとおりに設定を変えたりhtmlとか書き出すところの内容変えたり…いらないところに#を付けて、うごくかなぁってドキドキしている程度です(笑)わかりにく。

今回は、まず、キリ番のCGI-Aがあります。そのCGI-Aはキリ番GETしたら登録formが出てきます。登録があったらメールが管理人宛てにくるんです、その時、変数で、フォームで書いてもらった内容+その人の取ったカウント数・時間・エージェント・HOSTが、一緒に記載されてきます。
CGIではこんな...続きを読む

Aベストアンサー

#2です
>ごめんなさい・・・わかるようでまったくわかりません(笑)
のようですので、ピンとくるところがなかったようですね。
それにプログラムの修正個所を完全に書いた訳ではないでの
コピペしても全く動かないです。

で、別の方法です。
質問者さんのしたいことは、
 従来のcgi-aの処理のあと(メールを送った後)
 cgi-bでやっているメール送信も行いたい。
ですよね。

cgi-bの中で、実際にメールを送っている処理部分はどこか解りますか?
その部分をcgi-aに継ぎ足すのはどうでしょう。
当然、送る内容は変数から作っていますから
これにcgi-aの変数をコピーするなり、新たに値を設定してください。
 すなわち
 $body.="取得時間 : $adate\n";
 $body.="ホスト : $ahost\n";
 $body.="使用PC : $auag\n";
 $body.="メール : $email\n";
 $body.="内容 : $nowdate\n";
 の、$adateや、$ahostなどの変数のこと。

cgi-aに継ぎ足す際に、メールを送る処理以外を含めると
正しく動作しない可能性が高いです。
ですから、「この1行は何をしている?」がある程度
理解できないとやっぱり難しいです。

#2です
>ごめんなさい・・・わかるようでまったくわかりません(笑)
のようですので、ピンとくるところがなかったようですね。
それにプログラムの修正個所を完全に書いた訳ではないでの
コピペしても全く動かないです。

で、別の方法です。
質問者さんのしたいことは、
 従来のcgi-aの処理のあと(メールを送った後)
 cgi-bでやっているメール送信も行いたい。
ですよね。

cgi-bの中で、実際にメールを送っている処理部分はどこか解りますか?
その部分をcgi-aに継ぎ足すのはどうでしょう。
...続きを読む

Q勉強をするまでのやる気の出し方。。。

私は今高1です。
そろそろ大学受験の勉強も視野に入れて、毎日の学校の授業を中心に勉学に励んでいます。
でも、どーしてもやる気が起きるまでが長いんです。。。

勉強はきらいではないです。
でも、実際に机に座り、教科書を開き、ペンを握る・・・ここまでの道のりが果てしなく長いです(;-ω-)
家には誘惑するものが沢山あります。テレビにインターネット、マンガに音楽・・・
やらなきゃいけない、やった方がいいと思えば思うほど逃げてしまいます。
そうこうしているうちに夜中になり、自己嫌悪に陥ります。。。
自分のメンタル面の弱さが原因なのはもちろん分かっていますが、なかなかできません。。。

中学生までは、定期テストは直前勉強でそこそことれましたが
高校になったらそうはいかなくなり、焦りばかりが募ってしまいます。

もしやる気を出す良い方法などありましたら、お願いします。
もしくは実際に役に立った!と実感した受験勉強法などがありましたら何でも結構なので教えてください。
よろしくお願いします。(o;_ _)o″

Aベストアンサー

さんこうに

http://gigazine.net/index.php?/news/comments/20071010_boost_mode/

Q出欠のCGIを探してす。CGIが表示できません。

フリーファイルを色々ダウンロードしてみてトライしてみたのですが、CGIファイルが実行されません。
転送(データなど)や、一行目も変更しました。
どうすれば実行された、画面が表示できますか?

Aベストアンサー

属性(パーミッション)は変えましたか?(705など)
CGIが実行できるレンタルサーバですか?

使用しているCGIを詳しく教えてください。


人気Q&Aランキング

おすすめ情報