★ 

インデックス

 ★
★ 

プログラムの説明

 ★

CGIスクリプトの配布とプログラミングの説明

 RSS XML
ネトマガ
  • 玄関口
  • 占い診断
  • 萌え辞典
  • オタク遊戯
  • ネット小説
  • 情報基地
  • CGIDL
  • CGI解説
--サイト運営者より告知--
2022年2月16日【水】14時07分49秒
syuka.com】では
サイト管理にcookieを使用しています。
2020年5月14日【木】16時26分26秒
【告知】サイト運営継続の為、xcoinによる投げ銭をお願いします。
2017年6月6日【火】20時29分41秒
【(*´ω`*)】CGIの更新は現在無期限休止中です‥‥
2014年11月6日【木】13時47分00秒
【(*´ω`*)】確率収束診断スクリプト作りました!
2013年12月24日【火】17時47分50秒
【(*´∇`*)】最近ちょっとプログララマーに戻ってます♪
2013年11月4日【月】19時41分23秒
【(´・ω・`)】現在新しいCGIの作成は行っていません。
2013年1月7日【月】16時12分36秒
【(*´ω`*)】サイトをリニューアルしました。他も徐々に変更中です‥‥
--サイト運営者お勧めリンク--
【Amazon】日本人が知らない近現代史の虚妄 江崎道朗
【Amazon】ウルトラマンの伝言 日本人の守るべき神話 倉山満
【Amazon】嘘だらけの池田勇人 倉山満
【Amazon】無駄(規制)をやめたらいいことだらけ 令和の大減税と規制緩和 渡瀬裕哉
【Amazon】日本分断計画 中国共産党の仕掛ける保守分裂と選挙介入 上念司
【Amazon】緒方竹虎と日本のインテリジェンス 江崎道朗
【Amazon】救国のアーカイブ 公文書管理が日本を救う 倉山満
【Amazon】誰もが知りたいQアノンの正体 みんな大好き陰謀論 内藤陽介
【Amazon】米国共産党調書 外務省アメリカ局第一課作成 江崎道朗
【Amazon】教科書では絶対教えない 偉人たちの日本史 倉山満
【Amazon】世界はいつでも不安定 - 国際ニュースの正しい読み方 - 内藤陽介
【Amazon】史上最強の平民宰相 原敬という怪物の正体 倉山満
【Amazon】新装版 お役所仕事の大東亜戦争 (いまだに自立できない日本の病巣) 倉山満
【Amazon】ウッドロー・ウィルソン 全世界を不幸にした大悪魔 倉山満
【Amazon】税金下げろ、規制をなくせ 日本経済復活の処方箋 渡瀬裕哉
【Amazon】米中ソに翻弄されたアジア史 宮脇淳子 江崎道朗 福島香織
【Amazon】日本人に忘れられた ガダルカナル島の近現代史 内藤陽介
【Amazon】2020年大統領選挙後の世界と日本 “トランプ or バイデン" アメリカの選択 渡瀬裕哉
【Amazon】保守とネトウヨの近現代史 倉山満
【Amazon】中学歴史 令和元年度文部科学省検定不合格教科書 竹田恒泰
【Amazon】天皇の国史 竹田恒泰
【Amazon】ミトロヒン文書 KGB(ソ連)・工作の近現代史 山内 智恵子 江崎道朗
【Amazon】若者に伝えたい英雄たちの世界史 倉山満
【Amazon】経済で読み解く日本史6平成編 上念司
【Amazon】みんな大好き陰謀論 内藤陽介
【Amazon】インテリジェンスと保守自由主義 新型コロナに見る日本の動向 江崎道朗
【Amazon】検証 検察庁の近現代史 倉山満
【Amazon】桂太郎-日本政治史上、最高の総理大臣 倉山満
【Amazon】危うい国・日本 百田尚樹 江崎道朗
【Amazon】「新型コロナ恐慌」後の世界 渡邊哲也
【Amazon】日本外務省はソ連の対米工作を知っていた 江崎道朗
【Amazon】トップの教養 ビジネスエリートが使いこなす「武器としての知力」倉山満
【Amazon】天皇がいるから日本は一番幸せな国なのです・倉山満
【Amazon】日韓基本条約 (シリーズ韓国現代史1953-1965) ・内藤陽介
【Amazon】メディアが絶対に知らない2020年の米国と日本 (PHP新書)・渡瀬裕哉
【Amazon】なぜ、成熟した民主主義は分断を生み出すのか ~アメリカから世界に拡散する格差と分断の構図・渡瀬裕哉
【Amazon】天皇家 百五十年の戦い・江崎道朗
【Amazon】ウエストファリア体制・倉山満
【Amazon】アウシュヴィッツの手紙 改訂増補版・内藤陽介
ねずさんの日本の心で読み解く「百人一首」:千年の時を超えて明かされる真実
たった1つの図でわかる!図解経済学入門
大間違いのアメリカ合衆国
政治経済雑記はこちら♪
【Kindle】電子書籍販売★秋華★

CGIスクリプト基本 [getデータとif文]

次は、受け取ったデータを理解し、処理する工程を説明したいと思います。
送信されてくるデータは、主に2つに分けられます。
ひとつは、送信フォームから送られてくるデータ。
もうひとつは、アドレスの後に文字列を付け加え、そのアドレスにアクセスがあった場合のデータです。
後記の方は少し分かりにくいので、説明させていただきます。
たとえば、下記のようなアドレスにアクセスした場合です。

http://syuka.com/index.cgi?nekomimi

このようなアドレスにアクセスした場合、実際にアクセスするアドレスは・・・

http://syuka.com/index.cgi

にアクセスしたのと同じ事です。
ただ違うのは、get でのデータも一緒に送られてきているって事です。
アドレスのファイル名の後に、?nekomimi がついていますね。
この ? の後の文字列が、get データだと扱われます。
だから、前回のソース・・・

if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }

これが実行されたら、$buffer には、"nekomimi" というデータが入っています。
これを利用して、$buffer が nekomimi なら、猫耳画像を表示するページ、usamimi なら、うさ耳画像を表示するページを表示する事にしておけば、それはもうURLアドレスの一部として成立します。

http://syuka.com/index.cgi?nekomimi

これが猫耳が表示されているページのアドレス。

http://syuka.com/index.cgi?usamimi

これがうさ耳が表示されているページのアドレスといった具合です。
では、この処理ができるソースを、骨組みだけ書いてみましょう。

#! /usr/local/bin/perl
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }
print "Content-type: text/html; charset=UTF-8\n\n";
if ($buffer eq "nekomimi") {
print <<END_OF_HTML;
ここに、猫耳を表示するページのHTMLを記述。
END_OF_HTML
}
elsif ($buffer eq "usamimi") {
print <<END_OF_HTML;
ここに、うさ耳を表示するページのHTMLを記述。
END_OF_HTML
}
else {
print <<END_OF_HTML;
ここに、普通のページのHTMLを記述。
END_OF_HTML
}

5行目を説明しますと・・・
もし、$buffer が、nekomimi と同じならば、その直後の { } このカッコ内の処理を実行するって意味です。
10行目が・・・
そうでなくて、もし、$buffer が、usamimi と同じならば、その直後の { } このカッコ内の処理を実行するって意味です。
15行目が・・・
そうでない場合は、その直後の { } このカッコ内の処理を実行します。
今回の記述で使った、if elsif else という関数(命令)は、これからプログラムを書いていくなら、絶対多用する事になるものですので、覚えておいて損はないです。
覚えるのが苦手な私ですら、流石に覚えてしまっています。
ちなみに私は、理屈を覚えるのは得意ですが、文字列(関数など)を覚えるのが苦手です。
だから、過去に書いたソースを、カット&ペーストで使い回す事が多いです。
後、見ればなんとなくわかるかもしれませんが、if の後の ( ) カッコの中で使っていた、eq という関数は、数字であれば = と同じで、左右同じであれば、と言う意味です。
文字列の場合は、eq を使います。
逆に ≠ は、ne で、左右違えば、って意味です。
話が脱線して、更に脱線してしまいましたが、アドレスの後の get データの利用方法、少しはわかっていただけたと思います。
【<┃】 【┃┃】 【┃>】
ドクダミ

仮想通貨お賽銭アドレス
サイト運営を応援し賽銭(投げ銭)を投げて下さる方は、投げ銭に関する注意事項を読んだ上、下記仮想通貨を投げ銭する事ができます。

◆xcoin◇エクスコイン◇イーサリアム◆

xcoin
Ver.5.00 CGIフリー配布サイト