トップページ⇒php
1001コメント344KB

CGI: Common Gateway Interface part 11

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/06/14 22:26ID:F9qlqHNx
CGIの運用に関する質問スレッドです。

※CGIは特定の言語に依存するものではありません。

Perlのコーディングに関する質問は、専用スレでお願いします:
[Perl 初心者コーナー Part24]
http://pc2.2ch.net/test/read.cgi/php/1054992610/

CGIとPerlの区別がわからない、という人はとりあえずこちらへ:
[WebProg 初心者の質問 Part3]
http://pc2.2ch.net/test/read.cgi/php/1045091733/

過去ログ・関連スレッドは >>2-5 あたりに
0783nobodyさん04/04/10 19:00ID:???
>>782
そだよねー。
まあ気にしているのはその掲示板に書き込まれたりすることじゃなくて、cookkieから
パスワードの傾向を読み取られて、もっと重要なパスワードを推測されることだから、
ロジックとして穴でなければ実装したほうがいいかな。
自分では掲示板系と重要なパスワードは明確に区別してるけど。

とはいっても私の作ったのだけがそうでもあまり意味ないので、これがポピュラーな
手法になるといいな・・・と期待してみたり。

「パスワードをcookieに記録する」というチェックボックスを投稿フォームに設けて、
ユーザー名やらなんやらだけ記録させるのも選べるようにしよう・・・。
0784nobodyさん04/04/10 19:33ID:???
つまり「頭2文字を除いたものを記録」というのは、
種となっているパスワードを隠蔽するためだったね。

2文字だと候補が少なすぎて容易にパスワードを予測されてしまうから、
せめて10文字くらいは削ったほうがよいかと。

cryptロジックが公開されていない(もしくは管理者がもつ秘密の種の強度が高い)
という条件なら、候補を出すこと自体もそれなりに難しくはなるけどね。
0785nobodyさん04/04/14 20:05ID:???
Perlコーディング初心者質問コーナーから誘導されて来ました。

CGIで出力させたリンクが思ったように動かないのです。

Perlで組んだCGI(test1.cgiとします)から
<a href="http://○○○/test2.cgi?item1">アイテム1</a> が出力されるようにし
ブラウザ上の「アイテム1」をクリックすると、確かに test2.cgi が起動するのですが
環境変数の一部が渡っていかない感じで、「item1」というデータが取得できず
望みの結果が得られません。

リンクを含んだデータが表示されている時点で、「ソースを表示」して別のHTMLファイルに保存し
別個に起動すると、そこからリンクした場合はちゃんと test2.cgi に item1 が渡っています。
右クリックから「ショートカットをコピー」して アドレスバーに貼り付けてやってもやはり問題なしです。

どうも、NT+IIS のサーバーでこういう現象になり、 AN HTTPD だと問題ないのですが
既知のトラブルなのでしょうか?
0786nobodyさん04/04/14 22:52ID:???
>>785
・test2.cgi にジャンプしようとする時,ステータスバーにはどう表示されているか?
・ジャンプ後,アドレスバーにはどう表示されているか?
っていう辺りに興味があります。。。
0787nobodyさん04/04/14 23:02ID:???
>786
785です。

WEB環境は勤め先なのでうろ覚えですが、

リンク文字にマウスカーソルをもっていったときステータスには

http://*****/test2.cgi?item1

と表示されていたように思います。

ジャンプ後のアドレスバーは明日確認してきます。
0788nobodyさん04/04/15 09:46ID:???
>>785
環境変数をすべて出力するスクリプトで、リンクから呼んだ
ときにちゃんと渡っているかどうかチェックしてみりゃいいじゃん。

あと、本気で解決する気があるのならNT+IISなんて書き方はしねーよ。
環境にしろ、問題になっている箇所にしろ、もっと具体的に
書くのが当たり前。

なんにしてもここは質問スレじゃないしスレ違い。
誘導自体が間違い。
0789nobodyさん04/04/15 17:23ID:???
785です。

Env.plというのでやってみたら、渡っている環境変数は半分くらい。
QUERY_STRINGもCONTENT_LENGTH も行ってませんでした。

スレ違い申し訳ありませんでした。
0790nobodyさん04/04/16 22:56ID:???
すみません、785です。解決したので報告です。

お恥ずかしい初歩的なミスですが、?の後のクエリーを全角文字で書いてました。

受け側もデコードとかしてなくて、それでもクエリーはちゃんと読めて、思ったとおりの
HTMを出力していたのですが、その時点で正常ではなかったようで、そこから飛ぶ
先の環境変数が壊れていました。

お騒がせしました。
0791nobodyさん04/04/17 16:00ID:ksEVTWBi
誘導されてきました。

GETやPOSTでデータを渡すとき、通常だと
「&」 … @pairs = split(/&/,$buffer);
と
「=」 … ($name,$value) = split(/=/,$pair);
でデータ切ると思いますが、これを別の文字にできますか?

「&」を「<>」とかに替えてみて、GETだと出来たんですが
POSTで渡すとき強制的に「&」になるようでデータを渡せませんでした。

POSTの時「&」意外にする方法はあるのでしょうか。
お願いします。
0792nobodyさん04/04/17 16:09ID:???
>>791
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13.4
0793nobodyさん04/04/17 16:11ID:???
>>791
W3C的にはgetの区切り文字は「;]が推奨されている。

Postの方は変えようがない。
0794nobodyさん04/04/17 16:31ID:???
>>792 >>793
そうですか・・・ありがとうございました。
別の方法を考えます。
0795nobodyさん04/04/17 18:01ID:???
なんでそんなことをする必要があるのか理解できん・・・
0796nobodyさん04/04/17 18:12ID:xkVKwnfm
今通販HP作成してまして
注文ページ1(HTML)で商品選択
注文ページ2(perlcgi)で選択商品の確認+住所等の入力
注文ページ3(perlcgi)で選択商品、住所等の確認
というページを作っていますが、ページ3でページ2に記入漏れがあった場合に
戻るボタンから戻る事を可能としたいんです。普通CGIのページでは戻ったり進んだり
できませんよね?、でも他サイトを見て回っていたらどうやらページ3からページ2へ
戻ることが可能になってるところもありましたので、私もやりたいのですが
調べても方法がわからないまま一日がもう終わりそうなので++;頼りにきてしまいました。
お願いします。

0797nobodyさん04/04/17 19:57ID:???
戻るボタンつーのはブラウザの戻るボタンかね?
それとも戻るボタンつーのを作ったのかね?
079879604/04/17 20:01ID:xkVKwnfm
レスありがとうございます。もどるボタンはhistory.back()でやろうと思ってますので
機能的にはブラウザの戻るボタンと同じです。
079979604/04/17 20:02ID:???
久しぶりに来たのでずっとsage忘れてました。ごめんなさい。
0800nobodyさん04/04/17 21:24ID:???
>>796
ページ3の戻るボタンでページ2にサブミットし直す。
ページ2の方では、ページ3から戻ってきたとき用のコードを書く。
ただそれだけ。
0801nobodyさん04/04/17 21:45ID:???
すいません、質問させてください。

あるサーバのCGIから別のサーバのCGIに
リダイレクトしつつ、POST送信することはできますか?

Location: http://aiueo/aiueo.cgi?name=value
だとGETになっちゃうので、これをPOSTで送りたいです。

意図としては、上記方法だと、送信データが
ブラウザのアドレスバー表示されてしまうので、
これをなんとか隠したいって感じです。

同じサーバ内ではセッションを使えばできますが、
何せ別のサーバへの送信になるので。。。

ご教授お願いします。
080280104/04/17 21:46ID:???
×アドレスバー表示
○アドレスバーに表示

でした。失礼。。。
080379604/04/17 21:52ID:???
>>800さんどうもです。
でもそれだと3〜2〜3〜2〜3〜2って何度も繰り返せないんですよね。
私の記述のしかたが悪いのかもしれませんけど、2〜3〜2〜3ってループする度に
ページ3に付けたhidden名の中にhidden名・・・・・で最後にページ1からの値。
みたいな感じになっちゃうんですよね。
とりあえず私が見た戻るを可能にしていたサイトではどうやらsubmitしなおしや
hiddenでリレーするようなのではないようで、普通にブラウザの戻るボタン
で戻れるようになってました。なので延々ループしても問題もないです。
なんかものすごく単純なコマンドがあるのかなって思ってましたけど・・・
「セキュリティ保護のため情報を再送信しないと表示をできません。情報を再送信しますか」
みたいな事を聞かれますが、それを自動でやらせる事ができる記述があるのかな?
みたいに思ってましたが・・・う〜ん。
0804nobodyさん04/04/17 22:25ID:???
>>801
a. CGI プログラム内で相手サーバに POST リクエストを
 送って結果を受け取り、それをブラウザに返す。

b. CGI プログラムで送信したい値を埋め込み済のフォームを
 生成し、ユーザに submit させる。
0805nobodyさん04/04/17 22:41ID:???
>>803
3>2>3>2が繰り返せないのは単純に作りがへぼいだけ。
このコーディングを説明されないと書けないようなら向いてないから
辞めた方がいい。

あと、hidden項目なんぞ使わなくてもCookie使うなりDB使うなりでも
いいのだが。

とりあえず勉強し直せ。
あと、その際は基本も読んでおけ。
www.ipa.go.jp/security/awareness/vendor/software.html
080680104/04/17 23:01ID:???
>>804

レスありがとうございました。

a. なんですが、確かにLWPモジュールなんかで
結果を受け取ってそれをブラウザにprintすればいいんですが、
その時ブラウザのアドレスバーには
送信元のサーバのURLが表示されますよね?
送信先のサーバが表示されていなければいけないんです。
(そういう意味でリダイレクトという表現をしました)

b. については確かにそうなんですが、
JavaScript を使って onLoad で送信したり、
一度ユーザにボタンを押してもらう方法では
ちょっと厳しいかなーと思ってます。
JSを無効にしていたり、重要なデータになると、
HTMLソースをいじられる可能性があると問題なので。

そういう意味ではサーバをまたがったセッションになるわけですが、
何せ送信先のサーバのCGIはこちらからではいじれないので。。。
080779604/04/18 10:28ID:???
>>805
作り方の問題ですか。
ところでDBていうのはDataBaseの略ですか?DBっていうものをほとんど理解してないので
色々サイトを回ろうと思います。
0808nobodyさん04/04/18 11:51ID:???
>>806
重要なデータは扱うべきではないと思いますけど気のせいかな
080979604/04/18 17:27ID:???
なんとかCOOKIEをつかってのsubmitしなおしで注文の引きつぎできるようになり2>3>2>3の
繰り返しもできるようになりましたが、もっともっと勉強が必要みたいです。
また来ます。
081080104/04/18 22:47ID:???
>>808

扱わざるを得ないとしたら、
この方法だと手詰まりですかね。。。(汗
0811nobodyさん04/04/19 00:22ID:dIBR14RC
LWPモジュールを使っていろいろと試して遊んでいます。
で、質問なのですが、
proxyを設定するために

use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->proxy(http => 'aaa.aaa.aaa:80');
$req = HTTP::Request->new('GET',"http://www.google.com");
$res = $ua->request($req);
print $res->content;

としたのですが、何も表示されません。
プロキシが生きていることは確認しました。
どうすればよいですか?
0812nobodyさん04/04/19 00:48ID:???
>>811
本当に何も表示されないんだったら俺の手にも負えないな

ちなみに俺のところでそのコードをそのまま実行したら
501 Protocol scheme 'aaa.aaa.aaa' is not supported
と表示されたよ
081381104/04/19 01:37ID:???
さっきは何も表示されなかったはずなのに、も一度やってみたら、
501 Protocol scheme ' ' is not supported
だそうで。
プロキシのアドレスにスキームhttp://を追加したらうまくいきました。
てかHTTP::Lite使った方がいいじゃん。
失礼しましたm_ _m
0814nobodyさん04/04/19 01:45ID:dIBR14RC
perlでのhttpアクセスにおいてリファラを任意に設定することは
できないのですか?少し前質問スレで無理って結論されていた
のですが、本当に無理なのですか?
身近なところでiriaなんかもリファラ設定できますよね?
あと、win32api使えばできたような・・・・
0815nobodyさん04/04/19 02:03ID:???
>>814
できます
0816nobodyさん04/04/19 07:23ID:???
>>814
プロキシかブラウザを作るしか。

(IEコンポーネントを利用した等の)ブラウザ作ればいくらでも可能。
CGIじゃないけど。
081781404/04/19 09:29ID:???
>>815さん、それはperlだけで可能ということですか?
具体的にどうすればよいのでしょうか?プロキシを作ればできるという意味ですか?
それともソケットをいじるだけでできるものなのですか?

>>816さん、できればperl単体でやりたいのですが、なんとかならんでしょうか・・・
0818nobodyさん04/04/19 10:45ID:???
ん?
Referer: ヘッダ付ければそれで済むことやん。
0819nobodyさん04/04/19 12:06ID:???
>>816
httpの仕様をよく勉強しましょうね
082081404/04/19 12:37ID:???
>>818
その通りでした--;
一連の流れでてっきりperlではリクエストヘッダいじれないものだとばかり・・・・
http://member.nifty.ne.jp/hippo2000/perltips/HTTP/Request.html
↑らへんを参考にやればちゃんとできました。
use LWP::UserAgent;
require HTTP::Headers;
$ua = LWP::UserAgent->new;
$h = new HTTP::Headers;
$h->user_agent('momomo');
$h->referer('http:://localhost.com/');
$req = HTTP::Request->new(GET,'http://www.taruo.net/e/?',$h); #確認用に診断くんへアクセス
$res = $ua->request($req);
でも一つ分からないことがありますので最後に質問させてください。
解説ではHTTP::Requestオブジェクトの生成時に指定する引数の3番目にHTTP::Headersオブジェクト
へのリファレンスを指定せよとあったのですが、\$hとしたらエラーになってしまいました。\をはずした
らうまくいきましたが、これって問題ないのですか?それとも僕の頭がおかしくて勘違いしてる?
0821nobodyさん04/04/19 12:57ID:???
>>820
おかしくはないけれども後者。リファレンスのリファレンスだからね(^・^)チュッ
082281404/04/19 13:18ID:???
>>821
$hはもともとリファレンスだったのですね。
よく分かりました。ありがとうございます。
・・・・・・ブチュ
082381404/04/19 14:53ID:???
何度もすみませぬ。
LWPを使ったアクセスを診断くんで確認したところHTTP_TEなる環境変数を
吐いているようで、んでもってHTTP_TEはプロキシ判定材料の一つなそうな。
もともとwebや掲示板等を巡回するようなツールを想定していたのですが、
こんなものを吐いていたら一部の厳格なプロキシはじきを通れません><
で、消してしまおうと思い。
$h->remove_header('te');
の一文を挿入したのですが、消えてくれません。書き方がまずいのかと思い、
teをHTTP_TEにしてみましたが変化なし、別の環境変数(referer等)はちゃんと
消せました。(user_agentは無理でしたが(そらそうか))
アドバイスお願いします。
082479604/04/19 15:31ID:???
「このページは他人に見られることのないように保護をされています。」

っていう通販HPの注文ページを見かけますが、私も自分のHPに保護をしたいページ
があるのでできるように勉強したいのですが、何について勉強すればいいのかわかりません。
今までhtml,javascript,perl等はいろんなホームページを回って勉強しましたので
今回もどこかのHPで勉強しようと思ってますが、どこかおすすめありませんか?
なにぶんどんな技術なのか言語がなんなのかさっぱりわかりませんので、どうゆう
キーワードで検索をかければいいかわかりません。どうぞよろしくお願いします。
0825nobodyさん04/04/19 15:49ID:uFMZjudZ
>>824
https ssl
0826nobodyさん04/04/19 15:52ID:???
>>823
俺も同じことやろうとして、消せなかったんでめんどくさいけどSocketモジュール使った。
消す方法があるのなら俺も知りたい。
0827nobodyさん04/04/19 16:59ID:???
>>823

$h = new HTTP::Headers;
sub HTTP::Headers::AUTOLOAD {
(shift->_header($1, @_))[0] if $HTTP::Headers::AUTOLOAD =~ /::([a-z_]\w+)$/;
}
$h->te('');
$h->chubou('教えてください');
$h->kami('俺にまかせろ');
$h->chosakuken('消すよ♪');

$ENV{'HTTP_TE'}をundefにしたければHeaders.pm書き換えないと無理っぽい
0828nobodyさん04/04/19 17:06ID:???
sub remove_header
{
 my($self, @fields) = @_;
 my $field;
 my @values;
 foreach $field (@fields) {
  $field =~ tr/_/-/ if $TRANSLATE_UNDERSCORE;
  my $v = delete $self->{lc $field};
  push(@values, ref($v) ? @$v : $v) if defined $v;
 }
 return @values;
}

だそうです。。。
082979604/04/19 18:32ID:???
>>825
ありがとうございます。
ところで例えばp1で住所等個人情報入力フォームがあり
p2で入力した内容の確認ができ、p3でそれを送信するといった場合に、
p1で入力された情報をp3まで引き継ぐ必要があるわけですが、どうやって
その入力データの引き継ぎをするのが理想的でしょうか?私が今できる事と言ったら
hiddenかcookieを使っての引継ぎくらいですが、セキュリティ的にどちらでするべきか
迷っています。どちらにしろSSLで保護はしますので安全だろうと思ってますが自信がもてないので
アドバイスお願いします。
cookieの場合ブラウザに個人情報がブラウザが閉じるまで?もしくは任意の時間残ってしまいますよね?
hiddenはソースを開けば見れる。←これは問題ないですよね?
083081604/04/19 19:23ID:???
>>814
質問スレの流れからrefererを偽装する話だと思ったら、
クライアントを作る話か。こんちくしょうって感じ。
以下、UserAgentバージョン2.024で動作したスクリプト。

use LWP::UserAgent;
push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, ('SendTE' => 0));

my $ua = LWP::UserAgent->new(agent=>'My-crawler/1.0');

my $url = 'http://192.168.0.11/~test1/env.cgi';
my $referer = 'http://example.net';

my $response = $ua->get($url, referer=>$referer);
($response->is_success) or die 'response: ',
$response->code, ' ', $response->message;
print $response->content;
exit;

# httpが分かれば、直接IO::Socket::INETの方が便利。

>>819
もう一度rfc2616を読んでおくよ。
083181604/04/19 19:26ID:???
あ、urlを替えるの忘れてた。
適宜変更してね。
083281404/04/19 21:17ID:???
>>830
できました!本当にありがとうございました!もうちょっといじってからSocket
でもやってみようと思います(無理か・・・・w
refererの存在って例のITmediaの一件以来かどうかはしらないけどいまいち
存在意義がないような・・・出力をクライアントに依存するせいでいくらでも偽装
できるし、そもそも最近のセキュリティツールはreferer自体吐かないようになっ
てるのも多いし。refererを何かの判定に使おうとしたら結局ユーザビリティ低下
させるだけなのかな。
0833nobodyさん04/04/19 21:41ID:???
>>829
あのさぁ、この前紹介したページ見た?
というか、Webセキュリティについて何も知らないのが明らか
なんだから、こんなところで一つ一つ質問していないで、
一から勉強しなおせ。

今のまま個別の実装の仕方を覚えたところで穴だらけの
駄目通販サイトができるだけ。
まぁ、素人の作った通販サイトなんてそんなもんだが。
083479604/04/19 23:10ID:???
>>833もちろんありがたく見させてもらってます。htmlの勉強始めてから1ヶ月
くらいで、勉強自体はずっと進行形です。HPとかは一方的なのでわかったり
わからなかったりするので、ここで行き詰まった部分のアドバイスをもらうと
他のわからなかった部分も理解できたりするもので。2chってhow toのいい掲示板だなあ
と思ってましたが、あまりにも私の話はレベルが低すぎて迷惑ですかね。
レベル的に軽いスレ違いですね;私くらいの人間が行っても迷惑にならないスレって
ありますか?
0835nobodyさん04/04/20 15:07ID:???
>>834
ありません。まず日本語勉強してきてね。
0836nobodyさん04/04/20 17:31ID:???
>>834
趣味でやってるようなものならともかく、通販みたいに商売でやるものを
素人がわからないで手を出すなよ。
金を払って作ってもらったものを参考にとか、仕組みを完全に理解するまで
勉強してからやれよ。
0837nobodyさん04/04/20 17:42ID:???
サイトやスクリプトの「素人っぽさ」って、案外簡単に感づかれるよ。
「絶対に誰にも何も聞かずに自分ですべて調べて1からシステムを構築できる」レベルになるまで
そういうのには手を出さないほうがいい。
0838nobodyさん04/04/20 20:19ID:???
>>837
素人っぽさってどう言う所で判断してる?
俺の場合、何がどうと言う事ではなくエディタで開いて3秒くらいで
ゴミ箱行きかどうか決めてるけど。
0839nobodyさん04/04/20 23:11ID:???
use strictだろ。 Perlなら。
0840nobodyさん04/04/21 00:43ID:???
確かにモジュール関係の記述は目安になるな
0841nobodyさん04/04/21 23:43ID:???
>>829
そういう重要な情報はサーバーサイド(通常はDB)に保存し、
Cookieやhiddenにはそれにアクセスするためのキー情報のみを
セットする。そういうのを一般的にセッション管理という。
総当り方式等でセッションをハイジャックされないような仕掛けも必要。
迂闊に手を出さない方が良いと思う。
084279604/04/22 10:47ID:???
おはようございます。完全に勉強してからつくるではなくて、勉強しながらつくって
完全に理解できたときに完成と認めてスタートさせようと思ってます。とりあえず
CGI部分の機能はできた?ので、今はちょっとデザイン部分をやってます。
>>829ありがとうございます。凄い参考になります。その路線をがんばって勉強します。
本当ありがとうございます。
0843nobodyさん04/04/22 11:03ID:???
>>842
もう来るな
0844nobodyさん04/04/22 13:24ID:???
>>843
真面目に勉強したなら、もう来る必要がなくなくなるからご安心を(w
0845nobodyさん04/04/23 14:57ID:???
自作モジュール使ったCGIを配布、もしくは設置したけど
モジュールのソースを公開したくない時ってどうしてます?
(モジュールファイルをアップしたくない)

自分管理のサーバ内にモジュールを置いておいて、
外部サーバからLWPでGETさせてevalで利用ってのを考えてみたけど…。
でもそれってCGIソースからモジュールのURL知られてDLされたらおしまいか。
使い勝手も悪そうだし、毎回負荷がかかっちゃうのも問題かー。うーむ。
0846nobodyさん04/04/23 15:03ID:???
>>845
誰も見ないから安心して公開してください。
084784504/04/23 15:09ID:???
>>846
それ言われるとお終い。
0848nobodyさん04/04/23 15:51ID:???
なんか「ホームページのソースを見せたくない」に似てるな。
0849nobodyさん04/04/23 17:01ID:???
そんなに恥ずかしいソースを書いてるのか
0850nobodyさん04/04/23 17:25ID:???
perl の場合なら

1. perlcc でコンパイルして配布する
2. perlapp でバイナリ化して配布する

どっちにしてもポータビリティは無くなるが
0851nobodyさん04/04/24 15:57ID:RLkwArNt
質問があります。

ttp://i-meishi.jp/design/flower.html

ここのように一つデザインを選んだら、次の注文フォームで
自動的にデザイン番号が入力されるようにするにはどうすれ
ばいいのですか?
フツーのフォームメールCGIでできますか?
よろしくお願いします。
0852nobodyさん04/04/24 16:44ID:???
値を渡せ。さすれば道は開けるであろう。
085385104/04/24 16:52ID:???
>>852

値を渡すとは

****.cgi?****=****

みたいなヤツですよね?
もう少し具体的に教えていただけないでしょうか?
厨ですみません・・・
0854サバティさん04/04/24 21:19ID:???
>>845
RPC でぐぐっちょみ☆
0855nobodyさん04/04/24 23:13ID:???
>>853
わからないなら無理だからあきらめな
085685104/04/25 07:05ID:+y7H56mQ
>>855
どうも違うみたいですね。
ページから別ページのフォームの特定テキストボックスに値を渡すにはどうすればいいのでしょうか?
解説しているページなどあれば教えていただけるとうれしいです。
0857nobodyさん04/04/25 07:59ID:???
>856
受け取った方のCGI(のフォーム)でそのvalueをセットしておく?
085885104/04/25 09:28ID:???
>>857
そうすると商品(デザイン)の数だけフォームを用意しないといけませんよね?
なんかスマートでないというか・・・
0859nobodyさん04/04/25 09:47ID:???
>>851=858
ど素人は一つ一つ聞かないで、一から勉強しれ。
藻前が必要としていることが書いてあるCGIの本なんて2000円もしない。
Web上にもいくらでも資料がある。

>>1をよく読んでからどっか行け。
0860nobodyさん04/04/25 13:00ID:???
>>859
まあまあ、それでなくても過疎板なんだからお客さんは大事にしないと…

>>858
基本中の基本だからCGIの勉強をしてれば自ずとわかるようになる。
2ちゃんで安易に回答を得ることは、自分の成長の芽を摘む事とさも似たり。
精進したまえ。
0861nobodyさん04/04/25 13:19ID:???
>>851
似たようなCGIを探している人がいたから、こっちで一緒に探したら?

【CGI】こんなCGI探してますver.13
http://pc5.2ch.net/test/read.cgi/hp/1081608108/156
086285104/04/25 18:15ID:YwE1vg2P
>>861
それ私です。(^_^;
誰も心当たりがないみたいで・・・
0863nobodyさん04/05/01 12:39ID:???
携帯3キャリア対応のCGIを作ろうと思ってるんですが、
モバイル対応CGI作成における情報・TIPSが
載ってるサイトを知ってる人いますかね??

書籍類も無いみたいだし…
0864nobodyさん04/05/01 12:42ID:???
いろんなサイトにちょっとずつ情報が散らばってるから、
それを自分で調査、収集、整理して利用すべし。
0865nobodyさん04/05/01 14:41ID:???
http://www.au.kddi.com/ezfactory/
http://www.dp.j-phone.com/dp/
http://www.nttdocomo.co.jp/p_s/imode/make/
0866nobodyさん04/05/02 22:56ID:VyPHEPB5
特定のディレクトリだけ公開したいんだけど
ディレクトリ内のファイルをリスト化してリンク貼ってくれるような
スクリプトありませんか?
0867nobodyさん04/05/02 23:11ID:???
mod_autoindex

<Direcrory "/path/to/hoge">
Options Index
</Directory>
0868nobodyさん04/05/03 02:56ID:rRSmxfOR
質問。
CGIで数枚の画像を重ねて、それを一枚の画像に結合することは可能でしょうか。
CSSで画像を重ねることはできました。
アバターの様にいくつか画像を選んでそれを一枚の画像にして表示させたいんです。
ぐぐったり、ヤホージャパンアバターのhtmlソースを確認したところ、外部で処理してるようなのです。
CGI、java、PHP、、、etc、どれを使用して処理しているか解かりませんが・・・(汗
0869nobodyさん04/05/03 03:51ID:???
>>868
一番簡単なのはFLASHで作る方法。
0870nobodyさん04/05/03 04:34ID:???
まあ ImageMagick が定石だろうな
087186304/05/03 11:59ID:???
>>864,865

情報ありがとう。
公式ページはチェックしてるけど、
CGI開発における情報ってあんまりだったので。。
地道にグぐるしかないかもね。
thx
0872nobodyさん04/05/03 12:30ID:???
そもそも CGI とは関係ない罠。
0873nobodyさん04/05/08 15:00ID:vSbIGN9w
@files = glob("./*.*");
foreach $key (@files) { print "<a href=\"$key\">$key</a><br>\n";}

動かしてる鯖は
WinXP Pro/Apache2/ActivePerl/ZoneAlarm

こんな感じでディレクトリ内にあるファイルを
リスト化してリンクしてくれるモノを作ってみたんだが
実際にそのリンクをクリックするとファイルがサイト内にないというような
警告がでてなにもできない
このスクリプトのどこか間違ってますかね?
0874nobodyさん04/05/08 15:33ID:???
>>873
スレ違い
0875nobodyさん04/05/10 16:02ID:aYuK5bou
CGIで画像を出力したいのですが、i-mode(P505i)では下記の記述で
出力されるんですが、どうもAUとvodafoneでは表示されないようです。
下はJPEG画像の出力ソースです。なぜなんでしょうか?


open(IN,"ファイル名") || &Error("エラー:ファイル名");

print "Content-type: image/jpg\n\n";

print while (<IN>);
close IN;

すみませんがよろしくお願いします。
0876nobodyさん04/05/10 16:19ID:???
>>875
image/jpegじゃないの
087787504/05/10 16:22ID:aYuK5bou
image/jpgではだめなのですか?
すみません、無知なもので・・・
ドコモはimage/jpgでも表示できるんですが、
image/jpegにしたほうが良いようですね。
ありがとうございました。さっそく直してみます。
0878nobodyさん04/05/11 06:06ID:???
拡張子とMIMEタイプは違う。
image/jpg なんていうMIMEタイプは登録されていない。
http://www.iana.org/assignments/media-types/image/
0879nobodyさん04/05/11 06:20ID:???
だね。
Content-type: text/txt\n\n;
なんて書かないのと同じ。
0880nobodyさん04/05/11 10:54ID:???
たのむから仕事でコード書くときは
CGI、CGI::Sessionなどのモジュールを利用してください。
0881nobodyさん04/05/11 19:06ID:iWNmrZA1
CGIからMHTを出力したいのですが、うまくいきません。
IEではテキストがそのまま表示されてしまいます。
名前をつけて保存すると、開けるようになるので、
バイナリは一致しているはずなのですが。

MHTのMIMEタイプを調べて、
Content-type: message/rfc822\n\n
を出力しているのですが、これではIEが解釈してくれないのでしょうか。
0882nobodyさん04/05/11 19:48ID:Ax2GxUUe
抽選cgiを作りたいんです。
内容として一日一回 当選を出す
日付が変わるとリセットされる
プログラム作って頂けませんか
■ このスレッドは過去ログ倉庫に格納されています