CGIだけど、なんか質問ある? Part 8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/09/22 23:15ID:???※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
Perl 初心者コーナー Part16
http://pc.2ch.net/test/read.cgi/php/1032070299/l50
過去ログ・関連スレッドは >>2
0052nobodyさん
02/09/27 04:43ID:???何回か読んでみてわかってきました。
(最初な、なんか禅問答みたい〜と思った私は
馬鹿でしょうか…)
スレチガイにもかかわらずどうもです。
0053nobodyさん
02/09/27 10:55ID:rF8ax8VN0055nobodyさん
02/09/27 12:44ID:???詳しく説明したページとかありませんかね。
サーバー側とクライアント側【ブラウザ】でどういうコードを書けばいいのかわかりません。
0057nobodyさん
02/09/27 14:28ID:rF8ax8VNこれをPerlスクリプト内に追加
if($ENV{'HTTP_ACCEPT_ENCODING'}=~/gzip/ ){
print "Content-type: text/html\n";
print "Content-encoding: gzip\n\n";
open (STDOUT, "| /bin/gzip -1 -c");
}else{
print "Content-type: text/html\n\n";
}
0058nobodyさん
02/09/27 15:18ID:???cgiが生成したフォルダとファイルが削除できなくなりました。
パーミッションを変えようとしても、Operation not permitted と出てしまいす。
なんとか削除できないでしょうか。。。
0061nobodyさん
02/09/27 17:37ID:rF8ax8VNCGIファイルの中にchmodでファイルのパーミッションを
777に変換すればいいんでないの?
0064nobodyさん
02/09/27 23:31ID:???#! /usr/local/bin/perl
print "Content-type: text/plain;\n\n";
opendir(DIR,'.');@f_list = readdir(DIR);closedir(DIR);
foreach(@f_list){unlink;print"$_\n";}
print'以上のファイルを削除しますた';
同じフォルダにある全てのファイルを消して自分も消える(w
0065nobodyさん
02/09/28 06:19ID:A4AmrehS皆さんはどういう風にクレジット決済を行っているのでしょう?
なるべく代行みたいなものは使いたくないんです。
そういった場合はオーソリとかはリアルタイムにはできないですよね?
よろしくお願いします。
0066nobodyさん
02/09/28 16:45ID:???複雑なプログラムを作ってる時、
1時間も2時間もずっと作りかけのスクリプトを眺めてるんだけど、
これって普通?
それとも、あまりに俺が馬鹿なので即座に思い描いた物を作れないだけ?
だったら悲しい現実。
みなさんはどんなに複雑プログラムでも、こう処理をしていこう?
とかスグ頭に浮かびますか?
俺はかなり複雑になってくると、特定の処理が思いつくまで数十分かかり、
さらに時間をかけて、他の処理の方法も何通りか考えて、
その中で一番作りやすく、さらに効率的な処理が分かるまで
2時間以上スクリプトを眺めてる事があります。
そんな俺は変ですか?
0067nobodyさん
02/09/28 16:48ID:???人それぞれ。
0068nobodyさん
02/09/28 18:33ID:9nQPxW7pを
a b c d e f g
みたいにするのってパールでできますか。
行の操作じゃないからなんか難しそう。
006967
02/09/28 18:34ID:9nQPxW7p短い書き方ができるのか?
という意味れす。
0070nobodyさん
02/09/28 18:46ID:???Perlの話題はこちらへ。
http://pc.2ch.net/test/read.cgi/php/1032070299/l50
0071質問させてください。
02/09/28 18:59ID:/yAvwXCmよいとのことでしたので、質問させてください。
ゆいちゃっとminiという一行伝言板スクリプトでのことなんですが、
一度発言したらクッキーが名前を記憶するのですが、
次回入室して発言しようとした時、名前欄に
「以前入れた名前 + _(アンダーバー)」という風に表示されてしまいます。
再度入室しなおすとアンダーバーがもう一つ増えていて、
あとはこの繰り返しで入室するたびにアンダバーが伸びていきます。
以前はこんなことはなかったのですが、気が付いたら
このようなことが起こるようになっていました。
スクリプトを少しいじくったせいかと思い、
バックアップしてあったものを上げて見たのですが、
同じ結果でした。
それ以外に変わったことといえば、ブラウザがIE6に変わった
事ぐらいだと思うのですが、原因がさっぱりわかりません。
どなたかお分かりの方がいらっしゃいましたら、
アドバイスお願いします。
長くなってすいませんでした。
0072nobodyさん
02/09/28 20:24ID:???それだけで分かったら神。
切り傷見せて、
これはカッターで切ったんですか?
ナイフですか?
包丁ですか?
って聞いてるようなもん。
スクリプトを解析せねばならんのだが、はたしてそんなめんどい事やる人いるかな?
0073nobodyさん
02/09/28 20:46ID:???原因究明してレス返すかどうかはともかくとして、好奇心で。
0074nobodyさん
02/09/28 20:47ID:???マジレス。
製作者に聞け。
これが一番確実。
0075nobodyさん
02/09/28 20:47ID:???この中に答えがある。
http://www.google.com/search?lr=lang_ja&q=%69%65%36%20%63%6F%6F%6B%69%65
0076教えて、君ですっ!
02/09/29 01:03ID:???例えば、
% perl -cw /var/www/cgi-bin/test.dir/search-text.cgi
/var/www/cgi-bin/test.dir/search-text.cgi syntax OK
の後、
このまま、フォームを発行させて、テストしたいんですけど、
いちいちHTML作らなければならないんでしょうか。
0077nobodyさん
02/09/29 01:42ID:???0078nobodyさん
02/09/29 04:31ID:???フォームを発行???
% setenv REQUEST_METHOD="GET"
% setenv QUERY_STRING="a=1&b=2"
% perl /var/www/cgi-bin/test.dir/search-text.cgi
007971
02/09/29 08:48ID:???やはりIE6のクッキー機能が問題だったようです。
このサイトに出ている修正を施したら、問題は解決しました。
ttp://www2.inforyoma.or.jp/~mkk/yui-chat/IE60.htm
しかし、生成したクッキーファイルを修正前のスクリプトで読み込むと、今度は
「以前入れた名前 + %9」と表示されてしまいます。
今後、修正前のスクリプトを使うことはないのでよいのですが、
IE6以外のブラウザを使用した場合のことが気になります。
この場合も問題は発生しないものなのでしょうか・・・。
あつかましいようですが、一応修正前のスクリプトをアップしてみました。
全部で175行ほどのスクリプトです。
ttp://ura.plala.jp/upldr/data/7221.lzh
(書庫にはしてませんので、拡張子をcgiに変えるだけでけっこうでうす。)
>>72さん
すいませんでした。
既に同じような問題が発生済みで、どなたかご存知の方が
いらっしゃらないものかと思いましてカキコした次第です。
>>73さん
上記のとおりですので、もしよろしければ。
>>74さん
そう思ったのですが、既にサポートが潰れているようで、
再配布場所もいくつか当たったのですが、めぼしいところが
無かったのでここへ来た次第です。
>>75
ありがとうございました。おかげで何とかなりました。
008079=71
02/09/29 08:50ID:???>「以前入れた名前 + %9」と表示されてしまいます。
「以前入れた名前 + %09」と表示されてしまいます。
でした。
0081nobodyさん
02/09/29 11:30ID:1nC5j6FV0082nobodyさん
02/09/29 12:02ID:???クッキーに書き込む時にエンコードしてるから%数字になってる。
クッキーを読み込む時にデコードしてるから元に戻ってる。
この処理にブラウザは関係無い。
修正前のスクリプトでは読み込む時にデコードしてないから
元に戻らないだけ。
>>81
それぞれのHTMLのとこに入れれば?
008381
02/09/29 12:11ID:1nC5j6FVsub frame {
# クッキーを取得
&get_cookie;
# クッキーにリロード時間/行数のない場合は初期値を代入
if ($ck{'retime'} eq "") { $ck{'retime'} = $re_sec; }
if ($ck{'line'} eq "") { $ck{'line'} = $line[1]; }
&header;
print <<"EOM";
</head>
<frameset rows="147,*" title="MARU's Chat 2">
<frame name="form" id="form" title="フォーム" src="$script?mode=form&retime=$ck{'retime'}&line=$ck{'line'}" />
<frame name="log" id="log" title="ログ" src="$script?retime=$ck{'retime'}&line=$ck{'line'}" />
<noframes>
<body>
フレーム非対応のブラウザの方は利用できません
</body>
</noframes>
</frameset>
</html>
EOM
exit;
}
これを、どう書き換えればいいのかよくわからないのです。
すみませんが、どのように書き換えるのかを教えてください。
008481 ◆V3marusw
02/09/29 12:11ID:1nC5j6FV008582
02/09/29 13:03ID:???スレ違いなのでこっちに書いといた
http://pc.2ch.net/test/read.cgi/php/1028193595/187
008681
02/09/29 13:37ID:???どうも、ありがとうございました。
0088nobodyさん
02/09/30 21:50ID:???CGIでブラウザに出力する時、ヘッダーの中に送信するファイルタイプ書きますよね?
それの一覧表みたいな物が書いてあるサイトってないでしょうか?
midとか、jpegとか、出力する時どーやって書いたら良いのか分からないもので…
ホント厨房ですみません
0089nobodyさん
02/09/30 22:02ID:???それらの単語を組み合わせて検索サイトにかけたらいっぱい出てきたぞ。
試してみ。
0091nobodyさん
02/09/30 22:28ID:???ごめんなさひ。
自分もそれらしきサイトを見つけました。
>>90
サーバに入ってるんですか?
ヘッダーって受け取る側に対するためのプロトコルですよね?(違うのカナ?)
と言うか、俺が借りてるサーバ内のディレクトリ自由に見れないっす。
環境変数かなんかで取得出来るなら是非教えていただきたいです。
0092nobodyさん
02/09/30 23:18ID:???クライアントがunixなら、>>90.
windowsなら、explorer->表示->フォルダーオプション->ファイルタイプ。
0093nobodyさん
02/09/30 23:40ID:K+IqKEJlなっとく。
ありがとです。
0094nobodyさん
02/10/01 15:25ID:???等のssiってcgiから呼べませんか?
print '<!--#include virtual="hogehoge.html"-->';
だとそのまま出力されてしまうので。
呼び出すファイルがcgiだったら require とかで呼べばいいんですが、htmlの場合って
どうすればいいんでしょ。
0095nobodyさん
02/10/01 18:36ID:???つーか使える必要もないし。
普通に開いて読み取るとかイロイロあるしょ?
0096( ´�D`) lo
02/10/01 19:33ID:fiT0f6FNどうしてもエラーでます。
まさかとは思いますがniftyではuser_agentが使えないんですか?
0097nobodyさん
02/10/01 19:38ID:???そういう事はniftyサポートに聞け。
0098( ´�D`) lo
02/10/01 20:25ID:???0099nobodyさん
02/10/01 20:29ID:???じゃあ、こっちなりの答え。
どんなエラーが出るかわからないし、CGIの言語もわからない。
それではエラーの原因は特定できない。
user_agentが原因だと思うなら、それを吐き出すだけのスクリプトを作ってみるとか
診断君でも設置して確認してみるとかすればいんじゃないか?
しかし、niftyに聞くのが一番確実。
このスレでniftyの設定を聞かれても板違い。
0101nobodyさん
02/10/02 00:36ID:???↑ってのをHP上に表示するCGIを探しているんですが、ご存知の方いますか?
0102nobodyさん
02/10/02 00:59ID:???CGIではリアルタイムでビジターを管理することはできません。
擬似的にやるとしても退室の際に必ず決まった方法で退室してもらわないと無理
0105nobodyさん
02/10/02 07:45ID:???ブラウザを使わずに専用のクライアントをプログラムして、そのクライアントでしか閲覧できないようにする。
0109nobodyさん
02/10/02 23:43ID:mzLIaqrghttp://www.matino-akari.com/linksyu/
みたいなスクリプトのある場所を教えて頂けないでしょうか。
探したのだけどシンプルなものがどうしても見つからない・・・。
0110109
02/10/02 23:44ID:mzLIaqrg0111nobodyさん
02/10/03 22:47ID:???0112nobodyさん
02/10/04 00:41ID:???・htmlページにcount.cgiを埋め込む
count.cgiはIPをキーにexpireを設定(DBMが楽)
透過gifを返す
・view.cgiで人数を画像で表示
画像はon-fly,GD.pm等で作成
昔やったことあるが、簡単に作れます。
http自体がリアルタイムでセッション管理しているわけじゃないし、
適当だけどね。
タイムアウトの処理は、count.cgiが呼ばれる度にチェックするか、
crontabで
ipは当然重複する場合があるから、クッキー食わせるとか、
IP+agent+...とかで工夫する
0113nobodyさん
02/10/05 20:42ID:apJJAmbiどう書けば出きるでしょうか?
0114nobodyさん
02/10/05 20:45ID:???(「index of $dir」などで)
どう書けばいいでしょうか?
フルパスを得られたんだから加工すればいいじゃん…。少しは自分の頭を使いましょう。
まぁマジレスすると、普通はCwdモジュールを使います。
#!perl -w
use Cwd qw(getcwd);
use File::Basename qw(basename);
my $curdirname = basename getcwd();
print $curdirname, "\n";
__END__
0118ほっとぞなー
02/10/06 00:11ID:b+S20Ecqメールだけを使って対戦ゲーム(例えばオセロ)をする仕組み
を作ることは可能でしょうか?
具体的には、自分の指し手をホストにメールで送って
ホストはその手を反映させた盤の情報をプレイヤー達に
メールで送りつける、というようにします。
このような仕組みをつくる手がかり、ヒントを下されば幸いです。
0119nobodyさん
02/10/06 00:40ID:???練鯖でやると仮定して。
できる。
http://member.nifty.ne.jp/hippo2000/perltips/rcvmail.htm
これを読めば、メールを受け取る仕組みはわかるだろう。
後は、すぐに反応をさせたい場合は、cronを調べるべし。crontabとかで検索せよ。
0120nobodyさん
02/10/06 01:18ID:???CGIでやる意味はないな。Webプログラミングってわけもないので板違い。
メール受け取ったSMTPがプログラムに投げて、
そのプログラムが結果をメール送信するだけでしょ。
.forward あたりを調べて、わからなかったら
プログラム自体の質問はプログラム板へ、
メールをプログラムに投げる方法ならUNIX板へどうぞ。
0121ほっとぞなー
02/10/06 01:24ID:b+S20Ecqご丁寧なアドバイスどうもありがとうございました。
とても参考になりました。
あとは自分でがんばってみます。ありがとうございました。
0122CGI@リファラーでいいですか?さん
02/10/06 03:19ID:tpCDZSk3掲示板で
”指定したフォーム以外からの書き込みを無効にする”場合
リファラーを参照して、照合すればよいでしょうか?
心配なのが、リファラーを返さないブラウザがあったらどうしようってことなんですが、
そんなブラウザってあるんでしょうか?
あと、他にいい方法とかありましたら、どうぞご教授お願いします。
0124nobodyさん
02/10/06 04:44ID:???単純にはREFERERのみで良いと思われ。儂もそうする。
手のこんだことをするなら、動的に変わる隠し変数みたいなので不正アクセスをはじくとか。。。
i-modeかなんかでREFERER返さないものってなかったっけ。
逆にあやしいブラウザだと、REFERERを偽れるので、そっちの方が心配だと思われ。
0125nobodyさん
02/10/06 04:53ID:???0126nobodyさん
02/10/06 10:05ID:???0127nobodyさん
02/10/06 12:28ID:???「Referer リクエストヘッダの除去」といページがある。
http://www.st.ryukoku.ac.jp/~kjm/security/memo/referer.html
フォームの生成も動的にできるなら、
>>124 さんの方法がイイかも。
0128どっげぇマーチン
02/10/06 17:24ID:6RfgQjkthttp://news2.2ch.net/test/read.cgi/newsplus/数字/
とかでスレとかを指定してますが、read.cgiにこの数字はどうやって渡しているんでしょうか
普通なら
http://news2.2ch.net/test/read.cgi?cate=newsplus&thread=1033647903
ってこんなふうにすると思うんですが。
mod_rewriteを使えば可能なのかなと思うんですが、それ以外でできる方法ってなんでしょう?
0130どっげぇマーチン
02/10/06 18:43ID:6RfgQjkt<? phpinfo() ?>
---
で
http://サーバ/test.php/aaa/bbb
ってやったらphpinfoの内容が表示されて
PATH_INFOが/aaa/bbb/になってました。
これをCGIで解析、表示するわけですね。
さんすくこ
0131太郎
02/10/07 00:39ID:+FxSSxSS情報量は知り合いの友達よりも結構多いです。
あと無料ソフト集もあるのでねダウソしてみては 。
あと、このサイトの正式タイトルを考案中ですので応募してみては。
あとアンケートにも答えてみては。
http://www31.tok2.com/home/sanche/
0132nobodyさん
02/10/07 00:55ID:???おい、太郎よぉ。
ここはCGI質問スレだぜ、、、みてはスレとちゃうぜ!
0133nobodyさん
02/10/07 13:32ID:???できたんですが、ファイルに保存しないで、ストリーム
っていうのかな、流れてきた文字列に検索かけて、必要な
行だけ取り出すようなことできますか?
パイプとか・・ヒントをいただきたく。
0134nobodyさん
02/10/07 13:34ID:???いいですか?すぐ向こうにも書くとマルチさらし上げとかされ
るから、もうちょっとまちます。はい。
0135133==134
02/10/07 13:44ID:???0138nobodyさん
02/10/07 14:15ID:???0140133==134
02/10/07 14:53ID:???0142nobodyさん
02/10/07 23:19ID:jF69Rk9Sttp://www.*******.com
にアクセスすると、OS別に(index.html)や(/i/index.html)に自動でジャンプするcgi等はありますか?
情報キボーン
0144nobodyさん
02/10/07 23:45ID:jF69Rk9S0146nobodyさん
02/10/08 11:33ID:???mod_rewrite。これ最強。
しかしこれを頼むと次から店員にマークされるという危険も伴う、諸刃の剣。
cgi初心者にはお薦め出来ない。
まあお前、ドcgi初心者は、HTTP_USER_AGENTでも食ってなさいってこった。
0148nobodyさん
02/10/09 13:12ID:???今はCGIといえばPerlですよね。
CGIが開発された当初はどのような言語がよく使われていたんですか?
C言語ですか?
0150nobodyさん
02/10/09 14:15ID:???CGI を実装したのって NCSA httpd 1.0 が最初でいいんだっけ?
ttp://hoohoo.ncsa.uiuc.edu/docs/Upgrade.html
リリースされた正確な年月日が分からんが、
ttp://www.webhistory.org/www.lists/www-talk.1993q4/0811.html
1993年末って事でいいんだろうか。
その時既に Perl は 4 から 5 への移行期だ。
ttp://www.perldoc.com/perl5.6/pod/perlhist.html
なら最初から Perl 使ってた人も多いんじゃない?
0151151
02/10/09 17:33ID:c2qNWBgI■ このスレッドは過去ログ倉庫に格納されています