CGIだけど、なんか質問ある? part 6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/23 20:28ID:Kp0cZQna<<注意:CGIは特定の言語に依存するものではありません>>
Perlのコーディングに関する質問はこちら
【Perl】初心者コーナーPart11
http://pc.2ch.net/test/read.cgi/php/1017201229/
過去ログは>>2
質問あんだけどさ。
わかんないんだけどってどういう意味なの?
なんかよくわかんないんだけど。
例を書いて詳しくキボンヌ
0167dosv
02/05/05 11:49ID:12OG6xB2もし宜しければ教えてください。
<HDML version=3.0 markable=true>
<ENTRY name=name key=name>
<ACTION type=accept task=go dest=#text>
名前入力
</ENTRY>
<ENTRY name=text key=text>
<ACTION type=accept task=go dest="xxxx.cgi" method=post postdata="name=$name&text=$text">
内容入力
</ENTRY>
</HDML>
このように名前と内容を入力して xxx.cgi に送った時、どのように受け取ればいいのでしょうか?。
どのようにって・・・。
$nameと$textを受け取ればいいだけでしょ。
0169dosv
02/05/05 12:09ID:12OG6xB2HTMLの普通のフォームからなら cgi-lib.pl を使って
if ($ENV{'REQUEST_METHOD'} eq "POST"){
&ReadParse();
$name = $in{'name'};
$text = $in{'text'}
で変数に代入できるのですが、Ezweb(HDML)でのやり方がよくわからないのです(T_T)
0172nobodyさん
02/05/05 13:37ID:???とりあえず、
print "Content-type: text/plain\n\n";
print $_ while(<>);
の結果キボン。
0173nobodyさん
02/05/05 14:27ID:TrmCPbRtファイルあぷできない場合はどうしたらいいのかなぁ・・・
0175dosv
02/05/05 14:49ID:12OG6xB2それはどのような処理なのでしょうか?。
CGI初心者なので教えて頂けないでしょうか?。申し訳ございません。
0178nobodyさん
02/05/05 16:50ID:???0179nobodyさん
02/05/05 16:52ID:???0182nobodyさん
02/05/05 20:39ID:???(・∀・)イイ!人だっ (惚
0183nobodyさん
02/05/06 11:12ID:???かちゅ〜しゃ動作test
0184nobodyさん
02/05/07 21:54ID:Y09RJpX9画像表示タグでCGIプログラムを呼び出すやつって、
どんなふうにつくれば(*゚∀゚*) イイんですか?
0185nobodyさん
02/05/07 23:15ID:???ヘッダーが画像になるように出力して。
画像データを、そのまま出力すればよいのです。
print 'Content-type: image/jpeg',"\n\n";
open IN,"<適当なjpeg のファイル";
binmode IN; # DOS バイナリストリームに配慮
binmode STDOUT; # DOS バイナリストリームに配慮
@data =<IN>;
print @data;
0186nobodyさん
02/05/08 12:53ID:7MwNUEiIssiを使わずにcgiでhtml内にランダムで単語を埋め込みたいんです。
で、例えばアメリカの歴代大統領の名前をランダムで表示させるとすると、
まず、大統領の名前だけを改行で縦に羅列しただけのテキストファイルpresident.txtを作って、こんな感じにしました。
-------president.cgiのないよう---------
$president='president.txt';
open(DATAIN,"$president");
@president= <DATAIN>;
close(DATAIN);
$random = int(rand(@president));
$president=$president[$random];
chomp($president);
print "Content-type: text/html\n\n";
print "<!--\n";
print "document.write(\"$president\")\;\n";
print "//-->\n";
--------------------------------------
html側にはこれをはさみます。
<script language=JavaScript src=president.cgi>
</script>
ようはcgiを外部javascript的に使う方法だと思うのですが、
うまくいくにはいったのですが、いくらリロードしてもランダムで名前が変わってくれません。
最初に読み込んだ時と同じ名前のまま。
cgi側のURLをアドレスバーに打ち込むとちゃんとランダムで変わってるので、
ブラウザが一度president.cgiを呼びに行くと、2度目からは横着しとるようです。
<script language=JavaScript>
<!--
i=Math.random();
document.write(i);
// -->
</script>
<script language=JavaScript src=president.cgi?a=i>
</script>
html側だけ苦し紛れに上みたいな感じにしてみましたが、同じでした。
何かいい方法ないでしょうか?おねがいします。
0187186
02/05/08 14:05ID:7MwNUEiI上の最後の方の
document.write(i);
は関係ないです。無視してください。
あと、長文でごめんなさい
0188nobodyさん
02/05/08 14:53ID:???Pragma: no-cache
Cache-Control: no-cache
とかあったほうがいいのか?
でもcgiって普通キャッシュしないのか?
hogehoge.cgi?xxxxxxxxxxx <- ランダムな文字列をjavascriptで書き出す
とかもありかな?
0189186 でけた!
02/05/08 15:49ID:7MwNUEiI> hogehoge.cgi?xxxxxxxxxxx <- ランダムな文字列をjavascriptで書き出す
ではできませんでしたが
print "CacheControl: no-cache\n";
print "Pragma: no-cache\n";
print "Expires: -1\n\n";
を加えることで出来ました!!
ありがとうございます!
0190nobodyさん
02/05/10 01:28ID:kiNPE2Bo結局のトコ、内部処理自体は専用ヘッダ+バイナリを
吐き出すだけという認識でいいれすか?
スレ違いだったらスマソ
0191nobodyさん
02/05/11 02:39ID:r65u0NIV1つのプログラムファイルにたくさんのサブルーチンを作ると、処理速度は遅くなりますか?
サブルーチンと言っても、2〜300行のものが2つです。
カウンターで、ログ表示部分とセッティング部分を別のファイルに分散するか
1つのファイルにまとめてしまうかを迷っています。
0192nobodyさん
02/05/11 03:17ID:um9GfuZV0193nobodyさん
02/05/11 03:28ID:???プログラムを組む人間だったら、1つのファイルにまとめたほうが
きれいだし、配布する際にも説明がしやすい。ので1つがいいと感じるはず。
処理スピードは300行程度じゃ人間には感じられないくらいの差だよ。
ただでさえ汚いソースになるPerlなんだから。。ねぇ?
0194nobodyさん
02/05/11 03:45ID:2K/qf1ca0195nobodyさん
02/05/11 03:58ID:???話題とずれるがもうちょっと処理ごとに短くした方がいいと思うが
0196nobodyさん
02/05/11 04:41ID:???データー部分とCGI本体を別鯖にしてる場合、データー側の鯖への負荷ってどの位なのでしょうか?
0197nobodyさん
02/05/11 11:21ID:r65u0NIVそうですか。
まとめた方がよさそうですね。
配布cgiなのですが、設置する手間は少ない方がよいですね。
>>195
カウンターのセッティング処理・ログ表示処理とかなので、分ける必然性も
ないと思って、まとめてサブルーチンにしました。
0198nobodyさん
02/05/11 15:55ID:ao+wsWev┣cgi-bin━bbs.cgi
┃
┗www━index.htm
こういうディレクトリのとき、bbs.cgiからindex.htmを
ローカルで指すパスの書き方ってありますか?
http://から書いても、フルパスでも駄目でした。
http://www.midnightroam.org/
の
mini BBS++ ver2.79
使ってます。
../www/index.html
0200198
02/05/11 16:05ID:ao+wsWevくだらねえ質問に即レスどうもありがとうございます。
0201198
02/05/11 16:25ID:ao+wsWevindex.htmの中にbbs.cgiを取り込んだような形になるcgiです。
(htmlファイルに<--bbs-->と書けば、そこに掲示板が表示される)
http://〜/cgi-bin/bbs.cgi
でテスト読み込みをしてみるとエラー等なくindex.htmを読んでくれて、
bbsのcgiが表示されますが、
http://〜/index.htm
にアクセスすると何も表示されません。
くだらない質問で、スレ違いかもしれませんがどうかよろしくお願いします。
0202nobodyさん
02/05/11 16:36ID:???こんなんできるの?
掲示板(bbs.cgi)に投稿したら HTMLファイルの <--bbs--> 部分に記事が
挿入される形のスクリプトかと思うが、、、
こういう場合はどこのスクリプトなのかまずはっきりさせていただきたい。
0203198
02/05/11 16:38ID:ao+wsWevどこの・・・というと?
スクリプトの行でしょうか?
つかってるcgiの事でしたら
http://www.midnightroam.org/
の
mini BBS++ ver2.79
です。
0205198
02/05/11 16:43ID:ao+wsWevです、すみません
あたりまえです。何も表示されるわけはありません。
根本的に動作を勘違いしています。
index.htmlがbbs.cgiを読み込むのではなく、bbs.cgiにアクセスすると
index.htmlをテンプレートとしてその中にbbs.cgiの吐き出す部分を
埋め込んで表示される仕組みです。
0207nobodyさん
02/05/11 16:56ID:???そのスクリプトDLしてきました。あなたは大きな誤解をしていると思います。
このスクリプトは index.htm をブラウザに表示させたら <!---BBS---> の部分に
掲示板が表示されるのではなく、minibbs2_279.cgiをブラウザに表示させたら
index.htmの<!---BBS--->部分に掲示板が表示されるものだと思います。
ttp://www.midnightroam.org/ にアクセスしたら掲示板がでているではないかと
言われるかもしれませんが、.htaccessでいじれば ttp://www.midnightroam.org/
と入力したときに index.htmlではなくindex.cgi にアクセスさせることができます。
つまり、アクセスはあくまでbbs.cgiであり、前後に他の何かを
表示させたいのならテンプレートhtmlを好きに編集すればいいという
だけです。
0209198
02/05/11 16:57ID:???ほんとくだらねえ質問にお付き合いくださってどうもありがとうございました。
0210nobodyさん
02/05/11 16:57ID:???そのサイトは DefaultIndex を .htaccess か何かで弄っているんでしょ。
index.html無いし。
0211nobodyさん
02/05/11 16:58ID:???0213あぼーん
NGNG0214nobodyさん
02/05/11 17:27ID:WnQgyRupパーミッションの設定の仕方がわかりません。
ファイルは大学から某有料サーバーへ転送しているのですが、
大学はunixなのでコマンドラインのftpしか使えません。
有料サーバーはTelnet禁止です。
状況説明不足でしたら補足します。
0215nobodyさん
02/05/11 18:02ID:???cgi本体は755、jcode.plは644
0216nobodyさん
02/05/11 18:06ID:WnQgyRupすみません、何を質問してるのかもっと詳しく書くべきでした(汗
215さんの言っている事はわかります、
その変更をどうやって行ったらいいのかわからないんです…
telnet禁止なのでchmodは使えないし、
あらかじめ設定してから転送しても元に戻っているし…
ftpでログインしたのならchmod使えばいいだけでしょ。
コマンドはmanで調べればいい。
以降、UNIX板ででも聞いてください。
0219nobodyさん
02/05/11 18:26ID:WnQgyRupFTPのマニュアルは読みましたが
パーミッションを設定するという類のコマンドは
見つかりませんでした。
0220nobodyさん
02/05/11 18:28ID:WnQgyRupInvalid commandでした…
UNIX板逝ってきます…。
0221nobodyさん
02/05/11 19:33ID:???>>214
どんな ftp クライアント使っているか解らないけど…
一応、大抵の ftp クライアントで使える方法教える
>site help
これで、chmod 使えるかどうかは解る
>site chmod <permit> <filename>
んで、これで <filename> で指定したファイルが <permit> で
指定されたパーミッションになる
0222nobodyさん
02/05/11 19:45ID:???データベースをCGIで作りたいと考えていますが、
なにを勉強すればいいのかさっぱりです。
どこか初心者向け勉強サイトがあれば教えていただけませんか。
本はダメです。お金がないから。
0223nobodyさん
02/05/11 20:24ID:1yiBbWMEどげんしたらよいでしょうか?
0224nobodyさん
02/05/11 20:28ID:???このサイト結構使えるYO!
http://google.com
0225nobodyさん
02/05/11 23:40ID:JXrRw2rRほかのサバはできるけど、Triだけなぜか設定しても、設定が反映されないという意味
0226nobodyさん
02/05/12 00:05ID:???Tripod CGI パーミッション 設定 できない
http://www.google.com/search?num=100&hl=ja&as_qdr=all&q=Tripod+CGI+%83p%81%5B%83%7E%83b%83V%83%87%83%93+%90%DD%92%E8+%82%C5%82%AB%82%C8%82%A2&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0227nobodyさん
02/05/12 14:30ID:???画像を用意しなければならないのでしょうか?
0228nobodyさん
02/05/12 14:36ID:???画像を変えることで、累計と今日/昨日違いをわかりやすくしてんじゃないの?
いやなr設定のとこ書き換えて累計用と今日/昨日用の画像同じの使うようにすればいいじゃん。
0229nobodyさん
02/05/12 15:30ID:u+TnkKJYCGIの神。
0230227
02/05/12 16:15ID:???あーなるほど、つまり仕様の問題上そうするしか仕方ないとかそんなんじゃなく、
単に累計用カウンタと今日/昨日用の画像に違う画像を使いたいって時のためか。。
あと今KENTさんのコード見ながらカウンタを作ってみたんですが
ちょっとロック処理の部分で分からないところがあります。。
ロック処理サブルーチンの一部分↓↓↓↓
if (-e $lockfld)
{
# 現在時刻を取得し$nowに代入
my($now) = time;
# $lockfldの最終変更時間
my($val) = (stat($lockfld))[9];
# 30秒以上経過していれば削除
if ($now - $val > 30) { &lockend; }
}
exit
↑↑↑↑ここまで
下に続く
0231227
02/05/12 16:16ID:???--------------------
ログ読み込みからログ更新までの間、同じ階層にフォルダを作って
フォルダがある場合は他のユーザーを弾くようにして、
上の処理ではもしロック処理が終了したにも関わらずフォルダが削除されなかった
場合に、そのフォルダの最終変更日を取得し、現在時刻と比較し30秒以上経過して
いたらフォルダを削除するようにしてあるんです。
で、なにがダメかというと、上の処理のコードの書き方を簡略化しようと思い、
以下のようにしましたが、なぜか下のコードだと動きません。なぜか分かるでしょうか?
ここから↓
if (-e $lockfld) || exit;
# 現在時刻を取得し$nowに代入
my($now) = time;
# $lockfldの最終変更時間
my($val) = (stat($lockfld))[9];
# 30秒以上経過していれば削除
if ($now - $val > 30) { &lockend; }
0233227
02/05/12 18:44ID:???コマンドラインとは?
うちのテスト環境はWin98SEにApacheとActive Perlで
http://localhost/にアクセスして試してるんですが。。
0234nobodyさん
02/05/12 18:47ID:???0236nobodyさん
02/05/12 20:10ID:???0237nobodyさん
02/05/12 20:50ID:???0238232
02/05/12 21:01ID:???コマンドラインもわからんのか・・・(;´Д`)
しかも指摘されてもわからんのか・・・(;´Д`)
悪いことは言わない、
ttp://pc.2ch.net/test/read.cgi/php/988809842/
ここの本を一冊選んで勉強しる。
君はソースをいじるにはまだ早すぎる。
98ならDOSプロンプトからcgiのあるディレクトリに移動して
>perl hogehoge.cgi
を実行してエラーメッセージ見れ。
それ以前の問題だが。
0239227
02/05/12 22:05ID:???DOS窓開いたあとCGIが置いてあるとこまでどうやって移動するんですか?
あとこのカウンタCGIはHTMLファイルから呼び出すためバイナリに変換しちゃってあるんですが
それでもDOS窓で実行してちゃんと表示できますか?
if (-e $lockfld) || exit; # (^∀^)ゲラゲラ
まだはじめたばっかでよくわからんのですが
この場合$lockfldが存在していたら真の値、存在しなければ偽の値を返すんじゃないんでしょうか・・?
0240nobodyさん
02/05/12 22:20ID:???0241nobodyさん
02/05/12 22:27ID:???はっきり言おう。
足し算、引き算すら知らない赤ん坊に掛け算や割り算を教えることは出来ない。
まず適当な本を読んで、コマンドラインの概念とPerlとは何かを勉強してくれ。
0242nobodyさん
02/05/12 22:35ID:???>CGIはHTMLファイルから呼び出すためバイナリに変換
はぁ??????????実はCか????????????
「ZIP圧縮しますた」じゃないだろうな?????????
>DOS
DOSコマンドくらいサーチエンジンで検索しろ。
>if
スレ違い。perl初心者スレへ。
とはいえそこでも叩かれるだろうから、まず初心者本で勉強してこい。
0245nobodyさん
02/05/12 23:29ID:???0246nobodyさん
02/05/12 23:31ID:???0247nobodyさん
02/05/12 23:32ID:???0248242
02/05/12 23:33ID:???画像を出力するためにbinmodeで出力してるってことか?
なら>>239の文おかしいぞ。
当然DOSで画像なんか見えないが、動くか動かないかのデバッグには十分。
さらにbinmodeをバイパスして print $count とでもしてやれば
正常な動作をしてるかも確認できる。
つか、「教えてください」の前に本を読もう、検索しようって気はないわけ?
241に初心者向けPerl講座をしてもらおうとでも思ってるのか?
しかもどこがバグってるかは>>234が煽りながらも教えてるだろ?
それでもわからんってのなら、今ここで教えたところで同じことの繰り返し。
根本的なことがわかってないんだから、あんたが成長することはない。
またわからんことが出てきてデバッグもせずに「教えてください」だ。
書いててムカついてきた。
0250nobodyさん
02/05/12 23:42ID:???0251nobodyさん
02/05/12 23:50ID:NU8cGT9R500 server error になるときととならないときがあるようなのですが、
(自分のサーバでも、他人のサーバでも)
なぜ、こういったことが起こるのでしょうか?
0253nobodyさん
02/05/12 23:59ID:8gtC1EoY:02/04/24 19:53 ID:I6zo9Id0
今日、家に帰る途中、毎週水曜日はCDsingleのリリース日だから
TSUTAYAに行って、今日発売の
「Free & Easy」 浜崎あゆみ
「Feel fine!」 倉木麻衣
「人生がもう始まっている」 市井紗耶香
「あなたと握手」 aiko
「Forever to me〜終わりなき悲しみ〜」 the brilliant green
の5枚を借りようとしたんだけど、倉木、市井、aikoの3枚しかなく、
浜崎とブリグリがなかった。
とりあえず先の3枚をもってカウンターに行って、
「浜崎とブリグリないんですか?今日リリースなんですけど」
と聞いたら、店員は何か調べて、
「それでしたら、5月11日になりますね」
とかほざきやがった。
別に従業員に罪はないけど、
「どうしてそんなに待たなきゃいけないんだよ!」
とどなりたくなった。
人気曲をしっかり発売日に貸し出ししないTSUTAYA、マジで逝ってよし!
0254nobodyさん
02/05/13 00:57ID:VkobrxXo答えてないやん
0256nobodyさん
02/05/13 05:58ID:CXLX/RBXttp://best.he.net/cgi-bin/error500
に飛ぶようになりました
変更はなにもしていません。以前は動いていたのに…
さっぱわややなんです。お願いします。なにがだめなんでしょう?
0257227
02/05/13 07:32ID:???そのCGIがある場所まで移動して
perl -cw xxx.cgi
を実行したんですが、
コマンドまたはファイル名が違います
と表示されてしまいます。
アパッチは起動させなくていいんでしょうか?
0258nobodyさん
02/05/13 07:36ID:???0259227
02/05/13 07:59ID:???(-e $lockfld) || exit;
これで出来ました。。
0260nobodyさん
02/05/13 13:22ID:???0261nobodyさん
02/05/13 14:46ID:???で別のCGIに飛ばすとき、引数を与えたいのですが
xxx.cgi?a=hogeやxxx.cgi/hoge
のように、ブラウザに内容が表示されないようにする
(つまりPOSTメソッドとして送る)にはどうしたら良いんでしょうか?
0264nobodyさん
02/05/13 17:55ID:mmQ/BpPPサムネイルの作成をしたいのですがレンタル鯖でやる方法はあるんでしょうか?
ファイルサイズを小さくしたので見かけだけのではないやつのほうで・・・
よろしくおねがいします
0265nobodyさん
02/05/13 18:39ID:IVeSrRB+ダウンロード数加算
↓
print "Location: file.lzh\n\n"; で標準のファイル保存処理開始
まではいいんですが、この後ダウンロードカウンタを起動したページ(HTML)から
指定したページへリダイレクトしたいんですが
ダウンロードカウンタCGIにて最後に print "Location: file.lzh\n\n"; しているため
そこから他のURLにリダイレクトさせようとしてもうまくいかないようで・・・・
なにかイイ方法ないでしょうか
■ このスレッドは過去ログ倉庫に格納されています