トップページ⇒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 あたりに
035132403/08/13 14:39ID:???
えっと、言語はPerlなんですが、
うーん、Perlでhtmlをprintしている途中で、
-------------------------------------------------------------
my $HtmlSubsidy_exam_intro;
if (($FlagSoudan == 1) && ($in{'q' . $sw2_num} == 1)){
    foreach $key (sort keys %in){
        $HtmlSubsidy_exam_intro .= qq|$key=$in{$key}&|;
    }

    $HtmlSubsidy_exam_intro = qq|
        <script language="JavaScript">
        window.open('./?|.$HtmlSubsidy_exam_intro.qq|mode=intro','','toolbar=no, width=510, height=170');
        </script>
|;
-------------------------------------------------------------
ってなかんじです。(JavaScriptはここでしか用いてません)
これだとネスケ7.1で正常に動作して、
$HtmlSubsidy_exam_intro .= qq|$key=$in{$key}&|;
のところの&を&amp; にすると、値をちゃんとよんでくれないんですよね・・・。

ところで、本来だと&amp;でサーバに渡して、
local(@query) = split(/&/, $query);
で処理できるわけですが、&amp;から&への変換(?)は、
どこでどのタイミングで行われてるのでしょうか?
Apacheがクエリーストリングを受け取った瞬間?
035232403/08/13 14:45ID:???
あ、自分が >>351の後者で質問した内容、
1分差で、>>350さんが答えてくれましたね。
ありがとうございます。
RFC2396 さらっと見しましたが、とりあえず、理屈はわかりました。
これからじっくり読んでみます
0353nobodyさん03/08/13 14:57ID:???
とりあえず解答は出たね。
Netscape7.1の問題じゃなくて、>>324=>>351の
スクリプトがおかしい。

ところで、セミコロンに変えるのを試していれば、
すぐに解決してたような。
035432403/08/13 15:59ID:???
>>324=>>351です。

>>>353さん
>とりあえず解答は出たね。

いや、&だと正常に動作して、
&amp;だと正常に動作しない(値をちゃんとよみとってくれない)んです。。。
つまり、本来と逆のように思われるのです。

もしスクリプトがおかしいとしたら、
どこがおかしいかご指摘していただけますでしょうか?
0355nobodyさん03/08/13 16:01ID:???
KENTさんのpatio.cgiを使っているのですが、
「初心者」という文字列を含む名前をエラーではじきたいのですが、
どうすればいいでしょうか?

一応、「初心者」であればエラーを返すようにしています。
if ($i_nam eq "初心者") { &error("任意の名前でお願いします"); }
この場合だと「PC初心者」をはじくことができません。
正規表現を使わなければいけないというのはわかっているのですが、
if ($i_nam =~ /初心者/)
ではダメなんでしょうか?

よろしくお願いします。
0356nobodyさん03/08/13 16:08ID:???
>>355
スレちがーいー♪ >>1 嫁〜よ〜ぉっ
035735503/08/13 16:12ID:???
ごめんなさいです。
http://pc2.2ch.net/test/read.cgi/php/1059043704/l50
へ逝きます。
0358nobodyさん03/08/13 16:33ID:???
>>354
&amp; → & の変換はHTMLの話。JavaScriptとは関係ない。

HTML
  <a href="foo.cgi?hoge=1&amp;huga=2&amp;hage=3">
  リンククリック時に foo.cgi?hoge=1&huga=2&hage=3 として送出。

JavaScript
  location.href = "foo.cgi?hoge=1&amp;huga=2&amp;hage=3";
  実行時に foo.cgi?hoge=1&amp;huga=2&amp;hage=3 として送出。

locationと同様、window.open() の第1引数(URL値)に含まれる &amp; が
& に変換されないのはJavaScriptの仕様。
Netscape謹製のブラウザで正しく動作しないのは当たり前。

そして、既にこの時点で板違い。→ Web制作 http://pc2.2ch.net/hp/
0359nobodyさん03/08/13 18:47ID:???
&amp; を&amp; って書いている香具師へ

&amp;amp;って書けばええよ。
0360nobodyさん03/08/13 18:55ID:???
&amp;amp;は&amp;amp;amp;って書けばいいのか。
0361nobodyさん03/08/13 19:19ID:???
>>356
ということは、
&amp;amp;amp;は&amp;amp;amp;amp; (ry
0362nobodyさん03/08/13 20:09ID:kY5HHsty
テストサーバ、redhat7.3の
Apacheを1.3.27から2.0.47にアップグレードした所
あるPerl/CGIが極端に重くなってしまいました。
5分経っても表示されない、という感じなのです。

いろいろ見たところ、
#!/usr/local/bin/perl -w
と-wフラグをつけたモノだけが遅いので試しに外してみたら
サクっと表示しました。
Apache/1.3.27の頃はつけようがつけまいが問題なかったものです。
原因によってはスレ違いかもしれませんが、
原因が皆目見当が付きません。
どなたか心当たりのある方いらっしゃいませんか?
0363nobodyさん03/08/13 21:17ID:???
>>362
もうなんかダメダメだ
0364nobodyさん03/08/13 21:46ID:???
>>362
-w ってけっこう厳しく警告をだすためのフラグだっけ?
実行しているソースから警告がでまくっていて処理が遅いと
そんな感じだと思われ
036536203/08/13 21:54ID:???
>>364
ホンチャンサーバでは問題なく動いているのです。Apache/1.3.26 (Unix)
テストサーバもApache/1.3.27 (RedHat)の時は問題なく動いてました。

Apache/2.0.47にした途端の症状なのです。
-w付きでチェックしてもシンタックスおっけなんです。
-w外すと問題なく動きます。
0366nobodyさん03/08/13 23:16ID:???
>>365
さあ?Perl が出力するログをトラップしてerror_logに出力するのに、
Apache2.0では時間がかかるようになったとしか漏れの頭では思いつかないけど。

普通にコマンドラインから # perl hoge.cgi としても実行結果が遅いのか?
それか -wって警告を多めに出すだけだからはずせば?
036736403/08/13 23:18ID:???
つーか、CGIと全然関係ないじゃん
すんません、この話にレスするのもうやめます
036832403/08/14 01:32ID:???
>>358
>locationと同様、window.open() の第1引数(URL値)に含まれる & が
>& に変換されないのはJavaScriptの仕様。
>Netscape謹製のブラウザで正しく動作しないのは当たり前。

なるほど、これですごい納得しますた。ありがとうございました。
0369nobodyさん03/08/14 01:49ID:???
>>368
最初っから、JavaScript って言えよ。あほくさ。
0370nobodyさん03/08/14 01:53ID:???
>>369
>>368は最初から例示が駄目すぎだったね。
こっちもいらん手間かけたよ…。
0371nobodyさん03/08/14 10:43ID:???
(ちなみに、自分は>>324 ではないんですが・・)
<a href="affiliate.cgi?partner=http://www.abc.net/&location=http://www.foo.jp">りんく</a>
っていうのは、正しいですか?

>>350さんがあげてる
FC2396 http://member.nifty.ne.jp/moha/rfc/rfc2396j.txt
を読んだものの、いまいち意味が理解できず・・・
0372nobodyさん03/08/14 12:55ID:???
クッキーの
Set-Cookie: $cookiename=$cookievalue; の$cookievalueの部分って、
文字長に制限はあるのでしょうか?
http://www.futomi.com/lecture/cookie/specification.html
にある仕様書を見る限り、なにも文字長については書いてないようですが。
037337103/08/14 13:15ID:???
すいません、自己レスですが、URLエンコードということの意味をわかってませんでした。
ただしくは、
<a href="affiliate.cgi?partner=http%3a%2f%2fwww.abc.net%2f&location=http%3a%2f%2fwww.foo.jp">りんく</a>
ですね、失礼しました。
0374nobodyさん03/08/14 20:13ID:???
>>371

HTMLは

>>350から引用
>ちなみに
><input type="hidden" name="hoge" value="1<>2<>3"> も
><input type="hidden" name="hoge" value="1<>2<>3"> も
>正当なHTML。間違いではない。
>が、後者のように記述するよう推奨されている。
>                  ~~~~~
引用終わり

だと思われ。
0375nobodyさん03/08/14 20:54ID:???
>>372
たしか1024文字まで。
ただし、「$cookiename=$cookievalue;」 ←これを全部含めて1024文字までだと思った。
つまり、= とか ; とか クッキーの名前 とかもその制限に入る。

たしか。
0376nobodyさん03/08/14 22:16ID:???
>>372

ttp://www.futomi.com/lecture/cookie/specification.htmlから引用
>一つのクッキーにつき4KBまで。name と OPAQUE_STRING は、
>4KBまでの形式に結合されます。.
引用終わり

全部含めて4096バイトが容量制限。
キャラクタセットによって文字数は左右されるから、自分で調べてね。
037737203/08/14 22:59ID:???
>>376
あれ、すいません、見過ごしてたみたいです。
ありがとうございました。
0378nobodyさん03/08/14 23:53ID:???
なんか、過去ログの>>288とにたような質問なんですが・・・

www.foo.co.jp で発行したクッキーを、
www.bar.co.jp で取得することはできますか?

>>292 で言ってるみたいに、
www.foo.co.jp でクッキーを発行するとき、
「domain=bar.co.jp」とすれば、
www.bar.co.jp で取得できるのかなーと。

なお、今はまだ環境がととのってないので、テストで試してみることができず・・・
0379nobodyさん03/08/15 00:03ID:???
>>378
できない。ドメイン違うだろうが。
038037803/08/15 01:46ID:???
>>379
あ、そうか、仕様として、そもそも発行元のドメインと取得先のドメインが違うとダメってことですか?

つまり、仕様書のdomain の項目で書いてある「後方一致」ってのは、
あくまで同じドメインでの話しってことですか?

(例だした方がわかりやすいかな・・・)
acme.comにおいて、domain=acme.comとしてクッキーを発行すると、
anvil.acme.com ではそのクッキーを取得できるけど、
hoge-acme.comでは、そのクッキーは取得できない。

・・・という理解で間違いないですか?
0381nobodyさん03/08/15 03:18ID:???
>>380
そういうこと
038237803/08/15 18:51ID:???
>>381
やっと理解した。どもです。頭わりーおれ
0383山崎 渉03/08/15 22:33ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0384nobodyさん03/08/16 12:45ID:KHB072f8
age
0385nobodyさん03/08/16 15:53ID:jb3r1JoJ
Perlなんすけど、頻繁に呼び出されるCGIで、設定項目の変数だけで10KB以上使うとまずいですがね。
一般的な共有サーバで動かすことを前提にすると。
0386nobodyさん03/08/16 22:30ID:grNQSJhA
写真集だよん☆☆☆☆☆☆
http://www.sexpixbox.com/pleasant/teen/index.html
0387nobodyさん03/08/17 21:30ID:ycQ+dswy
アクセス解析のCGI作ったんですけど、
フレームを使っている性で全部リファラがindexになってしまいます。
使っている鯖はSSIは使えませんし、.htaccessも使えません。

どうすればリファラが取れるんですか?教えてください。御願いします。

すれ違いだったらすいません。
0388nobodyさん03/08/17 23:46ID:78eH/B6l
javascript でリファラをとって、cgi ヘ渡せ
0389nobodyさん03/08/17 23:47ID:78eH/B6l
>>385
気にしなくて良し。
0390nobodyさん03/08/17 23:57ID:???
>387
http://pc2.2ch.net/test/read.cgi/php/1060808783/171
マルポ
0391nobodyさん03/08/20 19:32ID:M8LljIzL
最近、マルチバリューとかいう仕組みで<INPUT>タグのCHECKBOXなどで
<input type=checkbox name="SHUMI" value="PC">パソコン
<input type=checkbox name="SHUMI" value="SP">スポーツ
<input type=checkbox name="SHUMI" value="RD">読書
のようなことができるようですが、これはいつ頃から可能になったのでしょうか?
5年ほど前は
<input type=checkbox name="SHUMI_PC" value="1">パソコン
<input type=checkbox name="SHUMI_SP" value="1">スポーツ
<input type=checkbox name="SHUMI_RD" value="1">読書
のような形でがんばっていたような記憶があるのですが
気のせいでしょうか?

0392_03/08/20 20:02ID:???
http://homepage.mac.com/yamazaki8
0393nobodyさん03/08/20 20:43ID:???
>391
上手くやればできる。
今も5年前も10年前も。
0394nobodyさん03/08/20 20:49ID:???
>>393
えぇ!うまくやればってどういうことですか?
昔も前者の書き方ができたのかどうか聞きたいのですが。
ロジックの問題ではなくHTTPプロトコルレベル、または
WebブラウザとWebサーバーの対応状況の話だと思うのですが・・・
0395nobodyさん03/08/20 20:53ID:???
HTML2の時にはすでにできてたな
RFC1866あたりだよ
0396nobodyさん03/08/20 20:58ID:???
>>395
ほうほう。では、IE4くらいだったら余裕っすかね。
0397nobodyさん03/08/20 23:22ID:???
>>391

つか、今流通してるブラウザで、

<input type=checkbox name="SHUMI" value="PC">パソコン
<input type=checkbox name="SHUMI" value="SP">スポーツ
<input type=checkbox name="SHUMI" value="RD">読書

に対応してないブラウザってあるの?

平気な顔して使ってるんですが・・・
0398nobodyさん03/08/22 00:19ID:???
今、携帯用のコンテンツを作ってるんだが、
まさか……大丈夫だよな。
0399nobodyさん03/08/22 00:46ID:???
いや、オゾンホールの影響で電波が飛ばなくなるらしいからな。
もう駄目だろうな。
0400nobodyさん03/08/28 15:42ID:ER3uJlrJ
www.hoge.com/foo.cgi
では、
●クッキーを発行したあと、
●Location:ヘッダで www.hoge.com/bar.cgi にとばす

の処理をしてます。

で、質問です。
www.hoge.com/bar.cgi の中の処理で、ついさっき発行されたクッキーを読もうとしたとき、
クッキーは読み込めるのでしょうか?

環境依存なのでしょうか?
0401nobodyさん03/08/28 17:18ID:???
環境依存です。Cookieに対応していないブラウザでは読めません。
040240003/08/28 18:26ID:ER3uJlrJ
>>400
あ、ごめんなさい。
「クッキーに対応して、有効にしているブラウザ」の中でを条件に加えてください。
040340003/08/28 18:27ID:???
もとい、>>400じゃなく、>>401でした
0404nobodyさん03/08/28 22:09ID:???
読み込めないの?
試したの?
0405nobodyさん03/08/29 01:22ID:???
>>400
www.hoge.com/foo.cgi

The page cannot be found
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.

--------------------------------------------------------------------------------

Please try the following:

If you typed the page address in the Address bar, make sure that it is spelled correctly.

Open the home page, and then look for links to the information you want.
Click the Back button to try another link.
HTTP 404 - File not found
Internet Information Services


--------------------------------------------------------------------------------

Technical Information (for support personnel)

More information:
Microsoft Support
0406nobodyさん03/08/30 08:37ID:???
例を挙げるときは、example.comを使いましょう。
0407nobodyさん03/08/31 00:28ID:???
今、CGIを通して、別の画像ファイルを読み込んでそれをブラウザに渡すと言うCGIを作っているんだが・・・

use CGI;
my $q = CGI->new;
my $file = '/hoge/hoge.jpg';
binmode(STDOUT);
$| = 1;
print $q->header(-type=>'image/jpeg');
open ( IN, $file );
binmode ( IN );
while ( <IN> ) {
print STDOUT;
}
close ( IN );
close ( STDOUT );

これで普通は動くよな?
0408nobodyさん03/08/31 00:30ID:???
なんか、ずっと読み込み中になって終わんないんですよ。
0409nobodyさん03/08/31 01:56ID:???
>my $file = '/hoge/hoge.jpg';
パスは間違いない?
my $file = './hoge/hoge.jpg'; なら表示されたけど
0410nobodyさん03/08/31 01:58ID:???
>my $file = '/hoge/hoge.jpg';
こんな場所に画像ファイルを置いてるのか?
ビックリだ。
041140703/08/31 02:02ID:???
失礼しました。少し頭が冷えました。言語はPerlです。
こんなことも言い忘れるとはよほど慌てていたようです。

>>409
パスは絶対指定しています。なので、この形式でいいかと。

>>410
ああ、これはサンプルのパスです。正しいのをさらすと、ユーザー名とかがわかってしまうので。

えーと。なんでだめなんだろう。
0412nobodyさん03/08/31 02:30ID:???
>>411
Content-Length を吐くといいかも知れない。
自信無し。
0413nobodyさん03/08/31 02:36ID:???
意外とそういう「見せたくなくて伏せてる部分」にバグが潜んでいるかもしれない。
0414nobodyさん03/08/31 03:05ID:???
例えば、俺の陰毛にはバグが含まれている。
0415nobodyさん03/08/31 03:07ID:???
はっ。どうせリードパーミッションが無いんだろ。
openのエラー処理してねーし。
041640703/08/31 21:59ID:???
>>411
ビンゴでした。吐いたらうまく表示してくれました。
ありがとうございました。

>>413
今後は注意します。ありがとうございました。

>>415
ご助言ありがとうございます。エラートラップもつけました。

>>414
毛ジラミでしたら、早急に医者に行った方が・・・
0417nobodyさん03/09/01 10:36ID:???
ちなみにオレは試して駄目だったから間にページ挟んでMETAタグで飛ばした
>cookie
0418nobodyさん03/09/02 00:31ID:tJK7g1eG
Aサーバにあるcgiでcsv形式のデータを作成し、
Bサーバにそれをcsvのデータとして置きたいと思います。

これを実現するにはどうすればいいのでしょうか?
というか、ふつうどうするもんなんでしょうか?

●Aサーバにあるcgiから、(ソケット通信で)FTPかSSHでBにログインして、csvファイルをはき出す。
●Bサーバにもcgiを設け、そこで、AサーバからBサーバを(ソケット通信で)httpで呼び出して、
 Bサーバのcgiがcsvをはき出す

くらいしか思いつかないのですが・・・

あと、Aサーバがhttpsで、Bサーバがhttpの場合、このやりかただとデータは暗号化されますか?
0419nobodyさん03/09/02 00:38ID:???
いいんじゃない、合理的でかつセキュリティ等、目的に沿っていれば
csvがそのうちxmlになる可能性も考えるとhttp経由がいいかもね

暗号化はあくまでもサーバがhttpsの場合だけ
(クライアントもhttps知っている必要はあるが)

だからBがAを呼び出す状況で無いと暗号化はされません
0420nobodyさん03/09/02 01:01ID:hJ9owds6
保健室で休息中の少女に何が起こったか・・・
当然のようにHな事態に発展していくのですがいやーリアルリアル。
オマンコからダラダラ流れ出るマン汁、青筋の浮き出たチンチン。
現実ではあり得ないシチュエーションにリアルさがある秀作!
エロアニメがいっぱい。セーラー服美少女実写版も大好評。
今すぐ無料ムービーを!!
http://66.40.59.76/index.html
0421nobodyさん03/09/16 00:39ID:???
>263
処理中に適当にタイムスタンプでも使ってファイル作って
ソレが存在してる間は処理中と判定させるとか。

で自信でも別スクリプトでも良いから適当にそのファイル名を送って
ソレを一定時間毎に読んで、消えたら完了のページ開くみたいな。

hoge.cgi
 処理開始→判定用一時ファイル作成→Locationで飛ばす→処理終了→ファイル消す→exit()

huga.cgi?filename
 クエリ読む→ファイルがあるかどうか調べる→あったらLocation略→なかったら終了した事を知らせてexit()
 hoge.cgiがタイムアウト等で一時ファイルを消せなかった時の為に有り得ない程時間掛かってたらさくっと消す

素人考えだけど駄目かなー。
0422nobodyさん03/09/16 16:37ID:???
あるcgiを呼び出したとき、SSLプロトコルできてるか、そうでないかを判別するのに、
一番汎用的な方法ってなんでしょう?
(ちなみに言語はPerlですが、それは本質的なことではないですよね?)

SSL_PROTOCOL環境変数が空か否かで判断するのかな、と思ったのですが、
どうするのがベストでしょうか?
0423nobodyさん03/09/16 20:34ID:???
>>422
$ENV{'HTTPS'} eq 'on'
042442203/09/16 23:47ID:???
>>423
あ、それ初めて見た(つか、見落としてた)さんくすです
0425nobodyさん03/09/17 20:33ID:???
mod_perlを使ったサーバで、
同じ動作をするcgiが、全く同じ条件でpostメソッドでcgiにアクセスしても、
Internal Server Errorがでるときと正常動作するときがあります。

Internal Server Errorがでても、リロードすると、正常動作してしまうので、
不可思議なのですが・・・。

これは、どんな原因が考えられるのでしょうか?
0426nobodyさん03/09/18 04:23ID:???
半角カナでフォームに入力されたものを、読み込んでEUCにして
(ちなみにスクリプト自体の文字コードはEUC)

それを、&jcode::convert(\$in{$key}, "jis");
みたくして、JISに変換して(正確にいうと、変換しようとして)、
それをメール本文(もちろんJIS)中に変数として入れたら、
文字化けする可能性ありますか?

もしあるとしたら、
&jcode::euc2jis(\$in{$key});
と明示的に文字コード変換したら、
文字化けがなおる可能性はありますか?

実は文字化けではまってるものの、
文字化けが再現できなくなってしまっていて・・・。
0427nobodyさん03/09/18 10:12ID:???
>>425
そのCGIのどこかがマズイのでは?

>>426
メールで半角カナは使えません
042842503/09/20 03:11ID:???
>>427

でも、リロードしてら正常動作するもんで、手がかりがつかめません。

同じことをしてるのに、違う結果がでるなんで・・・と。わけわからん状態です。
どっから疑っていけばいいんでしょうか?
0429nobodyさん03/09/20 03:37ID:???
>>428
タイムアウトや負荷ぎりぎりで動いてるとか
どっちにしてもソース見ないとわからんな
043042503/09/21 16:58ID:???
>>429
>タイムアウト
いや、タイムアウトの可能性はないかと。
すぐにInternal Server Errorになったので。。。

>負荷ぎりぎりで動いてるとか
でも、これが可能性高そうです。ちょっと調べてみます。
0431nobodyさん03/09/21 17:01ID:???
>>430
ソースを公開するなり、そちらが情報を提供する気がないのならこれ以上質問するなよ。
こういう掲示板はGive&Takeによって成り立っているって理解している?

043243003/09/21 21:55ID:???
>>431
>ソースの公開は、仕事の都合上、できないので、すみません。
あと、いちお、名無しでですが、Giveはこのスレでも他のスレや板でも、してます。いちお。
0433nobodyさん03/09/21 23:31ID:???
>>432
その現象が起きる20行程度のソースを晒せば?
それでも仕事の都合上無理ってんなら>>431の言う通り。会社の人に聞けば?
y=x+1が与えられてyの値はいくつでしょう?と聞かれても誰もわからんのでは?
0434nobodyさん03/09/22 19:59ID:???
>>430
どうでもいいよ。何するにしてもPerlのエラーログを調べてから何か言えよ。
0435nobodyさん03/10/17 10:28ID:M5vTMTcp
PerlでCGIを何本か書いているのですが、ある特定のプログラムで
ページが正常に表示されず、ファイルのDLを始めようとするようです。
同じサーバーの他のプログラムは正常に表示するようで、吐き出す
ヘッダも同じにしてるはずなんですが。
本来相手の環境を調べるべきなのですが、素人なので聞かれてる内容も
理解できないらしく、上手く情報が伝わって来ません。

なにか考えられる原因、思い当たる方いませんか?
0436nobodyさん03/10/17 11:08ID:???
>>435
それだけの情報で何かわかる人がいるのか?
0437nobodyさん03/10/17 11:26ID:5bzSqekM
サーバのスクリプティングフィルターが利いてないからじゃないですか?
後は、Webサービスのマッピングをチェックしてみるってのはどうでしょう?
さすがにそれぐらいしか答えようがないですね。
0438nobodyさん03/10/17 12:05ID:???
>>436
>>437
まあ、そうですよね。
ただ同じサーバーの他のスクリプトでは問題ないようなのです。
もちろん当方からのアクセスではそのスクリプトも含めて全て正常に表示されます。
なんとも再現しないのでわからないのですが、
状況からすると、ある特定の環境で問題を起こすCGIの記述の可能性、
と予想したのですが。
0439nobodyさん03/10/17 12:08ID:???
>>438
再現しないならまず再現する様にしてくれ
質問内容に書いて無いからわからんがgetで渡してたりするか?
0440nobodyさん03/10/17 13:00ID:???
>>439
とりあえず最初の閲覧時はgetです。
formからパラメータつけて再帰的に処理する時はPOSTですが。
0441nobodyさん03/10/17 15:28ID:???
wget等で、受信したヘッダごとみてみるのがいいかも
あと、アドレス欄の最後のパラメタを拡張子と誤解して
誤動作するブラウザがある
0442nobodyさん03/10/17 16:40ID:???
CGIへのアクセスはクエリを含まない事で分岐して、
http://www.hoge.net/huga.cgi
のようにCGIを直接呼ぶ事で単純に表示するルーチンに飛ばしてます。

で、当人が言うにはブラウザから、
「このファイルは開けません。ファイル huga.cgi」とか、
「検索の結果、以下のソフトウェアが見つかりました。
このソフトウェアを利用するとファイルを開くこと
ができます。
ファイルの種類: Common Gateway Interface」
とか言われるらしいのです。

ただ、それもこの特定のCGIだけなんですよね。

wget試してみます。
0443nobodyさん03/10/17 16:50ID:???
おお?wgetしてみたら当該CGIは、
Length: unspecified [text/plain]
なんてなってます。
他のCGIは、
Length: unspecified [text/html]
になってるんですが。。。
ヘッダは以下のようにtext/htmlで送出してるはずなんですが。
--
Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
--
0444nobodyさん03/10/17 17:00ID:???
おまいら誰よ?元質問のやつはレス番で名乗れや
044543503/10/17 17:06ID:???
すいませんです。
で、Content-type: text/html の送出をスクリプトのなるべく前の
方に持ってきたら
Length: unspecified [text/html]
と表示されました。
これで問題ないかアクセスしてみてもらいます。

しかし、これはどういうわけでしょうか?
後学のためどなたかお分かりの方お教え下さい。
0446nobodyさん03/10/17 17:27ID:???
>>445
text/plainがスクリプト中のどこにも書かれてないか検索した?
0447nobodyさん03/10/17 17:32ID:???
1行づつずらしていけば見つかるよ... きっと... _ト ̄|○
044843503/10/17 17:35ID:???
>>446
検索していませんでした。
検索しましたが、どこにもありませんでした。

実はこのスクリプト、個別の設定情報を書いた複数の違うhoge.cgiから、
共通ライブラリであるcommon.plをrequireする仕様で、
それぞれのhoge.cgiにはユニークな固有の設定情報のみ記述し、
スクリプトのほとんどはcommon.plにあります。
当初送出するヘッダはcommon.plに書いてあったのですが、
Content-type: text/html のみhoge.cgiに持ってきたら
wgetでhtmlが確認できました。

text/plainはhoge.cgiにもcommon.plにもどこにもありませんでした。
0449nobodyさん03/10/17 21:16ID:???
微妙にスレ違いかもしんないけど、Sendmailで送るメールって第3者に見られる可能性ありありだよな。
大事な内容をCGIで送信するのにベストな方法ってありまつか?
0450nobodyさん03/10/17 21:34ID:???
一応CGIの質問なのでここでしていいのかどうか…
何が何だかわからないのでご存知の方いたらご教授願います。

「○○サーチ」というある検索エンジンに自分のサイトを登録しようとしたら、
何度やっても「コマンドが不正です」と出る。
新規登録は動いているからサーチ自体には問題ないようだ。

てことは自分のパソコンに何か原因があるのでしょうか?


■ このスレッドは過去ログ倉庫に格納されています