CGI: Common Gateway Interface part 11
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/14 22:26ID:F9qlqHNx※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 あたりに
0359nobodyさん
03/08/13 18:47ID:???&って書けばええよ。
0360nobodyさん
03/08/13 18:55ID:???0362nobodyさん
03/08/13 20:09ID:kY5HHstyApacheを1.3.27から2.0.47にアップグレードした所
あるPerl/CGIが極端に重くなってしまいました。
5分経っても表示されない、という感じなのです。
いろいろ見たところ、
#!/usr/local/bin/perl -w
と-wフラグをつけたモノだけが遅いので試しに外してみたら
サクっと表示しました。
Apache/1.3.27の頃はつけようがつけまいが問題なかったものです。
原因によってはスレ違いかもしれませんが、
原因が皆目見当が付きません。
どなたか心当たりのある方いらっしゃいませんか?
0364nobodyさん
03/08/13 21:46ID:???-w ってけっこう厳しく警告をだすためのフラグだっけ?
実行しているソースから警告がでまくっていて処理が遅いと
そんな感じだと思われ
0365362
03/08/13 21:54ID:???ホンチャンサーバでは問題なく動いているのです。Apache/1.3.26 (Unix)
テストサーバもApache/1.3.27 (RedHat)の時は問題なく動いてました。
Apache/2.0.47にした途端の症状なのです。
-w付きでチェックしてもシンタックスおっけなんです。
-w外すと問題なく動きます。
0366nobodyさん
03/08/13 23:16ID:???さあ?Perl が出力するログをトラップしてerror_logに出力するのに、
Apache2.0では時間がかかるようになったとしか漏れの頭では思いつかないけど。
普通にコマンドラインから # perl hoge.cgi としても実行結果が遅いのか?
それか -wって警告を多めに出すだけだからはずせば?
0367364
03/08/13 23:18ID:???すんません、この話にレスするのもうやめます
0368324
03/08/14 01:32ID:???>locationと同様、window.open() の第1引数(URL値)に含まれる & が
>& に変換されないのはJavaScriptの仕様。
>Netscape謹製のブラウザで正しく動作しないのは当たり前。
なるほど、これですごい納得しますた。ありがとうございました。
0371nobodyさん
03/08/14 10:43ID:???<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
にある仕様書を見る限り、なにも文字長については書いてないようですが。
0373371
03/08/14 13:15ID:???ただしくは、
<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:???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:???たしか1024文字まで。
ただし、「$cookiename=$cookievalue;」 ←これを全部含めて1024文字までだと思った。
つまり、= とか ; とか クッキーの名前 とかもその制限に入る。
たしか。
0376nobodyさん
03/08/14 22:16ID:???ttp://www.futomi.com/lecture/cookie/specification.htmlから引用
>一つのクッキーにつき4KBまで。name と OPAQUE_STRING は、
>4KBまでの形式に結合されます。.
引用終わり
全部含めて4096バイトが容量制限。
キャラクタセットによって文字数は左右されるから、自分で調べてね。
0378nobodyさん
03/08/14 23:53ID:???www.foo.co.jp で発行したクッキーを、
www.bar.co.jp で取得することはできますか?
>>292 で言ってるみたいに、
www.foo.co.jp でクッキーを発行するとき、
「domain=bar.co.jp」とすれば、
www.bar.co.jp で取得できるのかなーと。
なお、今はまだ環境がととのってないので、テストで試してみることができず・・・
0380378
03/08/15 01:46ID:???あ、そうか、仕様として、そもそも発行元のドメインと取得先のドメインが違うとダメってことですか?
つまり、仕様書のdomain の項目で書いてある「後方一致」ってのは、
あくまで同じドメインでの話しってことですか?
(例だした方がわかりやすいかな・・・)
acme.comにおいて、domain=acme.comとしてクッキーを発行すると、
anvil.acme.com ではそのクッキーを取得できるけど、
hoge-acme.comでは、そのクッキーは取得できない。
・・・という理解で間違いないですか?
0383山崎 渉
03/08/15 22:33ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0384nobodyさん
03/08/16 12:45ID:KHB072f80385nobodyさん
03/08/16 15:53ID:jb3r1JoJ一般的な共有サーバで動かすことを前提にすると。
0386nobodyさん
03/08/16 22:30ID:grNQSJhAhttp://www.sexpixbox.com/pleasant/teen/index.html
0387nobodyさん
03/08/17 21:30ID:ycQ+dswyフレームを使っている性で全部リファラがindexになってしまいます。
使っている鯖はSSIは使えませんし、.htaccessも使えません。
どうすればリファラが取れるんですか?教えてください。御願いします。
すれ違いだったらすいません。
0388nobodyさん
03/08/17 23:46ID:78eH/B6l0389nobodyさん
03/08/17 23:47ID:78eH/B6l気にしなくて良し。
0390nobodyさん
03/08/17 23:57ID:???http://pc2.2ch.net/test/read.cgi/php/1060808783/171
マルポ
0391nobodyさん
03/08/20 19:32ID:M8LljIzL<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:???0393nobodyさん
03/08/20 20:43ID:???上手くやればできる。
今も5年前も10年前も。
0394nobodyさん
03/08/20 20:49ID:???えぇ!うまくやればってどういうことですか?
昔も前者の書き方ができたのかどうか聞きたいのですが。
ロジックの問題ではなくHTTPプロトコルレベル、または
WebブラウザとWebサーバーの対応状況の話だと思うのですが・・・
0395nobodyさん
03/08/20 20:53ID:???RFC1866あたりだよ
0397nobodyさん
03/08/20 23:22ID:???つか、今流通してるブラウザで、
<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では、
●クッキーを発行したあと、
●Location:ヘッダで www.hoge.com/bar.cgi にとばす
の処理をしてます。
で、質問です。
www.hoge.com/bar.cgi の中の処理で、ついさっき発行されたクッキーを読もうとしたとき、
クッキーは読み込めるのでしょうか?
環境依存なのでしょうか?
0401nobodyさん
03/08/28 17:18ID:???0402400
03/08/28 18:26ID:ER3uJlrJあ、ごめんなさい。
「クッキーに対応して、有効にしているブラウザ」の中でを条件に加えてください。
0404nobodyさん
03/08/28 22:09ID:???試したの?
0405nobodyさん
03/08/29 01:22ID:???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:???0407nobodyさん
03/08/31 00:28ID:???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'; なら表示されたけど
0410nobodyさん
03/08/31 01:58ID:???こんな場所に画像ファイルを置いてるのか?
ビックリだ。
0411407
03/08/31 02:02ID:???こんなことも言い忘れるとはよほど慌てていたようです。
>>409
パスは絶対指定しています。なので、この形式でいいかと。
>>410
ああ、これはサンプルのパスです。正しいのをさらすと、ユーザー名とかがわかってしまうので。
えーと。なんでだめなんだろう。
0413nobodyさん
03/08/31 02:36ID:???0414nobodyさん
03/08/31 03:05ID:???0415nobodyさん
03/08/31 03:07ID:???openのエラー処理してねーし。
0416407
03/08/31 21:59ID:???ビンゴでした。吐いたらうまく表示してくれました。
ありがとうございました。
>>413
今後は注意します。ありがとうございました。
>>415
ご助言ありがとうございます。エラートラップもつけました。
>>414
毛ジラミでしたら、早急に医者に行った方が・・・
0417nobodyさん
03/09/01 10:36ID:???>cookie
0418nobodyさん
03/09/02 00:31ID:tJK7g1eGBサーバにそれを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:???処理中に適当にタイムスタンプでも使ってファイル作って
ソレが存在してる間は処理中と判定させるとか。
で自信でも別スクリプトでも良いから適当にそのファイル名を送って
ソレを一定時間毎に読んで、消えたら完了のページ開くみたいな。
hoge.cgi
処理開始→判定用一時ファイル作成→Locationで飛ばす→処理終了→ファイル消す→exit()
huga.cgi?filename
クエリ読む→ファイルがあるかどうか調べる→あったらLocation略→なかったら終了した事を知らせてexit()
hoge.cgiがタイムアウト等で一時ファイルを消せなかった時の為に有り得ない程時間掛かってたらさくっと消す
素人考えだけど駄目かなー。
0422nobodyさん
03/09/16 16:37ID:???一番汎用的な方法ってなんでしょう?
(ちなみに言語はPerlですが、それは本質的なことではないですよね?)
SSL_PROTOCOL環境変数が空か否かで判断するのかな、と思ったのですが、
どうするのがベストでしょうか?
0425nobodyさん
03/09/17 20:33ID:???同じ動作をするcgiが、全く同じ条件でpostメソッドでcgiにアクセスしても、
Internal Server Errorがでるときと正常動作するときがあります。
Internal Server Errorがでても、リロードすると、正常動作してしまうので、
不可思議なのですが・・・。
これは、どんな原因が考えられるのでしょうか?
0426nobodyさん
03/09/18 04:23ID:???(ちなみにスクリプト自体の文字コードはEUC)
それを、&jcode::convert(\$in{$key}, "jis");
みたくして、JISに変換して(正確にいうと、変換しようとして)、
それをメール本文(もちろんJIS)中に変数として入れたら、
文字化けする可能性ありますか?
もしあるとしたら、
&jcode::euc2jis(\$in{$key});
と明示的に文字コード変換したら、
文字化けがなおる可能性はありますか?
実は文字化けではまってるものの、
文字化けが再現できなくなってしまっていて・・・。
0428425
03/09/20 03:11ID:???でも、リロードしてら正常動作するもんで、手がかりがつかめません。
同じことをしてるのに、違う結果がでるなんで・・・と。わけわからん状態です。
どっから疑っていけばいいんでしょうか?
0430425
03/09/21 16:58ID:???>タイムアウト
いや、タイムアウトの可能性はないかと。
すぐにInternal Server Errorになったので。。。
>負荷ぎりぎりで動いてるとか
でも、これが可能性高そうです。ちょっと調べてみます。
0431nobodyさん
03/09/21 17:01ID:???ソースを公開するなり、そちらが情報を提供する気がないのならこれ以上質問するなよ。
こういう掲示板はGive&Takeによって成り立っているって理解している?
0432430
03/09/21 21:55ID:???>ソースの公開は、仕事の都合上、できないので、すみません。
あと、いちお、名無しでですが、Giveはこのスレでも他のスレや板でも、してます。いちお。
0433nobodyさん
03/09/21 23:31ID:???その現象が起きる20行程度のソースを晒せば?
それでも仕事の都合上無理ってんなら>>431の言う通り。会社の人に聞けば?
y=x+1が与えられてyの値はいくつでしょう?と聞かれても誰もわからんのでは?
0435nobodyさん
03/10/17 10:28ID:M5vTMTcpページが正常に表示されず、ファイルのDLを始めようとするようです。
同じサーバーの他のプログラムは正常に表示するようで、吐き出す
ヘッダも同じにしてるはずなんですが。
本来相手の環境を調べるべきなのですが、素人なので聞かれてる内容も
理解できないらしく、上手く情報が伝わって来ません。
なにか考えられる原因、思い当たる方いませんか?
0437nobodyさん
03/10/17 11:26ID:5bzSqekM後は、Webサービスのマッピングをチェックしてみるってのはどうでしょう?
さすがにそれぐらいしか答えようがないですね。
0438nobodyさん
03/10/17 12:05ID:???>>437
まあ、そうですよね。
ただ同じサーバーの他のスクリプトでは問題ないようなのです。
もちろん当方からのアクセスではそのスクリプトも含めて全て正常に表示されます。
なんとも再現しないのでわからないのですが、
状況からすると、ある特定の環境で問題を起こすCGIの記述の可能性、
と予想したのですが。
0441nobodyさん
03/10/17 15:28ID:???あと、アドレス欄の最後のパラメタを拡張子と誤解して
誤動作するブラウザがある
0442nobodyさん
03/10/17 16:40ID:???http://www.hoge.net/huga.cgi
のようにCGIを直接呼ぶ事で単純に表示するルーチンに飛ばしてます。
で、当人が言うにはブラウザから、
「このファイルは開けません。ファイル huga.cgi」とか、
「検索の結果、以下のソフトウェアが見つかりました。
このソフトウェアを利用するとファイルを開くこと
ができます。
ファイルの種類: Common Gateway Interface」
とか言われるらしいのです。
ただ、それもこの特定のCGIだけなんですよね。
wget試してみます。
0443nobodyさん
03/10/17 16:50ID:???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:???0445435
03/10/17 17:06ID:???で、Content-type: text/html の送出をスクリプトのなるべく前の
方に持ってきたら
Length: unspecified [text/html]
と表示されました。
これで問題ないかアクセスしてみてもらいます。
しかし、これはどういうわけでしょうか?
後学のためどなたかお分かりの方お教え下さい。
0447nobodyさん
03/10/17 17:32ID:???0448435
03/10/17 17:35ID:???検索していませんでした。
検索しましたが、どこにもありませんでした。
実はこのスクリプト、個別の設定情報を書いた複数の違う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:???大事な内容をCGIで送信するのにベストな方法ってありまつか?
0450nobodyさん
03/10/17 21:34ID:???何が何だかわからないのでご存知の方いたらご教授願います。
「○○サーチ」というある検索エンジンに自分のサイトを登録しようとしたら、
何度やっても「コマンドが不正です」と出る。
新規登録は動いているからサーチ自体には問題ないようだ。
てことは自分のパソコンに何か原因があるのでしょうか?
0453450
03/10/17 21:59ID:???まだサイトは登録してないから拒否とかはないはず、
登録画面に入るボタンを押すと「コマンド〜」が出たんですよ。
なんなんだほんと。
0455nobodyさん
03/10/18 00:04ID:???だから検索エンジンってのがあるように、
登録しようとした君のサイトを自動的に見に行って
登録するにふさわしくないと拒否られたんだって
0456nobodyさん
03/10/18 04:12ID:???使うだけの人間はここで質問するな。
0457nobodyさん
03/10/18 04:15ID:???どうやらその検索サイトはHTMLの文法をチェックしているみたいですね。
HTML-lintで90点以上取らないとダメみたいです。
0458450
03/10/18 21:13ID:???レスサンキュ。登録あきらめることにしたよ…_| ̄|○
さっきいったらサーチがダウソしていてめんどくなりますた
スレ違いすまんな。さらば!
0459nobodyさん
03/10/18 23:12ID:???ベストっていったら、
(SSLは必ず使うとして・・・)
●メールは、もし流すなら、
ウェブサーバ、送信メールサーバ、それを受信するメールサーバとも、
セキュリティ的に安全なネットワーク内部で完結させること。
とかいいつつ、自分もよく分かってない。
・・・詳しい人フォローきぼんぬ、、、
■ このスレッドは過去ログ倉庫に格納されています