トップページ⇒php
1001コメント328KB

CGIだけど、なんか質問ある? Part 8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/09/22 23:15ID:???
CGIの運用に関する質問スレッドです。

※CGIは特定の言語に依存するものではありません。

※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
  ↓
  Perl 初心者コーナー Part16
  http://pc.2ch.net/test/read.cgi/php/1032070299/l50

過去ログ・関連スレッドは >>2
0002nobodyさん02/09/22 23:16ID:???
■過去ログ
Part3 http://pc.2ch.net/test/read.cgi/php/988727833/
Part4 http://pc.2ch.net/php/kako/1000/10008/1000804655.html
Part5 http://pc.2ch.net/php/kako/1009/10093/1009331505.html
Part5.01 http://pc.2ch.net/php/kako/1015/10151/1015127347.html
Part6 http://pc.2ch.net/test/read.cgi/php/1019561283/
Part6(7) http://pc.2ch.net/test/read.cgi/php/1025930486/

■CGI以外のPerlに関する質問スレッド
Perl 初心者コーナー Part13
http://pc.2ch.net/test/read.cgi/php/1022731565/l50
CGIに依存しないPerlの話題一般
http://pc.2ch.net/test/read.cgi/php/991313362/l50

■関連スレ
【Perl,CGI】参考書籍
http://pc.2ch.net/test/read.cgi/php/988809842/l50
スクリプト改造工房 4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
こんなCGI探してますスレッド Ver6
http://pc.2ch.net/test/read.cgi/php/1021897804/l50
.htaccessの偉い人 Part3
http://pc.2ch.net/test/read.cgi/php/1019888234/l50
【スレッド】2ch型掲示板 その5【フロート型】
http://pc.2ch.net/test/read.cgi/php/1019414023/l50
0003nobodyさん02/09/22 23:33ID:???
Part3、HTML 化されてます。

http://pc.2ch.net/php/kako/988/988727833.html
0004#02/09/23 06:09ID:???
$ip = "602.198.31.55";   #つまり$ipはIPアドレスです。
としたとき、$ipは数値なのでしょうか?あるいは文字列なのでしょうか?
0005nobodyさん02/09/23 07:53ID:???
>>4
評価の文脈でどっちにでもなる。
数値演算してみれば、数値。
たとえば、文字置換してみれば、文字。
0006nobodyさん02/09/23 07:57ID:???
Perl の話題は別スレッド
0007nobodyさん02/09/23 10:23ID:???
>>6
あのよ、Perlだめ、phpだめ、Cだめ、rubyだめ・・・
ってなると具体的な質問が書けないんじゃあないか?
0008nobodyさん02/09/23 11:34ID:???
>>7
"CGIの運用"に関する質問スレッドです。
>>1嫁
0009nobodyさん02/09/23 11:43ID:???
>>8
婿った。
0010#02/09/23 13:26ID:???
ありがとう。1読んでなかった。
0011nobodyさん02/09/23 14:00ID:???
>>10
ついでに>>5に礼くらい言ったらどうなんだ。
0012nobodyさん02/09/23 14:52ID:???
どなたか質問にお答え頂けますでしょうか、、、
アクセス解析用CGIについてです。
サイトの引越しに伴い元のサーバにあったhtml、画像等のデータを削除しました。
しかしCGI用ディレクトリに関して削除をし忘れており
しばらく経ってその事に気付き何気なくこの解析CGIを表示してみたところ、
設置していたhtmlファイルを既に削除しているにもかかわらず
数件のアクセスが記録されていました。
リンク元は全ておなじサイトからでした。
その他「ブラウザ情報」「OS情報」「ホスト情報」等全ておなじで
同一人物のアクセスと思われます。
なぜ無い筈のページに対するアクセスが記録され続けているのか
とても気になります。

・リンク元のページは個人サイトのリンクページでした(知人ではない)。
・数ヶ月経った今でもアクセスが記録され続けています。
・ホスト情報とリンク元ページのURLを見る限り、アクセスしているのは
 そのサイトの管理者と思われます。

とても不気味なのですが、どういった原因が考えられますでしょうか?
素人のバカな質問かもしれませんが、お教え頂けると幸いです。
0013nobodyさん02/09/23 17:11ID:???
>>12
削除したはずのhtmlファイルにアクセスしているログが残るって事?
1) ないhtmlファイルに対するアクセスのerrorファイルが記録されている。
(てことは、そのアクセス解析CGIがタコだったってこと。)
2) CGIファイルに直接アクセスした結果、htmlファイルが生成され
それにアクセスしている。(それに気づかないなら設置者がアフォということ。)
いずれにせよ、その人はあなたのページがとてもお気に入りだったのでしょう。
0014nobodyさん02/09/23 18:05ID:???
>12
削除されたページがぐーぐるの検索に引っかかる可能性とかもあるかも?
0015#02/09/23 23:26ID:???
5さんありがとう!
0016nobodyさん02/09/23 23:53ID:???
ん?
Part7は無し?

安定板だから偶数なのかな?
0017nobodyさん02/09/24 00:20ID:???
>>12
キャッシュ(Googleのキャッシュなど)やミラーファイルが
アクセス解析CGIを呼び出しているだけさ。
つまり、どこかに誰かがファイルを保存しているのだろう。
0018nobodyさん02/09/24 02:56ID:QU/xJRxV
CGI超初心者です。 質問なんですが、
たとえばHTMLなら
<A href="./index.html/" target="_self">TOP
の記述をCGIで書くにはどうすればいいのでしょうか?
ちょっとDLしたCGIを改造したいんだけど、この
ターゲット属性の指定方法がわかんないんです。
アンダーバーがダメだとすると・・
つまらないことで申し訳ありませんが、誰かヨロシク教えて下され。
おねがいします。
0019nobodyさん02/09/24 03:00ID:???
print '<a href=\".\/index.html\/\" target=\"_self\">TOP<\/a>';
0020nobodyさん02/09/24 03:04ID:QU/xJRxV
>>19
ありがとうございます!!試してきます。
0021nobodyさん02/09/24 03:45ID:???
>>19
お金が好きなんだね…
0022nobodyさん02/09/24 05:16ID:???
ここは、面白いCommon Gateway Interfaceですね!
0023 ◆JAPH9PWA 02/09/24 08:01ID:???
>>16
Pert8っての見て思い出したけど
前スレは実はPert7相当だったんだよ
>>2参照
0024nobodyさん02/09/24 08:41ID:MwRTDDAb
データベースCGIで書き込み先をCSVファイルにしているんですが
どれぐらいの容量のデータまでなら問題ありませんか?
1MBあたりでも問題ありませんか?
0025nobodyさん02/09/24 10:14ID:???
>>18
index.htmlって名前のフォルダなのか?
00261202/09/24 11:14ID:???
>>13
レスありがとうございます。
そうなんです。削除したはずのTop pageへのアクセスが何ヶ月経っても
記録され続けているんです。
CGIがタコ、、、たぶんそれはないとおもうんですが、
かといってCGIファイルに直接アクセスの可能性もないようにおもえます。
リンク元のソースを調べた所ふつうにweb page(解析を設置していたpage)
へのリンクが貼られていましたし。
アドレス欄にCGIへのアドレスを入力して直接アクセスしたとすれば
リンク元情報は無しになりますよね、、、ふぅ、ワケが分かりませんわ。

>>14
レスありがとうございます。
それも考えてグーグルのキャッシュを調べたんですが
該当ページは既に最新のもの(引越しのお知らせ)がキャッシュされていました。
ここで予想がはずれて悩みはじめてしまったのです、、、
00271202/09/24 11:22ID:???
>>17
レスありがとうございます。
14さんへのお返事に書いた様にとりあえずグーグルは違うようでしたが、
やはりどこかに該当pegeが保存されていると考えるのがふつうですよね。
ただその場合引っ掛かるのがリンク元情報です。
リンク元のpegeからはふつうにわたしのサイトのtopへのリンクが
貼られているだけなので、、、
私の知識ではもう予想がつきません。
ああ、、、キモチワルイです〜。
0028nobodyさん02/09/24 11:30ID:???
リファラは偽装できることをお忘れなく。
00291202/09/24 12:56ID:???
>>28
ん、、、?わたしあてのレスですよね?ありがとうございます。
リファラの偽装、、、それも考えましたが初めの説明に書いた通り
ホスト情報とリンク元情報を見る限りアクセスしているのは
そのサイトの管理者の方だと思われます。
そしてホスト情報は某大学で、リンク元pageもURLを見る限り
その大学のサーバにあるようです。
このようにホスト、リンク元ともに実在の大学を騙った偽装も可能なのでしょうか?
さすがにそれは無いだろうとおもったのですが、、、。
わたしの知識不足なのかしら?
0030nobodyさん02/09/24 13:57ID:???
リファラなんてブラウザが送ってる情報なんだからいくらでも偽装できます。
0031nobodyさん02/09/24 14:26ID:???
>リンク元ともに実在の大学を騙った偽装も可能なのでしょうか?
充分可能。
大学は公開プロクシ持ってるとこもあるからその串通せばその大学の
ホスト名になる。
散々既出だがリンク元=リファラーは誰でも自由に設定出来る。
00321202/09/24 17:47ID:???
>>31
レスありがとうございます。
なるほど、公開プロクシなるものがあるのですかぁ。
偽装、、、うちのようなマイナーなサイト相手に
(そこまでする価値は無いでしょう????)というかんじで
現実的には考えにくい行動ですが、偽装だとすれば
私には想像つかない目的などがあるのでしょうね。
とにもかくにも色々なご意見を下さった皆さんに感謝します。
不気味だけれど気にせずにいこうと思います。
もし今後アクセスをはじいてしまったとしても、
偽装でなければ恐らくわたしのサイトが大好きであろう(W
その方に申しわけないですものね、、、。

レスしてくださった皆さんどうもありがとうございました。
0033教えて君02/09/24 22:46ID:j2/oZ1T9
Postメソッドで、アマゾンの本を検索させるために、
lwp-requestへzshのヒアドキュメントからstdinを入力し
てコマンドラインからの利用を図っていますが、うまくいきません。
どなたか助けてあげてください。


%lwp-request -o text -m POST http://www.amazon.co.jp/exec/obidos/search-handle-form |nkf -e <<END
pipe heredoc> index=books-jp\&search-type=quick-search\&field-keywords=perl+cgi
pipe heredoc> END

何でこれで駄目なのかな〜。
0034nobodyさん02/09/25 02:33ID:???
このスレでPart8になるのか・・・

誰か過去レスの有用なものやよくある質問とかまとめてるヤシはいるのか?
0035 02/09/26 01:07ID:???
すいません。他の板で板違いとのことでこちらに来ました。

内輪の掲示板なのでgoogle等検索にかからないようにしたいのですが、
cgiなどのファイルの場合、どうすればよいのでしょうか?
htmlならば、中に<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
ですよね?cgiの入れる場所が分かりません。

どうかよろしくおねがいします。
0036nobodyさん02/09/26 01:44ID:???
>>35
CGIが出力するHTMLの先頭にそれいれたら?
0037nobodyさん02/09/26 06:56ID:???
>>35
googleは「***.cgi」で終わるリンクは拾いません。
…多分。検索しても出てこないはず。
ただし「***.cgi?mona」と"?"以降文字列が続いてる場合は拾っちゃう。
…多分。
00383502/09/27 00:32ID:???
ありがとです!!
個人情報とかは載せて無いけど内輪ネタけっこうあるので・・・
0039nobodyさん02/09/27 01:24ID:4WGpXppZ
お願いします。長くなります、すんません。
以前に作った掲示板CGIなんですが、アクセスすると単なるブラウザ
出力するところで、ダウンロードのダイアログが出てしまい、
表示を得られませんでした(DLするとソースを保存)。
家にあるマックでは表示されており、ウィンドウズMEで問題発生で、
WINの環境の問題かと思いOSからインストールしなおしたんですが、
解決せず、長い間放っていました。
先日、やっぱりPerlコードの問題かと思い、一行ずつ確認作業
していたところ、
print "Content-type: text/html; charset=euc-jp\n\n<!-- \xfd\xfe -->\n";
の直後でexitすると白紙が表示され、exitを削除(もとの状態に)したら
あっさり正常動作をはじめました。
結局、何が原因だったのかわかりません。
ご想像つく方いらっしゃいませんか。
0040nobodyさん02/09/27 01:34ID:???
おおかたContent-typeが間違っていたんだろう
0041nobodyさん02/09/27 01:40ID:???
>39
>直後でexitすると白紙が表示され

てあやしくないか?
content-type吐かずに終了したら普通エラーになるのでは?
0042hmk02/09/27 01:43ID:???
>>39
元のコードおよび環境が再現できませんので、回答ができません。
今動いているのだから、あきらめて、ティムポでもしごいて、今日は寝なさい。
0043nobodyさん02/09/27 01:55ID:???
>>40,>>42
コードは元のままのはずなんですが、あれ自身なくなってきたなあ。
どちらにしてもFAQでなとすれば僕に落ち度があったかも、です。
あきらめてティムポしごいて寝ます。

>>41
あれ?content-type吐いて終了したら白紙で正解ではないですか??
0044hmk02/09/27 02:02ID:???
白紙で正解だろ。
0045nobodyさん02/09/27 02:02ID:???
CGIってぼく知ってるよ。きみたちは知らないの?
0046nobodyさん02/09/27 02:12ID:???
>>45
( ´,_ゝ`)フーン
0047nobodyさん02/09/27 03:07ID:0EcR4zaK
今本で勉強してて、かなり初歩的な質問なんだけど、
文字列の一部を他の文字列に’置換’するには~s/ /
文字列の一部を他の文字列に’変換’するには~tr/ /
って書いてあるんだけど、置換と変換の違いがわからない…
0048nobodyさん02/09/27 03:11ID:???
>>47
初歩を勉強中だからかもしれないけど、それって実はCGIとは関係ないんだよね
0049nobodyさん02/09/27 03:38ID:???
>>47
perl専用スレが正解。


まぁしょうがないので、決定的な違いを説明してやろう。
aとbが無造作に並んでて入れ替えたいとする。

$aa = 'ababaaaabbbab';

$aa =~ s/a/b/;
$aa =~ s/b/a/;

が、こんなんじゃダメだ。全部aになっちまう。
そこで使え。tr。
以下略
0050nobodyさん02/09/27 03:41ID:???
↑gの修飾子書くの忘れた。
突っ込まれる前に自分で言っておく。
0051nobodyさん02/09/27 04:01ID:???
>>49
$aa =~ s/([ab])/($1 eq a) ? b : a/eg;
こうすりゃ行ける(w

まぁ、普通はtr使うが。
$aa =~ tr/ab/ba/;
0052nobodyさん02/09/27 04:43ID:???
>>49 >>51
何回か読んでみてわかってきました。
(最初な、なんか禅問答みたい〜と思った私は
馬鹿でしょうか…)

スレチガイにもかかわらずどうもです。
0053nobodyさん02/09/27 10:55ID:rF8ax8VN
gzip転送の構文ってContent-type書かないとダメなんですか?
0054nobodyさん02/09/27 12:17ID:???
>>53
もち
0055nobodyさん02/09/27 12:44ID:???
gzip転送の意味がよくわからないんですけど。
詳しく説明したページとかありませんかね。
サーバー側とクライアント側【ブラウザ】でどういうコードを書けばいいのかわかりません。
0056nobodyさん02/09/27 13:53ID:???
>>55
ブラウザも自作するんですか。
0057nobodyさん02/09/27 14:28ID:rF8ax8VN
>>55
これを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を設置して、気に入らなかったので削除しようとしたら、
cgiが生成したフォルダとファイルが削除できなくなりました。
パーミッションを変えようとしても、Operation not permitted と出てしまいす。
なんとか削除できないでしょうか。。。
0059nobodyさん02/09/27 17:00ID:???
>>58
目的のファイルを削除するCGIプログラムを作って実行。
0060nobodyさん02/09/27 17:06ID:???
>>59
 Σ(; ・∀・)
0061nobodyさん02/09/27 17:37ID:rF8ax8VN
>>58
CGIファイルの中にchmodでファイルのパーミッションを
777に変換すればいいんでないの?
0062nobodyさん02/09/27 17:42ID:???
>>58
CGIファイルの中にchownでファイルのオーナーを
キミに変えればいいんでないの?
0063nobodyさん02/09/27 18:07ID:???
>>61>>62
Σ(; ・∀・)
0064nobodyさん02/09/27 23:31ID:???
>>58
#! /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:???
>66
人それぞれ。
0068nobodyさん02/09/28 18:33ID:9nQPxW7p
abcdefg
を
a b c d e f g
みたいにするのってパールでできますか。
行の操作じゃないからなんか難しそう。
00696702/09/28 18:34ID:9nQPxW7p
できますか?ではなくて、多分できると思うんだけど、
短い書き方ができるのか?
という意味れす。
0070nobodyさん02/09/28 18:46ID:???
>>68
Perlの話題はこちらへ。
http://pc.2ch.net/test/read.cgi/php/1032070299/l50
0071質問させてください。02/09/28 18:59ID:/yAvwXCm
Web製作板で質問したのですが、こちらで聞いたほうが
よいとのことでしたので、質問させてください。

ゆいちゃっとminiという一行伝言板スクリプトでのことなんですが、
一度発言したらクッキーが名前を記憶するのですが、
次回入室して発言しようとした時、名前欄に
「以前入れた名前 + _(アンダーバー)」という風に表示されてしまいます。
再度入室しなおすとアンダーバーがもう一つ増えていて、
あとはこの繰り返しで入室するたびにアンダバーが伸びていきます。

以前はこんなことはなかったのですが、気が付いたら
このようなことが起こるようになっていました。

スクリプトを少しいじくったせいかと思い、
バックアップしてあったものを上げて見たのですが、
同じ結果でした。
それ以外に変わったことといえば、ブラウザがIE6に変わった
事ぐらいだと思うのですが、原因がさっぱりわかりません。
どなたかお分かりの方がいらっしゃいましたら、
アドバイスお願いします。
長くなってすいませんでした。
0072nobodyさん02/09/28 20:24ID:???
>>71
それだけで分かったら神。

切り傷見せて、
これはカッターで切ったんですか?
ナイフですか?
包丁ですか?

って聞いてるようなもん。

スクリプトを解析せねばならんのだが、はたしてそんなめんどい事やる人いるかな?
0073nobodyさん02/09/28 20:46ID:???
やってもいいよ。
原因究明してレス返すかどうかはともかくとして、好奇心で。
0074nobodyさん02/09/28 20:47ID:???
>71
マジレス。
製作者に聞け。
これが一番確実。
0075nobodyさん02/09/28 20:47ID:???
>>71
この中に答えがある。
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:???
GETメソッドのCGIをコマンドラインからテストする方法ってありますか?

例えば、
% 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:???
% perl /var/www/cgi-bin/test.dir/search-text.cgi > tmp.html
0078nobodyさん02/09/29 04:31ID:???
>>76
フォームを発行???

% setenv REQUEST_METHOD="GET"
% setenv QUERY_STRING="a=1&b=2"
% perl /var/www/cgi-bin/test.dir/search-text.cgi
00797102/09/29 08:48ID:???
みなさんありがとうございました。>>75さんのおかげで、とりあえず解決しました。
やはり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=7102/09/29 08:50ID:???
訂正・・・。
>「以前入れた名前 + %9」と表示されてしまいます。

 「以前入れた名前 + %09」と表示されてしまいます。

でした。
0081nobodyさん02/09/29 11:30ID:1nC5j6FV
KENT WEBのChatRobo(http://www.kent-web.com/chat/robo.html)にDOCTYPE宣言をつけたいのですが、FramesetとTransitionalを分けるにはどうしたらいいのでしょうか?
0082nobodyさん02/09/29 12:02ID:???
>>79
クッキーに書き込む時にエンコードしてるから%数字になってる。
クッキーを読み込む時にデコードしてるから元に戻ってる。
この処理にブラウザは関係無い。

修正前のスクリプトでは読み込む時にデコードしてないから
元に戻らないだけ。

>>81
それぞれのHTMLのとこに入れれば?
■ このスレッドは過去ログ倉庫に格納されています