CGI: Common Gateway Interface part 13
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:59:21ID:2LNvgPc/※ 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あたりに
0103nobodyさん
2006/07/13(木) 05:52:24ID:W+LiZmFW0104nobodyさん
2006/07/27(木) 11:56:01ID:g7jO7iq/0105nobodyさん
2006/07/27(木) 16:12:33ID:1uzwaimqちょっとこちらでお願いできませんでしょうか?
ダメでしたら誘導お願いします。
よければ回答お願いします。
perlの話です。
hoge.csvのファイルサイズが一定以下なら処理を中断してエラーメッセージを出したいのですが、
open FH,"hoge.csv";
print length <FH>;
これで一行目のはわかります。ループ処理すれば全行分もわかります。
でももっと一発でいける記述はないのでしょうか?
宜しくお願いします。
0109nobodyさん
2006/07/27(木) 17:35:44ID:???0110105
2006/07/27(木) 19:52:08ID:1uzwaimqstatなんていう関数があったんですね。
物凄いありがっとぐ。
0111nobodyさん
2006/08/03(木) 20:35:54ID:???0112nobodyさん
2006/08/11(金) 11:58:00ID:nbBuAcLlというURLで、
print "Content-Type text/xml;charset=UTF-8\n";
print "Content-Length: ", length($data) + $data =~ s/\n/\n/g ,"\n\n";
print $data;
と返すように出力させています。(言語はPerlです)
$dataは
"<data no='1' />"
のような簡単なXMLを記述しています。
これに、とある会社がプロキシサーバを通してアクセスすると、
502を返してエラーになるみたいなのです。
プロキシなしで直でアクセスすれば<data no='1' />と
見れるようです。
恐らく、ヘッダ情報が不正とかそんな理由で弾かれているのだと思うのですが、
なにが足りないのかわかりません。
Content-Typeをapplication/xmlにしても同様のエラーがでるようです。
その会社は、サイト製作したクライアントのお得意様で、
本来ならその会社の人と詳しく調べるべきなのでしょうが
自分とはほとんど面識の無いのです。
こちらとしてはできる限りのことをあらかじめしておくくらいしかなく
困った状態なのですが、そのプロキシサーバのログ等がわからない状態で
やれることはありませんでしょうか。
0113112
2006/08/11(金) 12:01:40ID:nbBuAcLl無理な可能性もあるわけで、無茶な注文なんですが、
クライアントに作り手が悪いと思われているので
できる限りのことはしたいのです。
どなた様かお力を・・・
オラに力を
0114nobodyさん
2006/08/13(日) 00:54:08ID:???は
print "Content-Type: text/xml;charset=UTF-8\n";
じゃなくて?
あと、ヘッダの改行は \n より \r\n の方が仕様に準拠しているそうですが...。
関係あるかな?
0115nobodyさん
2006/08/13(日) 01:17:38ID:???bimode STDOUT;して改行コードがいじられないようにするとか。
0116nobodyさん
2006/08/14(月) 19:59:29ID:???0117nobodyさん
2006/09/30(土) 17:19:05ID:wXHf+VTZ0118nobodyさん
2006/10/10(火) 09:02:20ID:p77Yt6GB0119nobodyさん
2006/11/01(水) 09:21:57ID:L/Bbrvk1とあるアップローダーを無料サーバーで運営しています。
認証しないとダウンできないようにCGIを介してダウンロードさせる
仕組みなのですが無料サーバーゆえに30秒以上たつとプロセスが自動で
終わってしまうのです。低速の方が10MBのデータをダウンするのに
10分かかるとした場合に
CGIが出力したデータはサーバー側のバッファに溜まり普通に終了すると思ったのですが
どうなのでしょうか?
CGIはだだ ファイルを少し読み込んで出力のくりかえしです。
0120nobodyさん
2006/11/01(水) 13:51:29ID:L/Bbrvk1http://x-beat.com/spec.shtm
でアップローダーやってるのですが
■負荷対応
・実行時間が30秒を越えるタスク(通常は1秒以内)、CPU使用率が15%を越えるタスク(通常は0.5%以内)は、強制終了されます。
自分は低速なのでupするのに 3分かかるのですがアップロードできます。
データを送信してる最中はcgiは実行されてないのでしょうか?
0121nobodyさん
2006/11/01(水) 14:17:40ID:???アップローダーでCPU使用率15%超えるようなものは捨てたほうがいいよ
アップに3分かかるならその間はCGI実行される前だ
CGI実行の始めと終わりで時間差出せば簡単に確認できるやろ
0122nobodyさん
2006/11/01(水) 14:22:55ID:L/Bbrvk1>アップローダーでCPU使用率15%超えるようなものは捨てたほうがいいよ
これは別の方法かもしくは低速は無視するということですか?
0123121
2006/11/01(水) 14:25:55ID:???0124121
2006/11/01(水) 14:31:30ID:???0125nobodyさん
2006/11/01(水) 14:36:50ID:???0126nobodyさん
2006/11/04(土) 22:42:49ID:???0127nobodyさん
2006/11/09(木) 00:44:58ID:???0128nobodyさん
2006/12/02(土) 10:39:48ID:HKfE7B2vHTMLのformタグでaction="○○○.cgi?mode=○○○"とすると、CGI側が上手く値を取得出来ません。
これは仕様ですか?
0129nobodyさん
2006/12/02(土) 15:38:24ID:???ブラウザのバグ
0130nobodyさん
2006/12/03(日) 10:33:19ID:???httpdやブラウザを疑うよりは128の頭を疑う方が適切。
自分の無知を棚に上げて「〜〜だけどバグか?」と言い出すタイプ。
0131nobodyさん
2006/12/03(日) 15:31:56ID:???0132nobodyさん
2006/12/03(日) 19:10:24ID:/6jBKu8b仲間内で使えるアップローダを作ろうと思っています。
大量のファイル(デジカメの画像)を一発アップロードすることはできませんか?
たとえば <INPUT TYPE="file" ・・・>
だと、1つずつファイルを選択しないといけませんのでちょっと手間がかかるので。
0133nobodyさん
2006/12/03(日) 19:13:58ID:???ファイルを選択してもらうしかないんじゃね?
0134nobodyさん
2006/12/03(日) 20:22:58ID:???FTPってのを使うといいよ
0135nobodyさん
2006/12/03(日) 20:25:45ID:/6jBKu8bPCに詳しくない人もいるのでftpはちょっときついかなとも思いますので、
しばらくは133さんに書いていただいた通り1ファイルずつということにしたいと思います。
0136nobodyさん
2006/12/03(日) 21:23:49ID:???0137nobodyさん
2006/12/03(日) 23:21:24ID:/6jBKu8bzipだとwinXP標準になりましたし、多少説明をいれれば誰でも使えるかもしれませんね、、
どちらにするかもう少し考えて見ます、ありがとうございます。
0139132
2006/12/04(月) 00:00:05ID:???JavaScriptは詳しくないので分からないのですが・・・
0140nobodyさん
2006/12/04(月) 00:28:28ID:???0141nobodyさん
2006/12/05(火) 21:42:18ID:jPnOowzYどうもコーディングモチベーションが沸かないのでひとつ感想でもくれ。
一応自作CGIだ。
0142nobodyさん
2006/12/07(木) 15:28:36ID:???どういうタイプのCGIか(BBSとかSNSとかその他もろもろ)説明してくんなきゃ、
アクセスすらしたくない。
0143nobodyさん
2006/12/07(木) 23:25:13ID:1rivuzCeそんじゃ。
0144nobodyさん
2006/12/12(火) 17:23:37ID:G/IH0bRfPHPではSmartyを使ってましたが、Perlでは好みのテンプレートエンジンがありませんので作ろうと思っています。
ここで質問ですが、変数はどのような記述にしたほうが良い(効率、見栄えなど)ですか?
例:Smarty / {$var ... }
例:HTML::Template / <TMPL_VAR NAME=" ... >
みなさんのご意見をお聞かせ下さい。
0145nobodyさん
2006/12/12(火) 17:49:18ID:???それすらも決められないの?
0146nobodyさん
2006/12/13(水) 10:12:16ID:???smartyとそれほど変わらず使えるよ。
ttの方が高機能だし。
0147nobodyさん
2006/12/23(土) 14:55:04ID:PYbXEm5Dソースがそのまま表示されて、手動で更新ボタンを押すとちゃんとWebページとして表示されるのですが・・・
何故でしょうか?
0148nobodyさん
2006/12/23(土) 14:58:42ID:PYbXEm5Dクッキー書き込み&削除の際に\nが出力されておらず、Content-Typeが出力されていなかったようです/(^o^)\オワタ
0149nobodyさん
2007/01/28(日) 03:10:26ID:???任意のURLをダウンロードするにはどうしたら良いのですか?
うーむ、説明しにくい…
WikipediaのURLを入力すると、余計なタグを消して携帯用に整形 みたいな事をしたいんですが
検索しようにも、検索キーワードすら分かりません
命令名だけでもお願いします
0150nobodyさん
2007/02/01(木) 00:26:48ID:Cze5DYpzindex.htmlがトップページで
index.htmlとpublic_htmlの位置関係がわかりません。
掲示板の場所はpublic_html/cgi-bin/○○.cgiなんですが
index.htmlはどの部分に持ってきたらいいのでしょうか?
おお、ありがとうございます
が、locationヘッダはリダイレクトに使うみたいな機能のようで…
そうじゃなくて、ユーザーが指定したURLを、サーバーにダウンロード
0153149
2007/02/01(木) 03:12:19ID:???おお、ありがとうございます
が、locationヘッダはリダイレクトに使うみたいな機能のようで…
そうじゃなくて、ユーザーが指定したURLを、サーバーにダウンロードするにはどうしたら?
って感じです
Wikipediaの例で言うと、
ユーザーがWikipediaのURLを指定
サーバーのcgiがWikipediaから指定されたURLをサーバーにダウンロード★
cgiがダウンロードしたソースを整形
整形したソースをユーザーに送る
の、★の部分の命令です
連投になっちまった
0156nobodyさん
2007/02/14(水) 18:01:11ID:ppCk4pJ4二項分布の計算で
$x = ((1/$a)**$z * (1-1/$a)**($zz-$z));
$a=6
$z=400
$zz=3000
とかにすると、オーバーフローで結果だません。
出来れば、
$zは2000ぐらい、$zzは10000ぐらいまでは対応できるようにしたいのですが
どう対策すればいいんでしょうか?
0157nobodyさん
2007/02/15(木) 01:49:27ID:???0158nobodyさん
2007/03/18(日) 16:42:56ID:WzkWKyHv0159nobodyさん
2007/04/22(日) 11:57:18ID:a6lsLKbEETagヘッダを出力しようかと思ってるんだけど
ETagの値はどう設定するのがいいかな?
Apacheに倣って「inode-size-mtime」の十六進にするのが無難なんだろうけど
DBだとinodeとか無いし
Content-MD5ヘッダと同じでいいじゃんとか思っているんだけど問題有るかな
0160nobodyさん
2007/04/22(日) 12:44:36ID:???0162nobodyさん
2007/05/05(土) 13:25:53ID:???Wikiと掲示板を繋げて共同ワークスペースみたくしたいのだが。
0163nobodyさん
2007/12/17(月) 16:39:39ID:???てか,むしろアプリに Web インターフェイスでの
設定機能を組み込みたいのでそういうライブラリでも
いいんだけど・・・
0164nobodyさん
2007/12/17(月) 22:00:42ID:???そのアプリを書いてる言語でHTTPサーバを書けばいいんじゃね?
Perlなら
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlipc.html#Internet_TCP_Clients_and_Servers
http://search.cpan.org/search?m=all&q=HTTP&s=1&n=100
0165nobodyさん
2008/05/12(月) 01:47:12ID:/jfGDqjv商用利用したいです。
罵られても構いません。
でも欲しいです。
ちなみに無料で無かったら、5000円ぐらいまでなら払えます。
0166nobodyさん
2008/05/13(火) 00:56:04ID:7uPi/nf3つgoogle先生
ttp://www.best--web.com/cgi/vicarious/tenpmail.html
\5,250- 著作権表示なし版\10,500-
ttp://www.futomi.com/library/mpmailp.html
\3,675-
0167質問
2008/06/24(火) 19:38:33ID:ACRIEaOHボタンを押すとA.cgiを動かすようにしています
<form action="A.cgi" target="別フレーム">
このA.cgiは、
(1)Bファイルを読み込んでprint文によりHTML形式で別フレームへ出力させるようにしています。
(2)また、同時にC.plを実行させています。
このC.plはC.pl内でsleep 30;としてデータを30秒ごとに取得させています。
この場合、A.cgiを実行させるとC.plが終了していないせいか、(1)の出力結果が別フレーム
に出てくれません。(当然c.plをわざと終了させると問題なく出力されます)
c.plをバックグランド ( system("C.pl &"); )でやってみたりしたのですが
やっぱりうまくいきません。
どうやればうまくいきますでしょうか?
0168nobodyさん
2008/06/25(水) 01:41:01ID:???スレ違い。
だけど、とりあえず、cronで定期的にたたくとか、javascript使うとか。
そういうんじゃない。
とりあえず、
くだすれPerl(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1204488452/
0169nobodyさん
2008/08/06(水) 15:27:22ID:???cgiの知識は0でも、perlが少し分かればcgiを勉強したいならコレで大丈夫ですかね?
他にいい本が見当たらなかったんですが、発行年月日が気になります…
0170nobodyさん
2008/08/19(火) 12:00:26ID:???本屋に行っても少し新しい発行日の参考書勝ったほうがよくね?
CGIの基礎はそれでわかるはずだが、7年前と今じゃネットの事情が
だいぶ違うから
フルパスの{%DIR}やディレクトリ名だけの{%WWW_DIR}が
ありますが、これをPythonとPerlで取得するには
どのように書けばいいですか?
PWDからフルパスを取得して不要なな部分をカットするしか方法無い?
0172171
2008/11/28(金) 09:30:14ID:???0173nobodyさん
2008/12/15(月) 12:58:36ID:???htmlに以下のようにラジオボックスとSubmitボタンを設置しています。
[・]Aさん(変数$A)
[・]Bさん(変数$B)
[Submit]
Aさんを選択してSubmitを押すと、http://tekito.com/A/index.html
Bさんを選択してSubmitを押すと、http://tekito.com/B/index.html
といった感じで、選択したラジオボックスでジャンプ先URLが
変化するようにするにはどうしたら良いでしょうか?
0174nobodyさん
2008/12/15(月) 19:24:31ID:???+ JavaScript の質問用スレッド vol.67 +
http://pc11.2ch.net/test/read.cgi/hp/1223618153/
0175nobodyさん
2009/01/02(金) 00:55:04ID:BSezfA/dCGIは、perlのパスが異なっていたら、実行されません。たとえば、"#!/usr/bin/perl"というパスを指定しているときに、"/usr/local/bin/perl"にしかperlの実行モジュールがないときに動作しない。
これをどちらのパスでも書くやり方があったような気がするのですが、どうしても思い出せない&ググってもでてこないです。
かすかな記憶ではwhichを使うようなやり方だったと思うんですが、"#!/usr/bin/which perl"でもNGです。
どなたかえらいひと、教えてー。
0176nobodyさん
2009/01/02(金) 01:01:58ID:???0177nobodyさん
2009/01/02(金) 01:06:52ID:BSezfA/d返事ありがとう。
でも、違うんです。symbolic linkじゃなくて、#!の1行で表現する方法があったはず・・・。
0178nobodyさん
2009/01/02(金) 02:09:44ID:???#!をだます方法なららくだ本にあったと思うが・・
0180nobodyさん
2009/01/02(金) 16:37:18ID:BSezfA/dおー!それだ!なんでwhichと勘違いしてたんだろう。
ありがとう!
0182nobodyさん
2012/06/30(土) 16:57:18.47ID:???Perlで書かれたCGIに関してはプログラム板のPerlスレッドで受け付けることになりました。
以後誘導願います。
■ このスレッドは過去ログ倉庫に格納されています