プロが教えるわが家の防犯対策術!

色んなホームページを見てると、『こんなCGIを作りたい』ってがあります。しかし私はCGIが書けません。こんな場合、CGIのソースだけ引用して、中身は私のオリジナルに出来るのですか?タグは出来る(書き換えるだけ)のがわかるのですが、CGIのソースを見ると、タグよりも随分短いので前から謎でした。どうか私の謎を解いて下さい。

A 回答 (7件)

>・IEで見れるソースです。

これをコピーすれば、文字は私のオリジナルになるのではないかと…。

IEで見られるソース・・・を吐き出すのがCGIです。まあ一度フリーのCGIスクリプトをDLしてみてください。たぶん配布サイトには設置サンプルがあると思うので、そのサンプルのソースとスクリプトを見比べてみてください。

> その理由はCGIはプログラムであって文字ではないからと思ったのです。だからCGIによって文字が隠れてると思ったのです。

CGIはHTMLで表示される文字を吐き出すプログラムです。なので、プログラム中には当然その文字が含まれます。

簡単な例をあげると・・・

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>テスト</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "これはCGIのテストです。\n";
print "</BODY>\n";
print "</HTML>\n";

こんなのがCGIスクリプトの中身です。(言語はperl)
このCGIを動作させると、ブラウザに表示されるソースは、

<HTML>
<HEAD>
<TITLE>テスト</TITLE>
</HEAD>
<BODY>
これはCGIのテストです。
</BODY>
</HTML>

となります。
いかがですか?「タグより短い」ですか?
HTMLを吐き出すプログラムがCGIですから、そのHTMLの中身が当然含まれます。それプラス処理の仕組みを書くので、ブラウザに表示される画面のソースよりも長くなることの方が多いです。
規則性のある繰り返しの表示部分なんかは、#4の方が例であげてくださったように書けるので、短くなりますけど。

> ・確かにまだレンタルCGIを貼ったことがありません。まずはここから出発しないとわからないですね。

そうですね。配布されてるCGIのスクリプトを使ってみることですね。
ご自分がどんなものを引用したいと思うか、まずは中身を見ることです。引用するにしても、元のものはできるだけ希望のものに近い機能を持つものがいいでしょう?

> 容易にフリーCGIを引用して、自作のCGIに変更出来ると考えてましたが違うようですね。

項目名や壁紙、色、タイトルなどは初期設定で容易に変更できますよ。(変更できるようにしてくれているはずです、そんな汎用性のないものを配布しても仕方ないので)
    • good
    • 0
この回答へのお礼

これを機に私ももう少し積極的にCGIを勉強しよう思います。どうもご丁寧に回答して頂きましてありがとうございました。感謝の極みです。

お礼日時:2003/12/03 07:05

> 無料レンタルされてるCGIでは該当するものがありません。



この無料レンタルCGIというのは、レンタルの掲示板のようなものを指しているのでしょうか?
配布されているCGIスクリプトのことなのでしょうか?

> ソースを見ると、HTMLで丸見えの文字がCGIでは見えないのが不思議でした。

このソースというのは、ブラウザの画面に表示されたもののソース?それともスクリプトの言語のこと?

> 記入して貰う項目の文字だけ変えてやれば、プログラムは無料のCGIがそのまんま使えると思ったのですが違いますか?

項目名だけ変更するのはけっこう簡単ですけど・・・
しかしそれが初期設定以外の部分の場合、スクリプト中のどの部分を変更すればいいかは、多少はスクリプトがわからないと難しいかも。

> つまり画面で見える文字と見せるためのプログラムは別々に作れば良いのではと…

画面に見える文字もCGIで吐き出しているものではないのですか?

うーん、すみません、読解力なくって、仰っていることをちゃんと理解できてないようで・・・。
まあとりあえず、hughugさんがしたいことは、フリーのCGIスクリプトを引用して自分でCGIを作りたいってことですよね。
その前に・・・フリーで配布されているスクリプトを設置したことはありますか?
パーミッションの変更とか、perlのパスとか、わかりますか?
自作CGIに挑戦する前に、まずは人の作ったCGIを設置してみることから初めてはいかがでしょうか?
それが無事動いたら、初期設定を変更して。そういうことをしているうちに、perlとかCGIがなんとなくわかってくるのでは。

とりあえず参考URLに、CGIスクリプトの検索サイトを書いておきますね。
名簿作成用のCGIもフリーで配布されているの、見たことあります。(名簿の項目などは初期設定で変更できますよ。)

参考URL:http://www.i-say.net/cgi/
    • good
    • 0
この回答へのお礼

返事が遅れてすみません。アドバイス感謝します。
・はい!配布されてるCGIです。
・IEで見れるソースです。これをコピーすれば、文字は私のオリジナルになるのではないかと…。その理由はCGIはプログラムであって文字ではないからと思ったのです。だからCGIによって文字が隠れてると思ったのです。
・確かにまだレンタルCGIを貼ったことがありません。まずはここから出発しないとわからないですね。そうしないと、パーミッションもPerlのパスも理解出来ないですね。容易にフリーCGIを引用して、自作のCGIに変更出来ると考えてましたが違うようですね。

お礼日時:2003/12/02 23:44

なんだかCGIを誤解されてるような気がしますが・・・。


CGIはクライアントの要求に対して、サーバーがスクリプトで指示されたとおりの処理をしてHTML言語を吐き出すものです。
FLASH等とCGIを組み合わせること云々ということも質問されていらっしゃいますが、HTML言語で表現できることはCGIでもできます。そういうHTMLを吐き出させればいいだけのことですから。
また、動画を見せるだけ、あるいはクライアントサイドのデータだけで処理できることなら、FLASHだけで十分です。サーバー上にあるデータを書きかえるようなことはCGIになりますが。

CGIのソースと仰るのがどれのことかはっきりしないのですが、フリーのスクリプトを引用してCGIをつくろうとしても難しいと思います。また、そうやってわからないままに作ったものを動かそうとしてもたぶん動きませんし、ヘタをするとサーバーを暴走させたりして周囲に多大な迷惑をかけることもありえます。
CGIを自作するならローカル環境で十分な動作テストをしてから、サーバーにアップするようにしてください。

何でもないHTMLをわざわざCGIにして・・・というのは、お薦めできません。というのはCGIはサーバーで処理しなければいけない分、サーバーに負担をかけるからです。
・・・普通にHTML書くと、1<br>2<br>3<br>4<br>5<br>・・・100<br>になるところをCGIなら、 for $count=1;$count<=100;$count++){print"$count<br>";}という具合にこの1行の処理を100回繰り返すなんてことが出来る・・・
これはその通りなんですが、どっちがサーバーに優しいかといえば前者ですし、HTMLだけのファイルの方が表示も速いです。
なお、CGIではperlという言語がポピュラーに使われていますが、別にperlでなければならないというわけではありません。perlもCGI以外の用途にも使われますし。でもC言語などだとコンパイルしなくてはいけないので、書き換えるのが面倒ですよね。

作りたいCGIがあるとのことですが、どのようなものでしょうか?
ネット上ではフリーのCGIスクリプトが多数公開されています。探せば希望のCGIスクリプトが見つかるかもしれませんよ。
    • good
    • 0
この回答へのお礼

ご親切な回答に感謝します。主に使いたいのは名簿欄(住所や氏名やアンケート等プライベート情報)私の仕事が特殊な職種なので、無料レンタルされてるCGIでは該当するものがありません。表現が下手ですがソースを見ると、HTMLで丸見えの文字がCGIでは見えないのが不思議でした。当初私はこれはプログラム(指令)であって、HTMLのような文字記述はいらないから、記入して貰う項目の文字だけ変えてやれば、プログラムは無料のCGIがそのまんま使えると思ったのですが違いますか?つまり画面で見える文字と見せるためのプログラムは別々に作れば良いのではと…わかります?私のつたない表現で理解して頂けましたか?

お礼日時:2003/12/01 00:41

>HTMLに比べたらPerlは凄く短いのに、多くの画像や文面を表現できるから



うーん短いのに多く表現できるという印象は例えば
Webページに縦に1から100まで表示するのに、普通にHTML書くと、1<br>2<br>3<br>4<br>5<br>・・・100<br>になるところをCGIなら、
for($count=1;$count<=100;$count++){print"$count<br>";}という具合にこの1行の処理を100回繰り返すなんてことが出来るからでしょうね。
それとかファイルに保存されているデータを取り込んでWebページに展開させたりということが出来るからかな
HTMLは単にレイアウト言語だから分岐だとかループだとかの制御構造が存在しないし、ファイルの入出力制御とかないし、CとかVBとか制御構造をもった言語を経験してないと、そのあたりの理解に苦しむところでしょうね。
    • good
    • 0
この回答へのお礼

ってことは、ホームページにはCGIでなきゃ表現できない所が多々ありますが、それ以外の、つまり何でもないHTMLをわざわざCGIにして、ソースを省略することも可能ってことなんですね。今の私にはまだまだ壁がありますが、単にソースのコピーを引用しても、自分のオリジナルにならないことがわかりました。

お礼日時:2003/11/29 14:23

No.1です。



動画に関してですが、Flash、GIFアニメーション、JAVAなど色々やり方があると思います。
それにCGIを組み合わせているかもしれませんが、ちょっとしたアニメーションならFlashで事足りるはずです。
この辺りに関してはほとんど経験が無いので、この程度しか知りません。すみません。
    • good
    • 0
この回答へのお礼

CGIは高等技術ですから、これがマスター出来たら、大抵のホームページは思いのままに表現出来るでしょうねぇ。私にとっても一番の課題です。回答感謝します。

お礼日時:2003/11/29 14:31

最近Perl-CGIの勉強を開始したものです。


ソースを引用して~オリジナル・・・やっぱり多少勉強しないとちょいちょいと書き換えてという訳にはいかないようです。せめて「超入門」くらいの本を1冊勉強するひつようがあります。あと注意点を列挙しますと

○ えっ自分の契約プロバイダは自作CGIがダメなの!
私もやりだして知ったのですが、へたなCGIを作ると、プロバイダーのWebサーバーに負荷がかかってダウンするおそれがあるので大手のプロバイダは禁止しているところが多いのです。私は以前DIONだったのですが、CGIしたさにプロバイダーを乗り換えました。

○ パーミッションってなんだ!
HTMLならアップロードするだけでOKなんですけど、CGIはパーミッションとかいうアクセス権限みたいなものを設定しないとだめなのです。ローカルPCではちゃんと動くのにアップロードしたら全然動かない・・・なんでだろ~ぉなんでだろ~ぉ・・・としばらく悩みました。

○ 拡張子変更しないとだめなの!
ローカル環境ではファイル名が××.plで動かすのに、CGIサ-バーにアップロードしたときは××.cgiに変更しないと動かなかったこれも・・・なんでだろ~ぉなんでだろ~ぉ・・・としばらく悩みました。

○ページがみつかりまへん・・・お前の目は節穴か!
大体CGIはローカルPCで作成して、動作させてみて問題がないことを確認してからUPさせるものです。適当にフリーCGIを直して、アップしても、例えばセミコロン一つ忘れただけで、もう動きません。しかも「プログラムの○行目でセミコロンぬけてまっせ」などと親切には教えてくれず、実行結果はむなしいばかりに「ページがみつかりまへん」だけです。私はプログラムはVBを使っていたのですが、VBのelseifという構文が、Perlではelsif・・・このeのバグ探すのに3日ほど費やしました。

○ 最初のローカルで環境作りにいろいろ発見が!
普通のアプリみたいに1種類のソフトのインストールしたらほらもう動く・・・という訳ではありません。
Winで擬似UNIX環境を作るソフトをインストールして、Webサーバーソフトインストールして、Perlインストールして、環境変数にPATH通して、Webサーバーの仮想パス設定して、ライブラリを作成フォルダにコピーして・・・なんてことをやってるうちに、CGIプログラム以前に、CGIが動く環境はこうなっているんだ、といろいろ前段階の勉強と発見ができました。

私もひとのことはいえませんが、まぁちょいちょいと書き換えてUPしたらオリジナル出来上がりという訳ではないようです。ローマは1日にしてならず。おたがいがんばりましょう!
    • good
    • 0
この回答へのお礼

回答ありがとうございました。ところでCGIってタグを憶えるような感覚で学習していけるもんでしょうか?タグは<xxx></xxx>なので比較的憶えやすいのですが、HTMLに比べたらPerlは凄く短いのに、多くの画像や文面を表現できるから、かなり難しいと思っていたのですけど、経験されて見ていかがなもんでしょうか?

お礼日時:2003/11/29 12:06

多くのCGIプログラムは、ソースの一部分の設定を変えて(背景の色などのレイアウト、一部機能を変えて)自分に合った仕様にすることができます。


それ以外のソースそのものをいじるのは、Perlなどのプログラム言語ができないと無理です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
例えば動画をCGIで動かすことは出来るのでしょうか?大半はFlushで制作してからCGIを利用してるようにも見えますが、実際動画って単にFlushだけなのか、CGIも使っているのか?前から疑問でした。また一部分の設定を変えるには、やっぱりプログラムをいじるのでしょうか?済みませんが再度回答頂ければ幸甚です。

お礼日時:2003/11/29 11:43

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