CGI: Common Gateway Interface part 13
■ このスレッドは過去ログ倉庫に格納されています
CGIの運用に関する質問スレッドです。
※ CGIはウェブサーバ上でユーザプログラムを動作させるための仕組みであり、
Perl等特定の言語に依存するものではありません。
Perlのコーディングに関する質問は、専用スレでお願いします:
Perlコーディング初心者質問スレ Part 43
http://pc8.2ch.net/test/read.cgi/php/1123777607/
CGIとPerlの区別がわからない、という人はとりあえずこちらへ:
△▲ WebProg 初心者の質問 Part12 ▼▽
http://pc8.2ch.net/test/read.cgi/php/1125215604/
過去ログ・関連スレッドは>>2-10あたりに さて、そろそろ環境変数の環境を接続してきたクライアントの環境と
勘違いしてる奴の排除でも始めないか? 「CGIの運用に関する質問スレッド」ってスレタイでいいのでは? 質問です。
Perl内で、他のURLにあるデータを参照することはできますか?
具体的には、
open(WORK,"http://www.hogehoge.net/foo/baa.txt");
みたいな事です。 やはり過疎ったか。
スレタイ改悪した>>1氏ね
ってことで不定期age てかもうCGI≒Perlって事でよいと思うのだが。
Perl以外でCGI書いてる奴って自力でどうにかならね?
少なくともこの板ではそれで良いだろうし、
言語に寄らない実装の話題でかつhtaccesとかApacheとか追い出してったら何も残らんだろ。
てか逆に聞きたい。このスレに適切な話題とは? リクエストの時に、データが長すぎだったら Status: 413 を返してもいいのか?とか。
PATH_INFOが使えないサーバが存在してるのか?とか。
今時AmigaDOSなんて誰もつかってねーよとか。 オライリーのネズミ本「CGIプログラミング第2版」の25ページに
URLエンコードのPerlサブルーチンがのっているのですが、そこで
$text =~ s/([^a-z0-9_.!~*'\(\) - -])/sprintf "%%%02X", ord($1)/egi;
というコードがあります。だいたいの意味はいいのですが、サーチパターンの
文字クラスの最後の部分が' - -]'となっていますよね。最後の'-'はハイフン
自体を現すとして、その前のスペース・ハイフン・スペースって何を意味して
るのかわかりますか?これだとスペースからスペースの範囲指定みたいに
思えるのですが・・・。 と思ったら、ここはCGIプログラミングのスレではないようですね。
失礼しました・・・。 単なる誤植だと思われ
CGIプログラミング第2版は読んだことないけど
URLエンコードならその正規表現の直後にtrでスペースはを+にしてるんでしょ?
こんな感じで
$text =~ s/([^a-z0-9_.!~*'\(\) -])/sprintf "%%%02X", ord($1)/egi;
$text =~ tr/ /+/;
>>29
すんません、スレ違いっぽいのに回答いただき。
ビンゴです。そのような処理がなされています。
ということは1つのスペースと1つのハイフンが
余分についてるということですかね。
ありがとうございました。 http://www.kent-web.com/lesson.html
テラワロスwwwww
どんなやつがいくのか見てみたいがネタにするには高すぎる よく、「当サイトを訪問されているは、現在28名です」というサイトを見るのですが、
これはどのようにして人数を数えているのでしょうか? >>33
適当に計算してるだけ
過去1分間のアクセス数とか >>31
参加して、sendmailでスパム送る方法を教えてもらってきてくれ。 perl oopで作成するCGIスクリプトの特長ってなんですか? perl oop でも、巧く構築すればかなりスリムで無駄のないものになるからいいよね >>3が関連スレの一覧じゃなくて誘導先になってるなw すんません。質問なんですが。
perlでau機に304 Not Modifiedを出力したいんですが、ブラウザがどうにも500エラーとかのたまいます。
出力している内容は、
Content-Type: text/html
Status: 304 Not Modified
(空行)
です。んで、FireFoxだと理解してキャッシュを表示してくれるのに、au機は500エラーというのです…もうわけわかめ。
間違っているんでしょうか?どういうヘッダーを吐き出せばいいんでしょうか… >>50
Openwaveの場合、同じURLをアクセスするとデフォルトでローカルキャッシュを読みにいくため
304 Not Modifiedの制御は意味を持たないのではないかと思う。
というか携帯のテストをFirefoxでやるというのが意味不明。普通はシミュレーターか実機を使ってやるだろ。
>>51
ありがとうございます。解決しました。
最後に空行を出すには\n\nを出さないといけなかったらすぃ…\n\nだと2行空行が入ると思ってたよorz
キャッシュに関しては、Cache-Control: no-cacheを吐いてるんで、OPENWAVEでもきっちり見に来てくれます。
FFでStatus: 304が正常に働いたのは、FFが良心的に解釈してくれたからの模様… perlで、サイト内検索スクリプトでand/or検索のプログラムを書きたいんですが
解説などのオススメのサイトとか知っている方いませんか? >>54
>>4のリンク先でも見て勉強するがよろし CGIの運用に関する質問スレッドです。
スレタイが紛らわしくてすんまそん。
>1を怨んでくり このスレの>>1は
自分が見やすいと思って書き直したコードが、
誰も読めないスパゲティにしてしまうタイプと見た。 何事にも来歴や理由がある
視力だけではコードは読めないよ part10から12の流れを知ってる奴はどれぐらい居るのやら。 Perl (mod_perl)
Perl (mod_perlなし)
PHP (mod_php)
C++
どれが一番CGIとして高速に動作しますか? mod_perlやmod_phpはもはやCGIではないのだが。
C++ (Apache モジュール)>C++(FastCGI)>>Perl (mod_perl)>PHP (mod_php)>>>>C++(CGI)>>Perl (CGI) C++ (Apache モジュール)とはmod_cgidsoモジュールですか?
workerでも動作するようで、使用してみたいですね >>63
Perl (mod_perl)>PHP (mod_php)
↑根拠ナシ夫ちゃん >>67
そんな恥ずかしいことを書けるあなたに感動した! スレタイ激しく元に戻したい。
改悪した香具師出て来い! CGIってウェブアプリケーションサーバって言って良い? FastCGI,SpeedyCGI,mod_perlの使用を検討しています。
Apacheに組み込もうと思っているのですが、どれが一番高速に動作するのでしょうか?(@Perl) ∧_∧
( ・∀・)
(( ( ヽ ノ )
ノ\(○´ ゴッ
(_ノ(_\ ∧
= ()二) < >_∧∩
V`Д´)/ ←>>78
/ まずルパンのタイトルフラッシュのような、
簡単な「文字入力→フォーム送信→受け取って出力」の流れを作れるようになることを目標に、
『基礎から学ぶCGIプログラミング』って本を買った
サッパリわからん
っていうか、書いてない
「perlでのプログラミングを経験したことがある人を対象にしています」ってそこが基礎じゃねぇのかよ
まず動作確認が動作しないんだよ
基礎以前の基礎はどこで実につけりゃいいんだよ
ローカルでCGI動かす方法書いてくれよ
Hello worldから説明してくれよ
オウム社ってなんだよくそ 挫折するぞ 1ページくらい見てから買おうよ(´・ω・`)
いい本探してるなら>>3の書籍スレで聞いてみるとか。 いやあ
40ページに書いてあるんだ
基礎以前の基礎って、他の「初心者のための」的な本には書いてあるんかなぁ
「この本よかったよー」って言ってる人が、元々どの程度の知識の持ち主かわからないし
まあこれは本屋行けって話ですよね
平然とCGIの話をするキミタチはすごい。うらやましい
一体何からどうやって始めたんだろう
まあすぐ追いつきますがね 今日覚えたこと・・・コマンドプロンプトは「cmd」で出す (´υ`)
この壁は高かった。HelloWorldできたわー
ただ どうやってブラウザで見るんだ?これ・・・
さあ、あんまりこんな低レベルな話されても迷惑だよな
独り言もこのあたりにしとくわ 超簡単な掲示板できたわ〜
日々成長しとるわ〜
あんな本いらんかった ── =≡∧_∧ =!!
── =≡( ・∀・) ≡ ガッ ∧_∧
─ =≡○_ ⊂)_=_ \ 从/-=≡ r( )
── =≡ > __ ノ ))< > -= 〉# つ
─ =≡ ( / ≡ /VV\-=≡⊂ 、>>87
── .=≡( ノ =≡ -= し'
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|
|
| 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
| 東 京 湾 他のスレから来ました。
Perlで他のサイトを取得して表示したいと思っています。
(著作権侵害とかそういうことをしたいのではないです)
お時間のある方にお願いしますが、次のコードで@niftyのトップページを取得してみたら
どうなるか教えていただけませんでしょうか?
print "Content-Type: text/html\n";
print "\n";
use LWP::Simple;
print get( 'http://www.nifty.com/' );
私のところだと、ブラウザ上での表示がぐちゃぐちゃになるんですが…。 誘導していただいたのでこちらにて質問させてください。
HTTPレスポンスヘッダに206を指定しファイルをCGI経由でDL
させようとすると、500エラーが出てしまいます。
具体的には下記のようにしております。
print "HTTP/1.1 206 Partial Content\n";
print "Last-Modified: Wed, 24 May 2006 18:41:30 GMT\n";
print "Pragma: no-cache\n";
print "Accept-Ranges: bytes\n";
my $range = $ENV{'HTTP_RANGE'};
if($range =~ m/^bytes=(\d+)\-(\d+)$/){
my $offset = $1;
my $end = $2;
my $len = $end - $offset + 1;
print "Content-Range: bytes $offset-$end/$len\n";
$filesize = $len;
}
print "Content-Length: " . $filesize . "\n";
print "Content-Type: $content_type\n\n";
print while(<IMG>);
close(IMG);
エラー内容は「Bad header=HTTP/1.1 206 Partial Content」ですので
これを外せばエラーは出ないのですが、206を返す手段があれば
ご教示いただきたく思っております。 宜しくお願いいたします。 Status: 206
は?
詳しくはrfc3875を読むべし。 >>97
NPH (Non Parsed Header) 最近、ウェブ系の仕事を始めたものなのですが
CGIの負荷軽減テクニックみたいなのをまとめたページとか書籍などで
これぐらいは読んでおけ、とかいうのがあったら教えてください ■ このスレッドは過去ログ倉庫に格納されています