5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :名無しさん@お腹いっぱい。:01/09/18 18:17 ID:plR9HC2E
print "くだらねぇー質問はココから始めろや!\n";

print<<HTML_END;
<a href="http://corn.2ch.net/test/read.cgi?bbs=php&key=988727833" target="_blank">旧スレ</a>
HTML_END

2 :名無しさん@お腹いっぱい。:01/09/18 22:54 ID:???
>>1
ご苦労様。
で、もしかして、文字コードはShift_JISだったりしますか?

3 :名無しさん@お腹いっぱい。:01/09/18 23:57 ID:ZqP657yQ
>>1
Perlメモ
ttp://www.din.or.jp/~ohzaki/perl.htm

perl使うなら、ココを利用するのは最早常識(?)

4 :910:01/09/19 00:55 ID:v6S8gYt2
旧スレ910
内容の要約「256バイト以上書き込めないワナ。」

ありがとうございました。無事解決しました。

お礼に掲示板をご披露させていただきたいけど、じつにヘンテツない
掲示板なんです…。

ほんとにどうもありがとう。

5 :エラー表示@受け売り半分:01/09/19 02:14 ID:???
# CGI::Carp-たぶん標準モジュール
# error.txtにメッセージを書き出す、みたいです。
# ブラウザ表示とかもできるみたい。
# http://member.nifty.ne.jp/hippo2000/perltips/CGI/Carp.html
BEGIN {
  use CGI::Carp qw(carpout);
  open FH, ">> ./error.txt";
  carpout(*FH);
}


# KCatch.pm-アプして使う
# エラーメッセージをブラウザに表示
# http://www.kawa.net/works/perl/catch/KCatch-j.html
use lib '/home/username/'; #アプしたディレクトリ
use KCatch;

6 : ´_ゝ` オイラ親切さん:01/09/19 06:14 ID:Rf9.LNyU
誰か詳しい日と教えてくらはい。
ニュー速板では、あきらかにウイルスだと言う人も
出てますが、どうなんでしょう?

関連スレ
MSNにウィルス添付?
http://news.2ch.net/test/read.cgi?bbs=news&key=1000822776

7 :名無しさん@お腹いっぱい。:01/09/19 06:44 ID:???
普通にウイルスだろ。
ニュー速板でも何回も書かれてるじゃねぇかYO!
http://www.symantec.com/region/jp/sarcj/data/w/w32.nimda.a@mm.html

8 : ´_ゝ`:01/09/19 08:33 ID:???
一応知らせるために、目に突きやすい所にレスしました。
ゴメンナサイ。

9 : :01/09/20 13:32 ID:3iR0iWdA
part 3 より下がっているのであげ

10 :名無しさん@お腹いっぱい。 :01/09/20 19:50 ID:???
プログラム中にたくさん存在する定数の共通変数を、
use constantを使用して書き直していました。

$KEY = "AppName";

use constant KEY => "AppName";
とします。

ところが、別の場所では、この値をハッシュのキーにしていました。
ハッシュのキーに、定数を渡す方法がわかりません。

$hash{$KEY}
を書き直す場合は、どのように書けばよいのでしょうか?

11 :JAPU@仕事下さい。(笑):01/09/20 20:19 ID:???
$hash{+KEY} = "hanya-n";

12 :名無しさん@お腹いっぱい。 :01/09/20 21:44 ID:???
>JAPUさん
なるほど、そうやるのですか。
どうもありがとうございます。

13 :名無しさん@お腹いっぱい。:01/09/20 21:52 ID:???
$hash{KEY()}の方が好き。なんとなく。

14 :3キャリア対応:01/09/20 22:32 ID:???
Ezwebページ用のcgiを作成しています。

その中で、

$cgi->redirect('url');

と、リダイレクトしている箇所があるのですが、up.browser3.3のように、とある機種で、

「Found redirection nut url not provided...」

と出てしまう事があります。

なにかご存知の方がおりましたら、お知恵をお貸しできませんでしょうか?

15 :名無しさん@お腹いっぱい。:01/09/20 22:54 ID:???
>>14
upbrowserはLocationヘッダを解釈できない気が。

16 :名無しさん@お腹いっぱい。:01/09/21 09:03 ID:nHXPpHxc
CGIの設置で困っている超初心者なんですが、
質問してよろしいでしょうか?(スレ違いでしたらごめんなさい)

過去ログ自動作成機能付きの掲示板を設置しているのですが、
新規に記事の書き込みや削除などを行うと、
「エラー Can't open logfile」
と表示され、過去ログが見れなくなってしまうのです。

過去ログの入っているディレクトリのパーミッションは
このCGIの指定通り「777」に設定していますが、
確認すると勝手に「666」に変更されている場合があります。
あらためて「777」に設定し直すと、読み込みが可能になる
のですが、新規に書き込みをすると同じエラーがでます。

これは何か設定に間違いがあるのでしょうか?
使っている掲示板は
http://sk.redbit.ne.jp/~tboard/cgiroom.html
のtboard009というタイプです。
本当は作者の方に質問すればよいのでしょうが、
サポート掲示板が閉鎖されているので、こちらでお尋ねします。

よろしくおねがいします。

17 :3キャリア対応:01/09/21 09:43 ID:???
>>15

回答、ありがとうございます。

Location ヘッダが解釈できないって本当ですか!?

そうだったんですか。。。

うーん、どうしよう。。。


あと、調査してみたんですが、Up.Browser4.0 は cgi オブジェクトで、リダイレクトはしてくれます。
が、その処理を telnet 上で実行し、返されたヘッダ等を print 文でそのまま書くと、エラーになるんですよね。
不思議です。

18 :16:01/09/21 10:10 ID:???
すいません、解決しました。
CGIプログラムの中に過去ログファイルのパーミッションを自動的に
666にするという項目があって、そこをoffにするだけのことだった
みたいです。

19 :mono:01/09/23 06:49 ID:WDk3zB9E
質問です。
今共有サーバー運営しています。
telnet.cgiが共有サーバーに置かれていて、
このtelnetと同じ動作をするCGIの制御を殺したいのですが
何かいい方法はありませんか?

20 :JAPU@サイトは一応完成:01/09/23 10:24 ID:???
monoたん、もうちょっと詳しく書いた方が回答が得やすいですよ。
少なくとも私には何をやりたいのか全く読み取れませんでした。

21 :名無しさん@お腹いっぱい。:01/09/23 11:09 ID:???
>>20 >>19
シェルアクセスを禁止してるけど、
個別にtelnet.cgi(print `$cmd`;)置かれるから意味が無いってことでしょ。

FreeBSDでjail環境にすればいいんじゃないかな。

22 :-:01/09/23 11:46 ID:my6tpUls
その画像ならココ
http://members.tripod.co.jp/bingo852/

23 :名無しさん@お腹いっぱい。:01/09/23 23:29 ID:OUfu57AI
クッキーがうまく書き込めてません・・・
どなたかご教授お願いいたします。

http://file-okiba.tripod.com/login.cgi.txt
パスワ−ドをクッキー保存する俺って。

24 :名無しさん@お腹いっぱい。:01/09/23 23:33 ID:???
板違い、以上。

25 :23:01/09/23 23:39 ID:???
>>24
誘導プリーズ

26 :つーか。。:01/09/23 23:41 ID:???
バナー消すのはやめましょう (w

27 :定期上げ:01/09/26 07:24 ID:???
定期上げ

28 :名無しさん@お腹いっぱい:01/09/27 14:52 ID:yTHL.Q7E
ファイルウプ機能を既存CGIに足してるんです。
ディレクトリは掘りますが、ファイルは空の残骸すら出来ません。
MIMEはバラせてるので、他のformデータを見る限りデータは取れています。

$upfile=ファイル名
$updata=ファイル

if ($upfile ne "") {
 mkdir "$htmlpath/$board/file/${loge}_${sub}", 0755;

 $upfile_name = "$htmlpath/$board/file/${loge}_${sub}/${append_file}";
 open(OUT,"> $upfile_name") || &error("ファイルのアップロードに失敗しました","lock");
 binmode(OUT);
 print OUT $updata;
 close(OUT);
 chmod (0666,$upfile_name);
}

なぜでしょう?
教えてくださいませ

29 :名無しさん@お腹いっぱい。:01/09/27 15:11 ID:hez/Y7fQ
Jフォンから、写真添付メールを送ると、
そのまま掲示板に掲載することのできるCGIはありませんか?

30 :名無しさん@お腹いっぱい。:01/09/27 17:14 ID:???
>>29 sine

31 :名無しさん@お腹いっぱい。:01/09/27 22:04 ID:???
>>28
umaskの設定のせいで、掘ったディレクトリが0755になってないのでは?

32 :28:01/09/28 00:18 ID:w43RMk9g
>>31
一応再確認しましたが、755になってます
正直open〜chmodの流れはサンプルのコピペなんで欠けが無いか
不安です。
ログファイルでも作るしかないですかね。

33 :名無しさん@お腹いっぱい。:01/09/28 01:29 ID:???
ディレクトリ掘れる所まで確認出来てるなら、もうちょっと細かく調べてみ
ファイル作る位調べれば一杯出てくるから。
$upfile_name にdでもない値が入ってる辺りが有力
${append_file}にダメ文字とかね
取り合えずファイル作ったり消したりして遊んでみれ

34 :名無しさん@お腹いっぱい。:01/09/28 01:48 ID:???
>>29
そういう掲示板を提供してるサービスがいくつかあるから
調べればいいよ。じゃーね。
自分で設置したいの? やめといたほうがいいって。

35 :28:01/09/28 02:15 ID:w43RMk9g
>>33
サンクス
明日試してきます

36 :28:01/09/28 02:18 ID:w43RMk9g
あ、あと1こ質問させておいて下さい。
updataの中身を失敗していた場合でもopen〜closeしたらガラは
残りますよね?

37 :名無しさん@お腹いっぱい。:01/09/28 03:17 ID:D2ua77aU
>>28
&error("ファイルのアップロードに失敗しました$!","lock");
$!を入れればエラーメッセージ表示できないだろうか

38 :名無しさん@お腹いっぱい。:01/09/28 12:53 ID:???
>>37
ついでに
&error("${upfile_name}のアップロードに失敗しました$!","lock");
と書けば、ファイル名も確認できるな

39 :28:01/09/28 17:00 ID:hZeMEb.6
できました。サンクスです
ヤハーリupfile_nameがおかしかったです。
2chタイプ掲示板(megabbs)なので、管理がグチャグチャで難儀してましたが
無事動作しました。

40 :名無しさん@お腹いっぱい。:01/09/28 17:07 ID:???
どうでもいいけど、おんぷたんって可愛くねえ?

41 :お願いします:01/09/28 18:25 ID:???
CGI-scriptで書き出したパスワードfileで、
暗号化されていますが、
それを単純に.htaccessを入れたフォルダの
認証に使えますか?
例えばkentさんのアクセス制限cgiで出来た
パスワードfileを、そのcgiからの認証に
使わないで他のcgiや単に.htaccessを入れて制限した
htmlのアクセス制限に使えるでしょうか?

42 :名無しさん@お腹いっぱい。:01/09/29 12:57 ID:9B0lqUxs
ジオゴングみたいなアンケートCGIってありますか?
(ウェブゴング以外で)

43 :名無しさん@お腹いっぱい。:01/09/29 13:06 ID:???
キングコング

44 :名無しさん@お腹いっぱい。:01/09/29 15:09 ID:0rQ/9w3k
>>41
.htaccessのユーザ認証で使うパスワードファイルは、各行ごとに
ユーザ名:cryptされたパスワード
という形式なので、それと同じなら使えるです。

>例えばkentさんのアクセス制限cgiで出来た
>パスワードfile
これはどんなフォーマットになってるんですか?

45 :名無しさん@お腹いっぱい。:01/09/30 00:27 ID:eXFd9tX6
Apache + tomcat の仮想ホストで servletを実行しようとすると
ダウンロードになってしまうのですが認識させ実行するには何か
設定がたりないのでしょうか・・

46 :名無しさん@お腹いっぱい。:01/09/30 13:44 ID:QtyCszVE
しょうもないシツモンですいません。
デコード部分でイチバン最適な書き方ってありますか?
(オブジェクト指向スタイルでもok)

if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} else {
$buf = $ENV{QUERY_STRING};
}

foreach ( split(/&/, $buf) ) {
my ($name, $value) = split(/=/, $_);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
$form{$name} = $value;
}

47 :名無しさん@お腹いっぱい。:01/09/30 14:17 ID:???
最適って何を? 使用メモリ減らしたいのか、速くしたいのか、
コードの文字数を減らしたいのか。

CGI.pmとか使いたくないなら、普通は上の定石でいいと思うが。
#ただしpackのとこは pack("H2",$1) のほうが効率いい。

そういや前に誰か、一度に$bufに読まないで1文字ずつ読んで
デコードするという省メモリ方法を提案してたねえ。
このスレだったか、別スレだったか。。

48 :名無しさん@お腹いっぱい。:01/10/01 02:33 ID:4de04BqA
tracerouteとpingが実行できるCGIってどっかで配布されてないですかね?
なかなかみつかりません。どなたか知りませんか。

49 :名無しさん@お腹いっぱい。:01/10/01 02:43 ID:???
>>46
いまは無きチャットスレの,252chatにこんなのがあった。

#POSTデータをデコードして%POSTに格納
sub decode_postdata {
my $i;
read(STDIN,my $buffer,$ENV{'CONTENT_LENGTH'});
%POST = map {
if($i++%2){
tr/+/ /;
s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2",$1)/eg; #thx2 349
s/&/&/g;
s/"/"/g;
s/</</g;
s/>/>/g;
tr/\x00-\x1f//d;
}
$_;
} split /[&=]/, $buffer;
}# thx2 320

50 :名無しさん@お腹いっぱい。:01/10/01 02:46 ID:???
>>48
10行なくてできるため自作したほうが早いと思われ。
つーかスレ違い。

51 :名無しさん@お腹いっぱい。:01/10/03 00:49 ID:???
板管やってます。
掲示板にアクセスされたときに、閲覧者のクッキーの情報の
ログを採りたいのですが、良い物ないでしょうか。

52 :名無しさん@お腹いっぱい。:01/10/03 01:57 ID:52wgSISs
>>51
いちおう念のために聞いておきますけど、
自分のサイトで発行したクッキーだけでいいんですね?

いや以前どっかのスレで、訪問者のPCに入ってるクッキーを
セキュリティホール突いて全部取得したいとかいう
邪悪なやつがいたので。。。

53 :FREAKES:01/10/03 02:23 ID:iOlT3Zgg
自宅サーバーを立てたのですが
CGIの掲示板をおいたところ自分で見ることは、できたのですが
友達に見てもらってもエラーがでてしまいます
パーミッションが違うと言われましたが
どうなんでしょう
WINだとパーミッションは、関係ないと思うのですが
ぜひ、お願いします
http://www.freakes.dyn.to/

54 :名無しさん@お腹いっぱい。:01/10/03 02:34 ID:rmSH5DLs
<A href="http://127.0.0.1/aska.cgi"><IMG src="image.gif" border="0" width="136" height="59"></A>

そら見れんワ

55 :FREAKES:01/10/03 02:37 ID:iOlT3Zgg
すいません
マジで困っています
教えていただけませんか?

56 :名無しさん@お腹いっぱい。:01/10/03 02:38 ID:???
俺のサーバーにこんなの(aska.cgi)入ってね-もん

57 :名無しさん@お腹いっぱい。:01/10/03 03:00 ID:???
>>55
マルチポストやめれ
127.0.0.1で見れるわけがない

58 :名無しさん@お腹いっぱい。:01/10/03 18:08 ID:???
優しいなぁ、>>57は。ちゃんと答えを教えてあげてるじゃん。
俺だったら氏ねの一言で終わりだもんな。

59 :名無しさん@お腹いっぱい。:01/10/04 14:04 ID:nOAoqb9A
画像を返すCGIを作っているのですが、このとき、画像を2つ返すことは
できるでしょうか(ウィンドウが2つ開く感じ)。

60 :名無しさん@お腹いっぱい。:01/10/04 14:38 ID:nOAoqb9A
連続質問ですみません。フォームに複数のsubmitボタンをつけて
それぞれ違うCGIを呼び出すことは可能でしょうか。
submitにname=を付けて区別するというところまでは
わかったのですが、actionでどう指定したら良いかが
わからないのです。

61 :名無しさん@お腹いっぱい。:01/10/04 14:47 ID:???
#!/usr/bin/perl
$name=<STDIN>;
if($name eq "60"){
print "逝って良し";
     }

62 :名無しさん@お腹いっぱい。:01/10/04 14:50 ID:ZexXU3iQ
<?php
$name = '61';
if($name == 61){
echo "61=ドキュソ";
}
?>

63 :名無しさん@お腹いっぱい。:01/10/04 15:20 ID:???
前の行で $name='61' としておいて if ($name == 61) も
糞も無いと思うのだが。

>>60
submit で actionするCGI を変更するには javascriptを使う必要があります。
CGIでは出来ません。

Web製作板へのJavaScript質問スレッドへどうぞ。

# cgiでどのsubmitボタンが押されたか判別してredirectする方法も有るけど。

64 :名無しさん@お腹いっぱい。:01/10/04 15:33 ID:nOAoqb9A
>>63 ありがとうございます。
Web制作板へ逝ってきます。

65 :51:01/10/04 22:02 ID:???
>>52
荒らしがきてるんで、そいつのクッキー全部覗きたかったんだけど、
後で調べてみたら、それは簡単に出来そうにないんですね。

66 :名無しさん@お腹いっぱい。:01/10/05 13:38 ID:uprQiXAY
フリーのCGIをちょっと加工するくらいしかできない厨房(年食ってるけど)です。
質問させてください。
1つの掲示板で、多言語OKにするには、どうしたら良いのでしょう?
現在、アメリカの無料ゲストブックを借りて使っていますが、自前のものに
替えたくて、いろいろと探しています。
日本のCGIだと、jcode.plが必須で、それだと中国語等はどうもうまく行かない
ような気がします。
日本のCGIから日本語機能(?)を取り除く方法ってありますか?

67 :名無しさん@お腹いっぱい。:01/10/05 16:44 ID:xs79T5cc
>>66
日本語で書き込まれても中国語で書き込まれても、
文字コードをUTF-8に統一して保存および表示すれば、
混在可能だと思う。

特定の文字コードをUTF-8にコンバートするのは難しくない。
今のunixにはlibiconvという文字コード変換ライブラリや、
それを使ったiconvコマンドがあるし。

問題は書き込まれた文字コードの判定だ。
日本語だけという条件であっても、自動判別させようと思うと
Shjift_JISとEUC_JPを間違えることがあるぐらいだから、
中国語が入ったらさらに混乱必至ではないか(想像ですけどね)。

だったらブラウザから書き込むときに、もう最初っからUTF-8で
送信させればいいわけだ。
それは具体的にどうするか、ってのは正直スマンが知りません。
誰かフォロー頼む。

68 :名無しさん@お腹いっぱい。:01/10/05 16:46 ID:???
>>66
>日本のCGIから日本語機能(?)を取り除く方法ってありますか?
ありますよ。でもスクリプト見ないと何も言えない。

69 :66:01/10/05 18:26 ID:IlecsqKU
67さん、68さん、ありがとうございます。
現在使っているフリーのゲストブックはアメリカものなので、間違いなく
jcode.plは無関係で、英語はもちろん、中国語Big5,中国語GBでも
書込みOKです。(ブラウザで文字コードを変えればきちんとそれぞれ
読めます。当然、同時に全てをきちんと表示することは出来ませんが、
読めれば良いので問題ありません。)
ですから、英語のゲストブックCGIを使えば良いのでしょうが、ただでさえ
CGI素人なのに英語では更に厳しいので、日本のCGIを使いたいと思った
わけです。

>68さん
いただいて来たスクリプトをテキストでアップしてみました。

ttp://members.tripod.co.jp/k_napper/nyaponika.txt
これのどこを削ったりアレンジしたりすれば良いのか、ちょっと
わからないのです。
ご教授いただけると、とっても助かります。

70 :名無しさん@お腹いっぱい。:01/10/05 19:47 ID:???
>>69
CGI改造スレのほうに回答が誤爆されてたヨ
http://ebi.2ch.net/test/read.cgi/php/988808396/392-394n

71 :名無しさん@お腹いっぱい。:01/10/06 02:00 ID:MEgHrhMk
FORMのtextareaのデータを、改行毎に分割したい場合、
split("\n", $data)
でいいのでしょうか? 改行コードってどんな端末からでも\n?

72 :名無しさん@お腹いっぱい。 :01/10/06 02:12 ID:???
勿論違うよ、どんなのかは調べてもらうとして
普通は $data =~ s/\r\n|\r/\n/g; こんなのが前に入る

73 :名無しさん@お腹いっぱい。:01/10/06 02:41 ID:MEgHrhMk
なるほど! ありがとうございました>>72

74 :名無しさん@お腹いっぱい。:01/10/06 02:49 ID:???
質問させて下さい。
CGIでテキストデータを生成して、クライアント側に
保存させるにはどうやったら良いのでしょうか?
テキストデータには、text/plainなどのヘッダを
付けたくないのです。

75 :名無しさん@お腹いっぱい。:01/10/06 03:34 ID:???
保存ってクライアントを操作するって事だったら無理だよ?
もろにCGIの仕様に引っ掛かるもん
単にクライアントにコピペで保存してもらうだけなら
テキストエリアに吐き出してREADONLYとでもしとけば良いけど。。
ヤバ文字が含まれそうだったらちゃんとエスケープしてね。
無料サーバのファイルマネージャみたいな感じで

76 :名無しさん@お腹いっぱい。:01/10/06 03:34 ID:KSO8kPZM
↓これについて教えていただけますか?
http://natto.2ch.net/test/read.cgi?bbs=hp&key=999946244&st=804&to=804&nofirst=true

77 :名無しさん@お腹いっぱい。:01/10/06 03:59 ID:???
>>76
適当にまとめると,
クッキーで連続投稿を防止しようとしてるが,IEとネスケで動作が違う。実装の違いを教えれ。
ってことかな?

クッキーは勝手にネスケが開発してたので
仕様はnetscapeのサイトにあったはず。
W3Cの規格にはまだなってない。
ブラウザごとの実装の違いは知らない。

クッキーは拒否されることもあるので,
連続投稿規制はサーバーにIPとかを保存するようにするのが一般的。

78 :JAPU:01/10/06 04:16 ID:???
RFC にはなっているけどね。
(RFC 2109: HTTP State Management Mechanism)

Netscape のサイトにあるのはこれだね。
http://www.netscape.com/newsref/std/cookie_spec.html

# Netscape のサイト分かりにくすぎ。

79 :名無しさん@お腹いっぱい。:01/10/06 09:27 ID:???
>>75 ありがとうございます。
えっと、テキストデータを生成して、保存させるための
ダイアログを出したいという感じです(あとはクライアントに
おまかせ)。
できればこのとき、デフォルトのファイル名もこちらで
準備したいです。

80 :名無しさん@お腹いっぱい。:01/10/06 10:32 ID:???
>>79
ヘッダを、
Content-disposition: attachment; filename="hoge.txt"
Content-type: application/octet-stream
にしたときは、ブラウザは保存ダイアログを出すべきだ、
…とRFC2616の19.5.1節に書いてあるよ。

ただし強い勧告(SHOULD〜)じゃなくて弱気な勧め(should〜)だし、
すべてのブラウザがこのRFCに準拠してるかどうか、非常に疑わしい。。。

昔のIEなんかだと、どんなHTTPヘッダを付けても
中身がテキストっぽければ画面に表示しちゃったからなあ。

81 :名無しさん@お腹いっぱい。:01/10/06 10:48 ID:???
>>79
そう言う意味だったのかー、ゴメソ
昔テキストのDLカウンター付けたくてちょっとやった事があったな
僕も>>80氏に激しく同意です。mustにして欲しい所だ
application/zipとか吐けばかなりの確立でDL窓出せるんだけどねー
ただCGI通したいだけならLocationで飛ばすとか

82 :名無しさん@お腹いっぱい。:01/10/06 10:49 ID:???

application/zip吐くとファイル名が.cgiになるので凄くダサいです
今のブラウザの実装は知らないけど

83 :名無しさん@お腹いっぱい。:01/10/06 10:57 ID:???
ありがとうございます!>>80
ヘッダに書いて、あとはクライアント次第ということで
行こうと思います。助かりました。

84 :名無しさん@お腹いっぱい。:01/10/06 11:06 ID:???
>昔のIEなんかだと、どんなHTTPヘッダを付けても
今でもそう、つーかバイナリ判別の精度が上がってるような  (-_-..

85 :名無しさん@お腹いっぱい。:01/10/06 11:21 ID:MEgHrhMk
テキストの場合どうするんだろ?
text/plainだとブラウザで表示されちゃう率が高いから
application/octet-streamにするって感じ?
シフトJISそのまんま流すからapplication/octet-stream?

…ていうか漏れわけわかんないこと書いてる?
ヘッダむずかしー

86 :JAPU@神戸もとらだね!:01/10/06 11:24 ID:???
>>80
テキストファイルなのにapplication/octet-stream 吐き出すのは利用者にとっては迷惑かも知れない。

> 昔のIEなんかだと、どんなHTTPヘッダを付けても
> 中身がテキストっぽければ画面に表示しちゃったからなあ。

今でも中身をみて判断するというダサい実装になっている。
text/plain 吐き出しても HTML っぽければそう解釈するし。

>>82
moe.cgi/nae.zip のようにアクセスすると nae.zip というファイル名で保存できるかもしれない。

87 :80:01/10/06 12:13 ID:780019M6
>85-86
あー、そうか。テキストだよな。

>テキストファイルなのにapplication/octet-stream 吐き出すのは
なはは。たしかに。

で、UserAgentを見てWin系なら改行コードを"\r\n"にするとか
小細工をはじめると、泥沼にズブズブ入っていくんですな、きっと。

>text/plain 吐き出しても HTML っぽければそう解釈するし。
がーん。ほんとだ。ダセー>IE5

88 :名無しさん@お腹いっぱい。:01/10/06 12:24 ID:780019M6
>>84
>今でもそう、つーかバイナリ判別の精度が上がってるような  (-_-..
なんか最悪ですな。ヘッダを信用しないのはなぜだ?>MS
サーバ管理者にはmime.typesを管理する能力がないとでも?
あ、それはApacheの話か。。。IISはその辺どーなってんの?

89 :76:01/10/06 13:59 ID:???
>>77-78
ありがとうございます。
確かにCookie拒否されたらダメでしたね…。
そこまで考えてませんでした。
IPアドレスなど使って作ってみようと思います。

実装の違いについては、
$ENV{'HTTP_COOKIE'}を両者に吐かせてみても違っているので
もうちょっと調べてみたいと思います。

90 :名無しさん@お腹いっぱい。:01/10/07 13:18 ID:n4Hjc.oI
掲示板だけを運営していたのですが閉鎖する事になり
その事を来て頂いていた皆さんにお知らせしたいのです。
閉鎖にいたっての報告などはHTMLに書きWWWにアップして
いるのですが、そのURLに自動的にジャンプするには
どういったcgiを書けばよいのでしょうか?
掲示板にURLを書けば良い事なのですが掲示板はもう削除して
しまって無いので自動的にそのURLにジャンプするcgiを教えて下さい。

91 :名無しさん@お腹いっぱい。:01/10/07 13:46 ID:???
>>90
CGIなら。
#!/usr/local/bin/perl
print "Location: http://xxx.net/user/info.html\n\n";

.htaccessが使えるなら。
Redirect "/user/bbs/bbs.cgi" "http://xxx.net/user/info.html"

92 :名無しさん@お腹いっぱい。:01/10/07 17:10 ID:n4Hjc.oI
>>91
ありがとうございます。

93 :名無しさん@お腹いっぱい。:01/10/07 20:05 ID:TC4eI282
Cobalt (多分 Qube3 という機種) で Perl の CGI を動かそ
うとしたんですが、トラブってしまいました。

で、調べてみたら環境変数 PATH_INFO の値が変です。
http://hoge.fuge.co.jp/bbs/bbs.cgi
がスクリプトへの URL だとすると、
PATH_INFO=/bbs/bbs.cgi になっています。この値が設定さ
れていると CGI.pm の url(-relative=>1) が undef になり、
また url(-absolute=>1) は空文字列になっちゃうようです。

とりあえず new CGI をする前に $ENV{PATH_INFO} = '' と
して逃げましたが、同様の問題を経験された人はいますか?
あるいは、このサーバの設定が悪かっただけでしょうか…

94 :名無しさん@お腹いっぱい。:01/10/08 00:40 ID:???
それ俺も喰らった事あるなぁ 多分鯖はズィタミだったと思う
丁度今の2chのread.cgiみたいにしてたんで困ったよ
結局正規表現でゴミ取って、使ってたけど鬱陶しいからQUERY使うようにしたよ(´Д`;) ヘナヘナ
原因不明、多分設定がタコだと思ったんだけど
俺も知り鯛あげ!

95 :名無しさん@お腹いっぱい。:01/10/08 00:41 ID:???
下げちゃった・・・

96 :名無しさん@お腹いっぱい。:01/10/08 11:29 ID:???
PATH_INFOが変てーと、原因はなんでしょうね。
触ったことないけどCGIWrapの問題?
古いApacheだとhttpd.confのAlias設定でも問題出るらしい?

97 :93:01/10/08 16:07 ID:???
CGIWrap や cobalt-users という ML のアーカイブ
を検索すると、同じような問題が出ていますね。原
因はまだよく分かりませんが。

98 :名無しさん@お腹いっぱい。:01/10/08 16:20 ID:???
>>90
つーか自動的にジャンプさせるぐらい
METAタグでできるだろ。

99 :名無しさん@お腹いっぱい。:01/10/08 16:38 ID:???
>>98
でもMETAタグを含むHTMLデータをbbs.cgiに吐かせるぐらいなら
Locationでいいじゃん?

100 :名無しさん@お腹いっぱい。:01/10/08 16:47 ID:???
>>98
分かりきった事得意げに書くなよ (´Д`;) アウアウー

101 :93:01/10/08 16:50 ID:???
問題が起きた CGI.pm のバージョンは 2.56 でした。
もっと新しいバージョンなら url() のコードも変わっ
ているので、問題無いかも。

102 :名無しさん@お腹いっぱい。:01/10/08 17:11 ID:???
>>101
今CGI.pm ver2.752のソースみたら、PATH_INFOを含む部分の
コードが何行かコメントアウトされてますね(笑

そしてCGI.pmのurl()が正しく動作するようになっても
PATH_INFO自体を使いたいという>>94の願いが
天に届くことはなかった。。。ナムナム

103 :93:01/10/08 17:31 ID:???
>>102
> 今CGI.pm ver2.752のソースみたら、PATH_INFOを含む部分の
> コードが何行かコメントアウトされてますね(笑

# If anybody knows why I ever wrote this please tell me!
ってアンタ(藁

> そしてCGI.pmのurl()が正しく動作するようになっても
> PATH_INFO自体を使いたいという>>94の願いが
> 天に届くことはなかった。。。ナムナム

url() なら代替案はいろいろありますがねぇ…

http://list.cobalt.com/pipermail/cobalt-users/2000-October/023300.html

AliasMatch と CGIWrap の関係で PATH_INFO が
正しくならないのは、仕方無いのかな…

104 :名無しさん@お腹いっぱい。:01/10/08 17:52 ID:???
I am onanism boy!!
ore no eigoha metyakutya daze!!!!!

105 :名無しさん@お腹いっぱい。:01/10/08 19:45 ID:x261FvpI
現在アンケートページを作ってます。
必須項目が入力されていない場合はエラー用のページに飛ばして、そこに戻る
ボタン(単なるリンク)を用意しています。
その戻るボタンをクリックして最初のアンケートページに戻る際、各質問項目に
前回の値(ユーザーがエラーページに飛ばされる前に入れていた値)をあらかじめ
入れておきたいのですが、どうやれば出来るのか上手く出来るのかが分かりません。

フォームデータはCGI_Lite.pmを使ってます。ヒントでも良いので、よろしくお願いします

106 :名無しさん@お腹いっぱい。:01/10/08 20:11 ID:???
>>105
『ブラウザの「戻る」ボタンを押して戻ってください』
とエラーページに書いておく。カコワルイ?

解決になっていないような気もする。

107 :名無しさん@お腹いっぱい。:01/10/08 20:15 ID:???
>105
foreach(keys %FORM){
print qq(<input type=hidden name="$_" value="$FORM{"$_"}">\n);
}
を、戻るボタンのところに埋め込めば?

108 :名無しさん@お腹いっぱい。:01/10/08 20:23 ID:???
hiddenで渡すか

print<<"_END_";
ブラウザのバックボタンをオシテクレ  w
_END_

109 :名無しさん@お腹いっぱい。:01/10/08 20:26 ID:WEFUx3wE
生IPを抜くCGIありませんか?

110 :名無しさん@お腹いっぱい。:01/10/08 20:33 ID:???
コチラニドウゾ
http://salad.2ch.net/download/

111 :名無しさん:01/10/08 20:44 ID:???
アンケートを受け付けるCGIが直接再入力用のフォームを出力するとかが
一番いいような気がしますが。

どうしてもHTMLで書かれたアンケート入力ページに戻したいという動機があるなら
JavaScript+Cookieとか?

112 :名無しさん@お腹いっぱい。:01/10/08 20:47 ID:???
>>105
「戻らない」っていう方法もあるかも。不備の
ある部分だけのフォームを表示し続ける。OK な
項目は hidden で渡して逝く。

Yahoo Japan ID の登録がそんな感じだったと
思う。

手間がかかる割りに役に立たないような。

113 :名無しさん@Windowser:01/10/09 10:19 ID:???
CGI.pm VERSION3 ってどなたか使った事ありますか?
とりあえず読み込み・初期化(do FILE)だけを比べてみると5倍ほど早いようですが。

114 :名無しさん@Windowser:01/10/09 11:13 ID:???
あーでもまだバグだらけみたいですね。
#line 170 CGI/Object/Html.pm
にバグみっけ。
[CGI.pm version3.01]

115 :名無しさん:01/10/11 22:51 ID:OddRAZgw
perl+cgiで掲示板旁から始めようと思っています。
そこで、とりあえず、ソースをつくって、
コンパイルしようとしたら、

#perl bbs2.cgi
(offline mode: enter name=value pairs on standard input)

というエラー??がでます。
意味が分かりません。

さらに、僕は、このcgiで
use DBI;
use strict;
use CGI;
use Date::Calc qw(Today Add_Delta_Days);
というふうに書いているのですが、
DBIとDate::CalcはCPANからインストールしたのですが、
CGIとstrictそのものは、CPANにおいてなかったませんでした。
この2つのモジュールは最初から入っていますよね??
ちなみにOSはFreeBSDでapacheを使ってます。

116 :名無しさん:01/10/11 22:52 ID:OddRAZgw
ちなみにapacheでも
internal server errorがでます。

昔は、動いたんですが。

117 :名無しさん@お腹いっぱい。:01/10/11 23:55 ID:aIf8/row
>>115
それ、なぜかCGI.pmがフルデバッグモードで動いてるみたいです。
use CGI qw(-no_debug ・・・);
と、-no_debugを指定すると消えませんか。
くわしくはperldoc CGIで"DEBUGGING"の説明を見てください。

118 :115:01/10/12 00:01 ID:2WUE5QsI
>>117
ほんとだ!
できました。こういう事がおきると初心者には対処できないです。
CGI、別に何もいじってないんですが。。。
"DEBUGGING"また読んでおきます。

119 :名無しさん@お腹いっぱい。:01/10/12 00:20 ID:???
うちでも昔おんなじことがおきたよ。
バージョンによっては$CGI::DEBUGの初期値が2に設定されてるのでは
ないかと推測。本来は1なんですよね?
ていうか今↓のスクリプトを実行したらDEBUG=1になってた。

use CGI;
print "VERSION : $CGI::VERSION\n";
print "DEBUG : $CGI::DEBUG\n";

実行結果
VERSION : 2.752
DEBUG : 1

120 :名無しさん@お腹いっぱい。:01/10/12 15:23 ID:2WUE5QsI
初心者ですが、頑張って掲示板を完成させてみました。
しかし、以下のソースだと、ページをリロードするたびに、
同じ内容の投稿がなされてしまいます。その改善法を御教示お願いします。

121 :part1:01/10/12 15:24 ID:2WUE5QsI
#!/usr/bin/perl

use DBI;
use strict;
use CGI qw(-no_debug);
use Date::Calc qw(Today Add_Delta_Days);

#パスの設定
my $nkf = '/usr/local/bin/nkf';

#オブジェクトの生成
my $q = new CGI;
my $msg = $q->param('msg');
#出力文字コードの設定
open HTML, "|$nkf -e";
select(HTML);
$|=1;

122 :part1:01/10/12 15:25 ID:2WUE5QsI
#!/usr/bin/perl

use DBI;
use strict;
use CGI qw(-no_debug);
use Date::Calc qw(Today Add_Delta_Days);

#パスの設定
my $nkf = '/usr/local/bin/nkf';

123 :part2:01/10/12 15:25 ID:2WUE5QsI
#html表示
print $q->header(-expire=>'now');
print $q->start_html(-title=>'bbs',-bgcolor=>'#DDDDDD');
print "掲示版";
print $q->hr;
print $q->start_form(-method=>'POST',-action=>'./bbs2.cgi');
print $q->textarea(-name=>'msg',
-rows=>3,
-column=>16);
print "<br>\n";
print $q->submit(-name=>'submit',-value=>'送信');
print $q->end_form;

if ($msg ne '' ){

open(OUT,">> ./bbs2.dat");
print OUT "$msg<HR>\n";
close(OUT);
}

124 :part3:01/10/12 15:26 ID:2WUE5QsI

# データファイル内容を表示
open(IN,"./bbs2.dat");
print <IN>;
close(IN);

print $q->end_html;
close(HTML);

125 :名無しさん@お腹いっぱい。:01/10/12 15:27 ID:2WUE5QsI
121 123 124
の順番のソースファイルです。
ソースそのままはれるかと思ったら
"改行多すぎます"
といわれたので、分割しました。
掲示板ぐちゃぐちゃにしてごめんなさい

126 :ソースは見てないけど ^-^;:01/10/12 15:39 ID:???
投稿した後にリロードするとそうなるのはブラウザの仕様ですの
POSTに値がセットされた状態でリロードされるから
いやならLocation: ./script.cgi\n\n か
METAでほげってセッションを分けるですの

127 :名無しさん@お腹いっぱい。:01/10/12 15:39 ID:???
多重投稿を防ぐ方法のメジャーなものには
・直前のデータを読み込んで、内容を比較する
・ワンクッション置く(「無事投稿されました」のようなページを置く)
・最後にLocationで飛ばす
があります。
リロードで送信されるのを避けるにはLocationが適当でしょう。

128 :名無しさん@お腹いっぱい。:01/10/12 15:42 ID:AsTpdvqA
>>120
use DBI;

129 :120:01/10/12 16:15 ID:2WUE5QsI
良く理解できました。
ありがとうございます。
頑張ります。

130 :名無しさん@お腹いっぱい。:01/10/12 21:04 ID:YvyJWcYo
AnHttpd使ってローカル環境でCGIのチェックをしているのですが
cookieが上手くブラウザに格納されてくれません。
ひょっとして http://localhost/ だとだめなんでしょうか?

あと path、domeinって省略してもブラウザで勝手に解釈
してくれるんでしたっけ?

131 :130:01/10/12 21:10 ID:???
>>130
自己レスです。
cookie吐き出すだけのやつ試してみたらちゃんとlocalhostでも
登録されていました。どうやら他に原因があるようです。
どうもすいませんでした。

132 :名無しさん@お腹いっぱい。:01/10/13 02:00 ID:???
>あと path、domeinって省略してもブラウザで勝手に解釈
>してくれるんでしたっけ?
OK、でもDOTが2つ無いとダメだよ

133 :130:01/10/13 02:09 ID:???
cookie登録されない理由わかりました。
HTTP::C\ookiesの

scalar( $cookie_ja->as_string );

で取り出した expires の書式が

Mon, 31, Dec 2001 20:00:00 GMT
じゃなくて
2001-12-31 22:00:00Z

になっていたのが原因でした(なぜにこの書式?)。

>>132
DOT2つというのはどういうことでしょう?

134 :名無しさん@お腹いっぱい。:01/10/13 02:16 ID:???
>>132
DOT2つってHTTP::Cookies使うときでしょ!
おれもハマッたことあるよー。やっぱlocalhostでした。
あれはナニ?Cookieにそんな制限あるんですか?

135 :名無しさん@お腹いっぱい。:01/10/13 02:21 ID:???
ここのドメインの所読んでみて、僕も英語がプアだから
セキュリティ確保なんだけど、実は1つでも良いんだよなあ・・・
http://www.netscape.com/newsref/std/cookie_spec.html

136 :名無しさん@お腹いっぱい。 :01/10/13 02:23 ID:???
DOT2つってこれじゃなくて? -> .

137 :名無しさん@お腹いっぱい。:01/10/13 02:23 ID:???
うわヤな言い方だ
s/僕も/僕は/ (-_-)

138 :134:01/10/13 02:48 ID:Deyy6KfQ
>>135
おお。さんきゅ。セキュリティかー。

139 :名無しさん@お腹いっぱい。:01/10/13 03:34 ID:qXCBod/U
またまたcookieについてです。今作っているのが

ローカルマシン
 ↓
CGI( LWP::UserAgent、HTTP::Cookies使用 )
 ↓
目的のサイト

という中継ツールなのですが、「目的のサイト」のcookieを
ローカルマシンに保存することはできました。
しかしそれを「目的のサイト」側から読ませることができません。

具体的には以下のようにやっています。
----------------------------------
$ua = LWP::UserAgent->new;
$ck = HTTP::Cookies->new;
$hd = HTTP::Headers->new;
$req= HTTP::Request->new( 'GET', 'http://www.hoehoe.com/' );

### ブラウザの cookie情報をドメインを書き換えて登録
foreach $ckey ( keys %COOKIES ){
  $ck->set_cookie( , $key, $COOKIES{$key}, '/', '.hoehoe.com', , , ,60*60*24*365*10 );
}

$ck->add_cookie_header( $req );
$ua->cookie_jar( $ck );

$res = $ua->request( $req );
$ck->extract_cookies( $res );
----------------------------------

ドメイン名を書き換えて HTTP::UserAgent に登録って出来るのでしょうか?

140 :名無しさん@お腹いっぱい。:01/10/13 06:40 ID:bzY0j0uY
すみません。
カウンターなんですけど、
ソースにはちゃんと出てるのに
画像が表示されないのはなぜですか?

<img src="cgi-bin4/ecount.cgi?6"width="6" height="13">

こんな感じで設置してるのですけど。

141 :名無しさん@お腹いっぱい。:01/10/13 07:48 ID:???
>140
まず基本的なこととして、カウンターのURLを直接入力してちゃんと表示されるか確認してみよう。
それで表示されたら単なるURLの指定ミス。
表示されなかったらスクリプトの問題。
スクリプトのソースを公開したまへ。

142 :140:01/10/13 08:49 ID:bzY0j0uY
>>141
わざわざ有難う御座いますです。
ログファイルのパス:OK!
ログファイルのパーミッション:OK!
画像:./gif/0.gif → OK!
画像:./gif/1.gif → OK!
画像:./gif/2.gif → OK!
画像:./gif/3.gif → OK!
画像:./gif/4.gif → OK!
画像:./gif/5.gif → OK!
画像:./gif/6.gif → OK!
画像:./gif/7.gif → OK!
画像:./gif/8.gif → OK!
画像:./gif/9.gif → OK!
ロック形式:symlink
ロックディレクトリのパス:OK!
ロックディレクトリのパーミッション:OK!

ちゃんとOKでてるのになぜか画像表示されない・・・

143 :名無しさん@お腹いっぱい。:01/10/13 08:52 ID:???
>142
そうじゃなくて。
http;//xxxxxxxx.com/cgi-bin4/ecount.cgi?6
でカウンターは表示されるの?

144 :140:01/10/13 09:01 ID:bzY0j0uY
>>143
はい。画像はちゃんと表示されました。

145 :名無しさん@お腹いっぱい。:01/10/13 09:07 ID:???
>144
じゃあ、ソース公開きぼん。
ソースを見ないと画像の表示されない理由はわからないよ。
Content-typeが間違ってるとかじゃないの?

146 :140:01/10/13 09:23 ID:bzY0j0uY
ttp://www.kent-web.com/count/ecount.html?

kentのecountなんですけど。。

open(IMG,"$imgdir$view$tail") || &error;
print "Content-type: image\/$mime\n\n";
binmode(IMG);
binmode(STDOUT);
print <IMG>;
close(IMG);

こんな感じなんですが間違っているのかどうか
さっぱり分かりませんです。

147 :名無しさん@お腹いっぱい。:01/10/13 10:04 ID:???
http;//xxxxxxxx.com/cgi-bin4/ecount.cgi?6

で画像が表示されるなら

<img src="cgi-bin4/ecount.cgi?6"width="6" height="13">

が間違ってるんだろ。

148 :名無しさん@お腹いっぱい。:01/10/13 10:35 ID:???
>147
そうだ。
ちょっと眠かったからボケてしまった。
スマソ。>140

149 : :01/10/13 11:50 ID:???


150 :139:01/10/13 14:33 ID:qXCBod/U
>>139

$ck->set_cookie( , $key, $COOKIES{$key}, '/', '.hoehoe.com', , , ,60*60*24*365*10 );

↑でドメイン、パスを書き換えて UserAgentに cookieを登録することは
出来ましたが、目的のサーバーからは見えないようです。

HTTP::UserAgentって自分の $ENV{'HTTP_COOKIE'} を持つことは
できないのですか?

151 :名無しさん@お腹いっぱい。:01/10/13 14:51 ID:???
Cで全ての環境変数を表示させることはできますか?
getenv()をどう使ったら全部表示させられるか教えてください。

152 :名無しさん@お腹いっぱい。:01/10/13 15:01 ID:c5AddB8U
>>151
int main(int argc, char **argv, char **envp) {以下略

あとはenvpから取得。つーのを愛用してます。

153 :名無しさん@お腹いっぱい。:01/10/13 15:15 ID:???
>>151
main() の第3引数を使え。
getenv() は特定の環境変数だけだろ。

154 :名無しさん@お腹いっぱい。:01/10/13 17:16 ID:???
ネットに存在するアーカイブ内のファイルが抽出できるCGIってないですかね?
melt.cgi/www.hoge.net/hoge.lzh/readme.htm

とするとhoge.lzh内のreadme.htmが表示できるみたいな奴。

155 :名無しさん@お腹いっぱい。:01/10/13 17:33 ID:???
>>154
このスレに書いたということは、そのやり方を教えてくれという事か?
とりあえずLWPでアーカイブを取ってきて
適当なモジュールなり外部プログラムなりで展開して
目的の文書を探す、という感じだと思うが。
まぁ非効率的だな。

156 :名無しさん@お腹いっぱい。:01/10/13 17:51 ID:???
サーバ上のアーカイブと直にデータがやり取りできる
プロトコルって、あったら便利かもなー。
そういうのがあれば、>>154みたいなCGIも効率的に書けそう。

157 :151:01/10/13 17:53 ID:???
>>152-153
ありがとうございます。
main関数って引数があったんですね(^_^;てっきりvoid型かと・・・・

158 :JAPU@見知らぬ国のトリッパー ◆dcddJAPU :01/10/13 18:06 ID:???
extern char **environ;
ってのもあるな。

何種類かのUNIXで調べたけど、全部であったからそれなりに移植性はありそう。
(FreeBSD, OSF1, Linux)

159 :名無しさん@お腹いっぱい。:01/10/13 18:16 ID:???
>>158
environてのはANSIの規格にないんでしたっけ?
main()の第3引数はたしか(char**)型で環境変数が入るって
規定されてようなおぼろげな記憶。。。

160 :JAPU@見知らぬ国のトリッパー ◆dcddJAPU :01/10/13 19:20 ID:???
多分ANSIでは無かったような...

とりあえずこんなの発見。
http://cgi3.tky.3web.ne.jp/~yutakakn/misc/tips/clang/page1.html

161 :名無しさん@お腹いっぱい。:01/10/13 21:34 ID:nMwqY5mo
スクロールバーの色を変えるのってどうやるの?

162 :名無しさん@お腹いっぱい。:01/10/13 21:36 ID:???
>>161
こちらへどうぞ。
http://natto.2ch.net/hp/

163 :名無しさん@お腹いっぱい。:01/10/13 23:26 ID:AeCpTnbA
アンケートを取るCGIを作っています。
現在のデータ形式は↓こんなのです。(本当はタブ区切りです)

めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田

このままだと見づらいので、

3<>めろん<>山田<>田中<>鈴木
2<>すいか<>山田<>鈴木
2<>ぶどう<>鈴木<>竹下
1<>いちご<>田中
1<>ぱいん<>山田
1<>りんご<>鈴木

こんな風にデータをコンバートして重複部分をまとめたいんです。
ソートを使えばいいのかなと思ったんですが、アイデアが浮かびません。。
「こうすりゃいいだろゴルァ」という方法があったらご教授下さい。

164 :素人的見解:01/10/13 23:40 ID:???
めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田

↑これが@dataに入っているとして

foreach(@data){
$_ =~ s/\n//;
@mini = split(/<>/);
$count{"$mini[0]"} ++;
$touhyou{"$mini[0]"} .= "<>$mini[1]";
}
foreach(sort{$count{"$a"} => $count{"$b"}} keys %count){
push(@save_data,qq($count{"$_"}<>$_$touhyou{"$_"}\n);
}

もっと効率いい方法はあると思う・・・。

165 :名無しさん@お腹いっぱい。:01/10/13 23:59 ID:???
#!/usr/bin/perl
use constant SEPARATE => qq(<>);
use strict;
my %data = ();
while(<DATA>){
chomp;
my($hoge, $fuga) = split SEPARATE;
push @{$data{$hoge}}, $fuga;
}

# 試しに出力
foreach (
sort{ @{$data{$b} } <=> @{$data{$a}} } keys %data
){
print "$_=>", join(",", @{$data{$_}}), "\n";
}
__DATA__
めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田

166 :163:01/10/14 00:39 ID:???
>>164-165
上手くいきました!
これを参考にして、自分なりに改良していきたいと思います。
ありがとうございました。

167 :名無しさん@お腹いっぱい。:01/10/14 00:42 ID:???
@data = qw[
めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田
];

# 作業
foreach(@data) { # 集計
next if /^#/;
($item,$name) = split /<>/;
$count{$item}[0]++;
push(@{$count{$item}}, $name);
}

@save_data = # 配列に保存
map { join('<>', @{$count{$_}})."\n" }
sort { $count{$b}[0] <=> $count{$a}[0] }
keys %count;

# テスト出力
foreach( @save_data ) {
print;
}

__END__

168 :167:01/10/14 00:43 ID:???
あら,解決してたか。

169 :166:01/10/14 00:59 ID:l01Ytp8Q
>>167-168
ありがとうございます。
ソートが苦手なのでとても参考になります。

170 :ほげっぷ:01/10/15 00:16 ID:???
WinでもUnixでもいいんですが,
ブラウザからでたGETやらPUTやらのメッセージを
生で見たいんですけど,いいツールありませんか?

171 :まじで言ってるの?:01/10/15 00:34 ID:???
ネタ?
print $ENV{QUERY_STRING}; GET
print $OUT = <STDIN>; POST
PUTと言うMethodは知らない、勘違いしてたらスマソ

172 :名無しさん@お腹いっぱい。:01/10/15 00:38 ID:???
HTTPヘッダが見たいとか・・・。

173 :名無しさん@お腹いっぱい。:01/10/15 00:44 ID:???
>>171
リクエストヘッダをそのまま返すようなHTTPDを書くとか。
スマートな方法は知らん。

174 :名無しさん@お腹いっぱい。:01/10/15 00:44 ID:???
>>170だった。スマソ

175 :名無しさん@お腹いっぱい。:01/10/15 00:46 ID:???
telnet

176 :名無しさん@お腹いっぱい。:01/10/15 00:46 ID:???
Etherealとかでパケットキャプチャする

177 :171:01/10/15 00:51 ID:???
>>172
ああ、そゆ意味なんかなぁ
http://ebi.2ch.net/test/read.cgi/php/995136198/l50
丁度良いスレが有った
オミトロンか横取り丸辺りで見れるよ、Regetとかでも過激にリダイレクト
されなきゃOK
質問の意味がわかんないの・・・

178 :名無しさん@お腹いっぱい。:01/10/15 01:18 ID:???
IEやNetscapeが実際にどんなデータを送ってるのか見たくて
ローカルサーバを作ってアクセスしてみたのっておれだけ?
サーバつってもPerlのHTTP::Daemonで10行ぐらいのやつだけど・・・。

179 :電動ナナシ:01/10/15 01:32 ID:???
>>171
PUT Method はあるぞ。WebDAV だと必須。
Configuring your WWW server to understand the PUT method
http://www.w3.org/Amaya/User/Put.html

180 :171:01/10/15 01:44 ID:???
(; ・∀・)ドヒャー 知らなかったよぅ
さんくす>>電動ナナシさん
つーかGET,HEAD,POST,PUT...等って、、まだ有るノカー

181 :名無しさん@お腹いっぱい。 :01/10/15 02:18 ID:???
ここってみょーに素直な人多いな
何か他の(某保険板)板とかから来たら2chじゃ無いみたいで気持ち悪いよ w
もっと罵りあえや! (ウソ)
でもちょっとびっくりしたよ

182 :名無しさん@お腹いっぱい。:01/10/15 02:53 ID:???
METHODはとりあえず八種類定義されてる。
http://www.ietf.org/rfc/rfc2616.txt
とりあえず一通り目を通しておくと良いよ。

183 :182:01/10/15 02:54 ID:???
なんかおれ変な日本語。いいさ、別に。

184 :ほげっぷ:01/10/15 08:15 ID:???
ども,私はPUTとPOST間違ってました(w
結局,横取りして,ブラウザからのデータを見てみたいってのが要求で,
あんまりよく見てないけど,Proxomitron というのができそうです.

# でも,プロキシ使ってるなら,unix系のプロキシサーバでもできるのかな?

185 :名無しさん@お腹いっぱい。:01/10/15 10:40 ID:xRor1qD5
マクで恐縮ですが、jcode.plのエラーが出ます。
# /\216([\241-\337])(\216([\336\337]))?/: unmatched () in regexp.
 File ':jcode.pl'; Line 645

これはMacJPerlを使ってるから出るのでしょうか?

186 :名無しさん@お腹いっぱい。:01/10/15 17:06 ID:???
WEBページを画像として(サムネイル)保存するにはどうすればいいのでしょうか?

use ThumbnailMaker;

と記述があるスクリプトを見つけたのですが、
検索しても、ThumbnailMakerに関する情報がまったく見つかりません。

187 :名無しさん@お腹いっぱい。:01/10/15 17:23 ID:???
http://www.horae.dti.ne.jp/~tkimata/cgi/reference/Perl.htm
こんなのか
C-Board作者氏の自作モジュールなのかな?
サイトは閉鎖?されてるようだ、今色々見てるけど・・・

188 :186:01/10/15 17:32 ID:???
>>187
そうです。C-boardさんのところです。
やっぱり、ThumbnailMakerは独自のモジュールなんですかね。

189 :名無しさん@お腹いっぱい。:01/10/15 17:56 ID:???
IEコンポーネントかGeckoとかのレンダリングエンジンを使って画像に視点のかねー

190 :ほげっぷ:01/10/15 22:42 ID:???
結局,Proxomitron使わないで,
tcpdumpで生パケットキャプチャしてlessで見た(w

191 :名無しさん@お腹いっぱい。:01/10/16 00:56 ID:???
>>185
たぶんそうです。JPerlとjcode.plは共存できません。
どちらかにしてください。

192 :名無しさん@お腹いっぱい。:01/10/16 01:19 ID:???
>185
5.004以上のJPerlなら問題なく使えるらしいが,Macのは5.002ベースのが最新。

jcode.plの一番上の行か,jcodeを呼ぶ直前に
no I18N::Japanese;
で使えるらしい。
http://world.std.com/~habilis/macjperl/MacJP5.2ReadMe.j.htm

193 :名無しさん@お腹いっぱい。:01/10/16 08:23 ID:???
>>186
漏れも気になったんで調べてみた、多分189氏の言う様に
IEコンポーネントとかを使って出力したのをアップロードしてるんじゃないかな・・
Galeonなんかをちょっと嗅ぎ回ってみたんだけど、厨な漏れにはわからなかったよ
結局Xwdでスクリーンショットとかしか出来ないのか・・・
↓ここの300辺りから読んでみて
http://ebi.2ch.net/test/read.cgi/php/991313362/
役立たずスマソ

194 :名無しさん@お腹いっぱい。:01/10/16 10:06 ID:Nx0C2n2e
>>186-188
これ?
http://www.horae.dti.ne.jp/~tkimata/cgi/reference/script/

195 :名無しさん@お腹いっぱい。:01/10/16 11:42 ID:???
>>194
make.plという名前のスクリプトからThubmnailMakerを呼んでますね。
やはりこれはサーバ上で動くCGIじゃなくて、
ローカルで「サイトアクセス+キャプチャ+縮小画像作成」を
自動的に行うツール的なものじゃないかな。

196 :名無しさん@お腹いっぱい。:01/10/16 14:58 ID:OTuIl/br
flockが使えない環境で、もっとも壊れにくいロックって
どのようは方法でしょうか。
ファイルは追記だけでなく、上書きモードでもオープンします。

197 :名無しさん@お腹いっぱい。:01/10/16 15:16 ID:JPZjm6AB
>>196
やはりそれは、新しいファイルに書き出してからrename方式かなー。
ただしファイル書き込み時のシグナルトラップは必須。

ロックして上書きだと、自分自身を書き換えてる最中にプロセスが
止められたりするのが怖いかも。心配しすぎかも。かも。
とか言ってうちのカウンタは上書きモードでやってます。
カウンタ程度ならまあいいや、と。

198 :名無しさん@お腹いっぱい。:01/10/16 16:00 ID:PzN9I2Gr
CGIをEzweb対応にするにはどうすればいいんだい?
教えてくれたまへ(´ー`)y─┛~~

199 :名無しさん@お腹いっぱい。:01/10/16 16:09 ID:???
CGI(コモソゲートウェイイソターフェイス)はUAがどんなものであろうが関係ないと思うのだが。

200 :196:01/10/16 16:21 ID:OTuIl/br
>>197
ありがとうございます。
新しいファイルを作成するディレクトリのパーミッションを777に
設定していますが、新規作成すると404?になりますよね?
これを書換えが出来るようにperlでパーミッション変更できるのでしょうか。

201 :名無しさん@お腹いっぱい。:01/10/16 16:26 ID:???
実はイソヂーの対応は結構めんどいなー
その聞き方じゃ駄目っぽい気がする。。。

202 :名無しさん@お腹いっぱい。:01/10/16 16:27 ID:???
>>200
umask chmodで検索

203 :名無しさん@お腹いっぱい。:01/10/16 16:47 ID:???
>>198
面倒がらずHDMLで検索すれ(´ー`)y─┛~~ 便利なサイトはイパーイある

204 :名無しさん@お腹いっぱい。:01/10/16 19:57 ID:X5f/mGwI
激しく既出だと思うが、自分で書いたPerlのテスト方法が分かりません。
よかったらhttpd環境に合った初心者向けPerl解説ページを教えてください。

205 :名無しさん@お腹いっぱい。:01/10/16 20:08 ID:???
httpdを書かなきゃ分かんないじゃん。 w
取り合えずよっぽどマニアックなのじゃない限り、Webが有るからそこの
FAQなんかを読んで設定すれ。
ここの初心者コーナーにも少しリンクがあったかも知れん↓
http://ebi.2ch.net/test/read.cgi/php/1000267444/l50
サーバが***まともに***動くようになれば後はcgiとかplって拡張子に実行設定すればOK

206 :名無しさん@お腹いっぱい。:01/10/16 23:01 ID:???
静的htmlへのgateにcgiを使っています。
1:cgiでリクエストをパース、
2:リクエストにIf-Modified-Sinceが含まれて無ければ
  Last-Modified を返した後、Content-Locationでhtmlへ
3:リクエストにIf-Modified-Sinceが含まれていれば
  突合せをしてNot-ModifiedかContent-Locationを返す
と言った事がしたいと思っています。

が、cgi(perlスクリプト)でIf-Modified-Sinceを読む事が出来ません。
$ENV{If-Modified-Since}では無いのでしょうか?
また、3の場合出来れば差分だけを転送したい(rangeと言うヘッダが付いてくる?)のですが、
そう言う事は可能でしょうか?

何か物凄い勘違いをしてる気がするのですが、そもそもhttpdを飛び越して
cgiで Not-modified や HTTP 1.0 といったヘッダを返せるのかが分からないのです。

今rfc2616を精読中なんですが、、、

207 :名無しさん@お腹いっぱい。:01/10/16 23:13 ID:???
↑ えと、目的はとにかく転送量を減らしたいのです。
gzip版と未圧縮を用意してそれぞれに飛ばす、と言うのは一応成功しています。

見当違いな事を言ってるかもしれませんが、お願いします。

208 :名無しさん@お腹いっぱい。:01/10/16 23:46 ID:???
>>206-207
すべて可能だと思います。
RFC2616を読んでもわからない情報つーと、こんなものかな?

・If-Modified-Sinceヘッダは $ENV{HTTP_IF_MODIFIED_SINCE} という環境変数に入る。
・Apacheの介在なしにCGIの出力をそのまま返すには、nph-hoge.cgiのようなファイル名にする。

ぐらいかな?がんばってね。

209 :名無しさん@お腹いっぱい。:01/10/17 00:13 ID:???
おお!!即レス&&ど真ん中ストライクですぅ (^-^*
>>208さま 謝謝です

>・If-Modified-Sinceヘッダは $ENV{HTTP_IF_MODIFIED_SINCE} という環境変数に入る。
なるほど!、%ENVを全て吐き出してみたのですが、これは僕のSetの仕方が
悪かったと思います。Apacheに横取りされてるのかな? などと逆切れ^^
しかかっていたのでした。

>・Apacheの介在なしにCGIの出力をそのまま返すには、nph-hoge.cgiのようなファイル名にする。
これも疑問だったんです、No Parse Headers ですか、なるほど!
この辺はApacheの設定とも関わりが有りそうですね。

何とか見通しが立ちました、相当な亀ですが追って結果報告させて
もらいます。 感謝です m(_ _)m ペコ

210 :名無:01/10/17 00:14 ID:bB7m9GMd
>>206
・Not Modified は、ヘッダの部分に `Status: 304(CRLF)' を出力すればOK。
・Range ヘッダはレジュームリクエストの際に使うもので、サーバ側から送っても意味が無い。

211 :名無しさん@お腹いっぱい。:01/10/17 00:45 ID:???
またまた感謝です >>210さま、今日はツイてる *^-^*
>・Not Modified は、ヘッダの部分に `Status: 304(CRLF)' を出力すればOK
了解です、nphでは全てのHTTPヘッダをスクリプトから送信出来るんですね、
僕が入っているレンタルサーバで利用出来る事が分かりました。

>・Range ヘッダはレジュームリクエストの際に使うもので、サーバ側から送っても意味が無い。
これに付いては少し困ってます、追記型のリンク集のような物なのですが
htmlの閉じタグ部分(</body></html>)がある為に、もろにリジュ-ムされると
タグがどんどん重複して行くと考えました、それでわざとタグ分を差し引いて
そこからDLして貰えないかと思いました。
HTMLの差分と言うのがあまり一般的では無いのかなぁ・・・・

まずは2616をよく読んでNot-modifiedに挑戦しようと思います。
ありがとうございます。 m(_ _)m ペコ

212 :名無しさん@お腹いっぱい。:01/10/17 07:46 ID:???
>>211
"Statas: 304\n\n" で返すときは、逆にnphにしたらまずいです。

一般的に、nphの使用はあまり勧められていません。
それは、リクエストのHTTPのバージョンに合せて、「完全な」
レスポンスヘッダを出力しなければならず、とても面倒だからです。
Not Modifiedの時は、普通のCGIで
print "Statas: 304\n\n";
これだけ。
後のことはWebサーバに任せておけばいい。

213 :雑談スレからお引っ越し:01/10/17 10:02 ID:NS90rX+W
微妙に板違いかもしれんけど質問させてくれ。
getメソッドで投稿受け付けるWebチャット作ったんだけど、
特定環境(マク+IE,マク+ネスケ6)から投稿すると、「二重投稿になる」
て言われてるんすよ。んで、ログ確認すると、同一時刻に同一
リクエストを2個受け付けてるのね。
対症療法として二重投稿禁止をすればいいんだけど、
こんな現象他に聞いたことある?もしかしてガイシュツだったら
回線切って首吊って(以下略 から、その前にもし知ってたら
教えておくれやす。

214 :雑談スレからお引っ越し:01/10/17 10:05 ID:NS90rX+W
続き。
実験完了。被験者に串使わずに生IPでテストしてもらったっす。Apacheのログ見ると、
全く同一のGETメソッドを使用したリクエストが1秒間隔で2回きてるっす。
本人曰くsubmitボタン1回しか押してないそうなんだけど。
なおMacOS8.6 Mozilla0.9.4、0.9.5、IE5、iCab2.5.3 だそうで。
Cyberdog2.0とNC4.7は二重投稿にならないそうデス。
まあ、気になるのは、前者は標準でHTTP 1.1を使ってることなんだけど、
IEでHTTP1.0使ってテストしてもらってもやっぱり二重投稿になってたし。

一応吐き出すHTMLには
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
付けてるんだがのぉ。正直お手上げっす。マクなんて持ってないしな・・・

やはりPOSTに変更したほうがいいんだろか。
ちなみに上フレーム→発言表示 下フレーム→投稿フォームで、
発言表示と投稿は同一CGIを異なるパラメータで叩いている、という
やり方っす。とりあえずWinでは大丈夫なんだがなー

引き続き、被験者(藁 に、ローカルでリクエストとレスポンスを
ロギングしてくれ、と依頼中。先は長いかな。

215 :雑談スレからお引っ越し:01/10/17 10:10 ID:NS90rX+W
鯖書き忘れた。WebARENAのApache1.3.20でつ。
Winな人からは全然二重投稿になるって報告きいてないんだよなー、頭いたい。

216 :名無しさん@お腹いっぱい。:01/10/17 10:10 ID:???
自動リロードとかその辺?
よくわかんないけど。

217 :216:01/10/17 10:11 ID:???
ていうか初心者は帰ります。
おもしろそうだから成り行きは見守らせていただきます。

218 :雑談スレからお引っ越し:01/10/17 10:22 ID:Di+gGr3E
ふっと板を見回してみると総合質問スレってないのね。まあいいや。
なんかWeb制作板で聞いても板違いと言われそうなんだけど
(かといってここもどうかと思うけど)、
ブラウザがリロードする時のキャッシュの使い方(レスポンス
ヘッダを正しく解釈するのかどうか)について言及したページとか
ないかな。「このブラウザは正しく実装されてないよ」とか。

自動リロードはねー、表示部のHTML吐き出す時に表示するためのCGI叩くURL
を10秒間隔でRefreshするようMETAタグ埋め込んであるんですよ。
投稿して即時にログファイルには反映されるけど、表示部のリロードタイミング
は投稿受付とは非同期でつ。

219 :名無しさん@お腹いっぱい。:01/10/17 10:37 ID:???
つーか、IEにしても、Mozillaにしても
GETするたびに二重にリクエスト送ってるとしたら大問題なってるはず。
絶対ほかに原因がある。ソース出す気は無いの?

220 :294:01/10/17 10:43 ID:dyqQWczJ
ソースは出しますヨ。ただ、ちょっと今外からなので今晩にでもこちらに出します。

221 :名無しさん@お腹いっぱい。:01/10/17 11:42 ID:DEbR16BG
はじめまして。
Web更新用CGI(複数ファイルアップロード型)を設置しようとしているものです。
(いまいるとこはFTPが使えないサーバ・・・←激つかえねー;;)

いくつかサーチエンジンで拾ってみたんですが(日本語CGIインデックスと
BestなんとかってCGI専門エンジン)、「セキュリティ保護のため
認められないコマンドがあります」と出て全滅。

何が引っかかるんでしょうか・・・。
(今までCGI設置して動かしたことはまったくありません(ゆ○チャ
触ったぐらい)

222 :名無しさん@お腹いっぱい。:01/10/17 15:43 ID:???
>>214
>全く同一のGETメソッドを
REMOTE_ADDRも同一??

取り合えず、カウンター書いてその人にそこ見て貰えば?
多分それでも2重になる筈だけど、、
もしそれでもならなかったらMacが怪しいって事になるね
フォームボタン実装のバグとか  (笑

>やはりPOSTに変更したほうがいいんだろか。
逆にGETで書く意味を知り鯛んだけども、
基本的にaccess_logが無駄に大きくなるし
access_log見れる人なら誰でも発言をデコード出来るんだよ
改造って程でも無いし、モジュール使ってもいいし

まず小さいの書いて試す事を薦めるなあ

223 :初心者@真性厨房:01/10/17 17:16 ID:fkYQZcMH
CGIでリンク先のURLを隠すのってどうやるんですか?

224 :名無しさん@お腹いっぱい。:01/10/17 17:19 ID:???
>>223
マルチポストうざい。

☆ Webサイト制作初心者用スレッドver11 ☆
http://natto.2ch.net/test/read.cgi/hp/1002699258/236

225 :名無しさん@お腹いっぱい。:01/10/17 17:22 ID:I56AAFP7
>>221
OSのコマンドを直に呼んだりしてるかモナー。
sysetm("mkdir ...") とか `mkdir ...` とか。
詳細はソースを見ないとわからない。

226 :名無しさん@お腹いっぱい。:01/10/17 17:59 ID:???
>>221
サーバ管理者に聞くのが一番速い。

てゆーか「FTPが使えないサーバ」ってブラウザでアップする為の
機能が用意されているんだろ?
何でわざわざ自分で設置するの?

227 :294:01/10/17 20:13 ID:oPPxmXO4
>>222
REMOTE_ADDRも同一です(確認ずみ)
GETで書いたのは、単に作成の際UIを参考にしたチャット(今は消滅)が
GET使ってたので真似しただけで、あまり何も考えていないといえばいないです。
ソースは少し待ってちょ。まだ家に帰りついてないので・・・

228 :294あらためYOSSIE:01/10/17 21:44 ID:???
ソース公開します。
http://home.att.ne.jp/gold/yossie/
の"attchat.cgiのソース"にアプしておきました。

229 :YOSSIE:01/10/17 22:31 ID:???
早速指摘が。
<BODY>要素の中に<META>タグ記述してました。ガクーリ。タコですね。
ただいま修正中....

230 :YOSSIE:01/10/17 23:07 ID:???
とりあえず、229に書いた不具合を修正して、もっぺんマク使いの人に
実験手伝ってもらいましたが、やはり改善しません。
POSTメソッドで投稿するバージョンも作ろうっと・・・

231 :つーか。。。:01/10/17 23:30 ID:???
METHODを明示してないのは良いの?
全然解らんけど色んなUAに対応するならshallは良いとして
mustは守った方が良いと思うんだけど。。
後actionがcgi?n=hogehoge← これは名前?だと思うんだけど
これ下にフォームが有るから要らないのでは?
良く読んでないけど、どうもフォームの記述に問題有る気がした。

232 :タコな294:01/10/17 23:44 ID:???
>>231
そうですね。言われて気付きました。METHODがないや・・・
n=hogehogeもいらないッスね。修正シマス

233 :211:01/10/18 00:10 ID:???
>>212  ありがとう御座います。
>それは、リクエストのHTTPのバージョンに合せて、「完全な」
>レスポンスヘッダを出力しなければならず、とても面倒だからです。
はい、良く考えたらHTTPの仕様を殆ど知らない訳で (^ ^;)
そんな状態で変な応答を垂れ流しちゃうのも考え物ですね。
前に絶対パスを得るのにモジュールを使ったりして、半泣きになったんですが
その時もApacheって凄いなぁ、とつくづく思い知らされました。

今、Statas: 304\n\n を返す様にしてNot-modifiedは何とか上手く行きました。
後は差分読みが出来るかを色々考えてます、折角だからnphにしてブラウザ位には
正しいヘッダを返せる位理解したいなと思ってます。

皆さんのお陰で、何も分からない状態から色々勉強出来ましたです。 大感謝!!

234 :タコな294:01/10/18 00:22 ID:???
恥ずかしいのでsage進行継続で。
フォーム関係若干修正シマシタ。これで少しはマシになったのかな・・・?

235 :悲惨な294:01/10/18 00:35 ID:???
そして修正しましたが、Mac + IEとかMozillaとかでの二回リクエスト
は直っていないのでした。ご報告まで...

236 :名無しさん@お腹いっぱい。:01/10/18 00:38 ID:???
当方マクなので,アドレス教えてくれれば少しは実験できるよ。
iCabとIEだけど。

237 :名無しさん@お腹いっぱい。 :01/10/18 00:55 ID:???
協力してあげたいけど、WINなんで駄目だ  w
上の方の人も言ってるけど、俺もpostを進めるよ
何がウザイってhttpdのログが膨れるんすよ、エスケープされてるから
あ(2バイト)が%82%A0(6バイト)になる、これかなり凶悪
次から鯖缶にマークされると言う(以下略)
つー事でメソッド変えて
$inputの所こんな感じにすれば、簡単に両対応になるから一応書いとく

if ($ENV{'REQUEST_METHOD'} eq 'GET'){
    $input = $ENV{'QUERY_STRING'};
}elsif ($ENV{'REQUEST_METHOD'} eq 'POST'){
    ###まず標準入力から読み込み
    read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
    ###お尻にQUERYを足す
    $input .= "\&$ENV{'QUERY_STRING'}";

俺はGETは大嫌いだけど  w
しかし不思議だね、がんばってくれ

238 :名無しさん@お腹いっぱい。:01/10/18 00:56 ID:QwckH/0y
くだらない質問なんですが
コメント文って動作のスピードに関係することってありますか?
例えば同じカウンターとかでもコメントがたくさん入っているカウンターと
コメントのまったく入ってない同じプログラムのカウンターとかでは
やはり微妙にコメントのある方とかが重くなったりしますか?

239 :名無しさん@お腹いっぱい。:01/10/18 00:56 ID:???
あ、、、閉じかっこが無くなった

240 :名無しさん@お腹いっぱい。:01/10/18 01:11 ID:???
そりゃ関係するだろ (笑
計測したいならtimeとかuse Benchmarkするよろし

241 :JAPU ◆JAPUTeX. :01/10/18 01:27 ID:???
>>231
METHOD の値を明示しないときは GET です。

>>238
コメントの有無で変化する速度を気にするくらいなら、アセンブラで書かなくちゃダメだよ。(笑)

242 :悲惨な294:01/10/18 01:39 ID:???
みなさんありがとうございます
>>237
確かにログ膨れますね。うちは毎日未圧縮状態で8MBです・・・<ログ
POST使って再構築もしてみますわ・・・

>>236
今、テスト用環境を
http://rakugaki.on.arena.ne.jp/cgi-bin/chat/test/attchat.cgi?m=c
においてます。よろしくおねがいします。

243 :むぎ茶      :01/10/18 02:03 ID:???


> 確かにログ膨れますね。うちは毎日未圧縮状態で8MBです・・・<ログ
> POST使って再構築もしてみますわ・・・


(´-`).。oO( わざわざアクセスログなんか取るなよ ..... )


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
┃mugicha@360.cc  ┃
┗━━━━━━━━━┛

244 : :01/10/18 03:44 ID:2/jyRhv/
拡張子を.logにしてもログファイルが見られない掲示板あるよね?
見れるようにするにはどうすればいいの?

245 :名無しさん@お腹いっぱい。:01/10/18 10:26 ID:???
>>244
アクセス可能な場所に置いて、
読めるパーミッション付けて、
.htaccess等でアクセス禁止しない。

246 :天災君:01/10/18 13:23 ID:5HREq8s2
ここから転載 http://ebi.2ch.net/test/read.cgi/php/1003373274/

>1 名前:ななし 01/10/18 11:47 ID:OtMJtvPi
>画像への直リンクを防ぐ方法はありますか?
>直リンクされまくって困っています…

あります。回答は↓以下。つことで皆さんフォローよろしこ。

247 :名無しさん@お腹いっぱい。:01/10/18 13:29 ID:???
.htaccessスレのほうが良かない?>直リン禁止ネタ

248 :名無しさん@お腹いっぱい。:01/10/18 13:36 ID:???
過去ログ/スレ読め。

--------------直リンネタ終了--------------

249 :名無しさん@お腹いっぱい。:01/10/18 15:09 ID:???
Webのフォーム画面からメールを配信するプログラムを作成しています。
配信先の人数が3000人ほどいるのですが、これを一人一人に対して
sendmailをたたく(CGIからわたす)のは負荷が高くてとてもできません。
こういった大人数を対象にメールを送るプログラムってありますか?

250 :悲惨な294:01/10/18 15:11 ID:qcfy9XST
なんとなく可能性が見えてきました。
IE4/5はMETAタグによるPragma: no-cacheは、SSL接続の場合のみクライアント
側にキャッシュしない動作をする(しかも、本来HTTP/1.0ではPragma: no-cache
はリクエストコンテキストでの動作のみが定義されており、レスポンス
コンテキストでの動作は未定義である)
IE4/5はMETAタグによるcache-control:no-cacheは無視される。

というわけで今晩あたり、METAタグではなくレスポンスヘッダにキャッシュを
無効にするような対応をとって実験してみます。

251 :悲惨な294:01/10/18 15:20 ID:qcfy9XST
追加:IE4/5と書きましたが、正確には、IE5で、METAタグのHTTP-EQUIV属性
を使用したキャッシュコントロールを行わないように仕様が変更されたそうです。

252 :名無しさん@お腹いっぱい。:01/10/18 15:21 ID:???
>>250
がんばれー。なにも手助けできないけど、このスレ見守ってます。

253 :名無しさん@お腹いっぱい。:01/10/18 15:22 ID:5HREq8s2
>>249
情報が足りなすぎ。
OSはUnix系かWindowsか。Webサーバはなに。
自由にソフトがインストールできる自鯖なのか、
CGI程度しか使えないプロバイダのおまけスペースなんか。

254 :249:01/10/18 15:30 ID:???
>>253
失礼しました。
OSはLinuxです。WebサーバーはApacheで私がrootになれる
環境です。もちろんソフトはなんでもインストールできます。

255 :名無しさん@お腹いっぱい。:01/10/18 16:03 ID:???
全部 To: にカンマ区切りで並べれば?(藁

256 :221:01/10/18 16:03 ID:w9ApYg4f
221です。
>>226
もちろん、システムがわにファイルアップシステムはあります。
かなり高機能なものなんですが(GMW−Managerみたい、ダウンロードもできる)、
ファイルが「ひとつづつしか」UPできないんです。毎回毎回30ファイルづつぐら
いアップ(上書きあり)するのでうっとおしくて。
FTP無理でもCGIなら使えるから、自分で設置してやろうと、こういうわけなんです。
>>225
なるほど・・・確かに「ディレクトリ作成」「ディレクトリ削除」ができるもの
でした。<ダメだったもの

257 :名無しさん@お腹いっぱい。:01/10/18 16:08 ID:???
>>254
とっくに検討済みなんだろうけど、FML(http://www.fml.org/)とかの
メーリングリストサーバを入れて利用するのはだめなんですか?

258 :名無しさん@お腹いっぱい。:01/10/18 16:13 ID:???
>>256
鯖のOSは何?ていうかどこのレンタル?
どこで配布している何て言うスクリプト?
これさえ書けば全部解決だろうに・・・。

259 :名無しさん@お腹いっぱい。:01/10/18 16:14 ID:???
>>256
mkdirはたんなる一例として書いただけで、それより
system関数とかバッククォートがあると拒否されるんじゃないか
ということなんすが。どっちにしてもサーバ管理者に聞くのがいちばん。

260 :221:01/10/18 18:21 ID:w9ApYg4f
サポートないです(死)>サーバ
聞こうにもどこに聞いていいんだか・・・(^^;
鯖はここです>ttp://puresilk.ac/
鯖のOSは・・・どこにも記述ないです・・・。
おみとろんで見ればOK?(汗)(今手元にないのですが)

ダメだったスクリプトは
http://www22.big.or.jp/~toybox/note/ktool/
http://homepage1.nifty.com/~heppoko/lib/main.html へっぽこCGI
。。。と、URLどこだったっけ。。。seraph.org・・・すみません、たくさん
試したはいいが控えが・・・。
セラフさん作の「GMW-Manager」というものですが。

しかしこれってシステムから見たら「けしからん」になるのかも・・・(汗)

もう一箇所見つけていたんですがどこだったか(まだ試していない)

261 :221:01/10/18 18:24 ID:w9ApYg4f
GMW-Managerはここでした http://seraph.mistyhill.org/

262 :221:01/10/18 18:33 ID:w9ApYg4f
サポートないところをなんで、と思われるでしょうから注釈、
もとい弁解(アイタタ・・・)

CGIを設置するつもりがなかったからです。

CGI以外のことでは、サポートはすでにいらない人だったので・・・。

263 :221:01/10/18 18:36 ID:w9ApYg4f
何でサポートないところに!と思われるでしょうから注釈もとい
弁解(アイタタタタ・・・)

CGIを設置する気(必要性)がなかったからです。

それ以外だったらサポートはすでにいらなかったので選んだ・・・んですが
まさかここまでアイタタな状況になるとは・・・。

264 :名無しさん@お腹いっぱい。:01/10/18 19:00 ID:???
括弧が多すぎ

265 :名無しさん@お腹いっぱい。:01/10/18 19:20 ID:???
↑ つまんねーレスすなアホ!!
>>263
つーかオマエがアタタタなの
どんな設定してどんなエラー出るのかちゃんと書けよ、別の板で自分で改造する
とか言ってたけど、そんなんで出来んのか?

取り合えずktoolっての見てみたけどシステムコールしてないから
どのサーバでも動く可能性が高い。
ただ、もし「セキュリティ保護のため認められないコマンドがあります」←
これがサーバのエラーメッセージ(スクリプトじゃ無く)でktoolを使ってこの
エラーが出るなら、perlの特定関数(readdirとか)も殺されてる可能性が有る。
一般的に、そこまでする所は勿論システムコールもさせてくれない事が多い
つまりKTOOLを使って駄目ならかなり絶望的って事

266 :名無しさん@お腹いっぱい。:01/10/18 19:26 ID:???
>>265 が 一番痛い。

267 :名無しさん@お腹いっぱい。:01/10/18 19:48 ID:???
>265に補足すると
具体的に何と言うスクリプトのどう言う動作が出来なくて
どんなエラーが出るのか、だと思うよ。
勿論属性他がちゃんと設定出来てる事が前提、がんばってね。

268 :221:01/10/18 20:52 ID:???
なんか発言ダブルポスト・・・鬱だな。
最近ネット調子悪くて・・・(汗)

>>266
別の板?
・・は、ともかくとして、そんなの無謀としか思いませんけど。<自己改造
所詮厨房ですから(死亡)

>>267
設置自体ができない状態です。
Web用ファイルではなくて、CGIファイルのアップ自体ができない状態な
のです。・・・ほかのものが大丈夫ということは、つまり・・・・
「そんなもん使うな」ってことでしょうね・・。

・・・他いくのが吉かも。
ありがとうございました、逝ってきます。

269 :$unknown:01/10/18 21:45 ID:1KyR3Lr1
http://www.geocities.co.jp/SiliconValley/1460/cgi/dd.txt
ぁ(謎)

270 :悲惨な294:01/10/18 22:12 ID:???
えーと、とりあえずHTTPレスポンスヘッダに
Cache-Control: no-cache
Pragma: no-cache
を付加するように修正してテストに付き合ってもらったんですけど、
やはりダメでした。
一応Proxomitronで確認してみたら、確かにレスポンスに上記二つの
ヘッダ付加されていましたが。
色々検索したみたんですが、IE5だと、レスポンスヘッダでキャッシュを
禁止しても、結局ローカルにキャッシュしてしまう(メモリキャッシュ?)
のか、うまくいきません。

271 :悲惨な294:01/10/18 22:14 ID:???
で、キャッシュの話とは別に、同一URLに対してリクエスト再発行
した時に、マク+特定ブラウザの環境だと、同時にキャッシュからも
リクエスト発行しているのかなー・・・? 環境もないし、途中まで
調べたんですけど、よくわかりません。
とりあえず今後の対策としては、確実な方策として
・直前のログと比較して書き込み抑制
・POSTメソッドに変更
の二本立てで週末にでも取り組んでみたいと思います。

272 :悲惨な294:01/10/18 22:22 ID:???
参考文献
[HOWTO] Internet Explorer でキャッシュを無効にする
http://www.microsoft.com/japan/support/kb/articles/JP234/0/67.HTM
Hypertext Transfer Protocol -- HTTP/1.1(邦訳)
http://way.direct.ne.jp/HTTP/rfc2616_ja/rfc2616_ja.html
"Pragma: No-cache" タグを使用してもページがキャッシュされる。
http://www.microsoft.com/JAPAN/support/kb/articles/JP222/0/64.HTM?LN=JA&SD=S
週刊コンピュータネットワーク 50号
http://www.melma.com/mag/13/m00000213/a00000043.html
IEで、キャッシュを無効にするには?
http://tohoho.wakusei.ne.jp/lng/g200005/00050096.htm

273 :名無しさん@お腹いっぱい。:01/10/19 12:50 ID:0zjdPKGm
管理人以外で、
拡張子を.logにしてもログファイルが見られない掲示板あるよね?
見れるようにするにはどうすればいいの?

274 :名無しさん@お腹いっぱい。:01/10/19 12:55 ID:???
>>244-245

275 :273:01/10/19 13:25 ID:0zjdPKGm
そういうふうになっている掲示板のログファイルが見たいんです。ちなみに、私は管理人ではありません。

276 :名無しさん@お腹いっぱい。:01/10/19 13:31 ID:???
>275
管理人でもないのにログが見たいなんて、パスワードでも盗みたいの?

277 :名無しさん@お腹いっぱい。:01/10/19 13:36 ID:y4jf7d/d
CGIから、CGIを実行しているサーバ上のファイルを
書き換えたいのですがエラーになってしまいます。
Win2000+IIS5で、CGIはC:\Inetpub\cgi-binにあるPerlスクリプト、
書き換えたいファイルはC:\Program Files\dummy\testにあります。
どの辺に問題があるのでしょうか?ご助言願います。

278 :名無しさん@お腹いっぱい。:01/10/19 13:43 ID:???
>>273
先ずPerlとUNIX勉強しろ。最近はPCも廉いし2ndPC位楽勝でしょ。
それが嫌ならデュアルにでもしてみろ。
そうすれば、お前さんの質問の程度と結論位はすぐ分かるさ。

まだアレだったら答える余地も有るのに…なんだかね(藁

279 :ちたん(ぴーたーぱそしょうこうぐん:01/10/19 14:16 ID:???
お絵描きしぃ板にペイントとかの画像貼り付けられるってきいたんだけど
どうするの?

280 :武彦 吉田:01/10/19 15:40 ID:2hGpSWy8
cgiを勉強したいんですけど、お勧めサイトを教えてください

281 :名無しさん@お腹いっぱい。:01/10/19 15:44 ID:???
>>280 死ね。

282 :名無しさん@お腹いっぱい。:01/10/19 16:05 ID:???
>>278
意味がわからないのは俺がIIS知らないから?
PerlとUNIXがわかれば問題が解決するって、
IISってそういうもんなの??

283 :名無しさん@お腹いっぱい。:01/10/19 17:43 ID:???
>>282
激しく話がかみ合ってません。

284 :名無しさん@お腹いっぱい。:01/10/19 20:09 ID:???
>>277 スペースがはいってるからとかじゃない?あてずっぽだけど

285 :名無しさん@お腹いっぱい。:01/10/19 20:21 ID:???
>277
ありがちなパターン。
×$file = "C:\Program Files\dummy\test";
○$file = "C:\\Program Files\\dummy\\test";
○$file = 'C:\Program Files\dummy\test';

286 :悲惨な294:01/10/19 20:54 ID:UB1nBewH
投稿にGETを使う自作Webチャットで、MacOS8.6 with iCab, mozilla or IEで二重投稿
になっていた問題で、HTTPレスポンスヘッダに"Expires: -1"を追加することで、
IE,iCabで二重投稿が解消したとの報告を受けました(mozillaは解消せず)
しかし、更に改善のため、投稿にPOSTを使用するよう改造して試してみるつもり
っす。結果がでたらまた報告します。

287 :名無しさん@お腹いっぱい。:01/10/19 21:12 ID:OBTzMGjn
>>286
なるほどぅ。やっぱキャッシュの問題なのか。
ローカルキャッシュにデータを残させない方法が
ブラウザごとにばらばらなのが諸悪の根源というか。
>>272の参考文献によると、IE5では
Cache-control: no-cache
Expires: -1
の2つを吐けばキャッシュされないんですよね。
IE4やネスケやmozillaだと、そのへんどうなってんの?
あとRFCではどう決められてるんでしたっけ。

288 :名無しさん@お腹いっぱい。:01/10/19 21:44 ID:O4d9Rk3g
CGI呼び出し元のファイルの、実際のPATHってわかりますか?
http://localhost/test.htmlから呼び出されたCGIなら
「c:\inetpub\wwwroot\test.html」のような

289 :名無しさん@お腹いっぱい。:01/10/19 21:49 ID:O4d9Rk3g
>>288 目的は、CGIの呼び出し元のHTMLファイルを
書き換えたいのです

290 :名無しさん@お腹いっぱい。:01/10/19 22:07 ID:OBTzMGjn
>>288
Apacheなら$ENV{SCRIPT_FILENAME}見るのは?

291 :290:01/10/19 22:07 ID:???
>>290
勘違いスマソ

292 :名無しさん@お腹いっぱい。:01/10/19 22:21 ID:???
>>288
$_ = リファラ;
s#http://localhost/#c:\\inetpub\\wwwroot\\#;
s#~(\w+)/#home\\$1\\#;
とか。

293 :悲惨な294:01/10/19 22:30 ID:???
>>287
当方では今のところレスポンスヘッダに
Expires: -1
Cache-control: no-cache
Pragma: no-cache
を含めています。ほんとはCache-control: no-cache,must-revalidateと
したほうがよいかも。
具体的なブラウザの振る舞いについては調査不足でわかりません。
(mozillaはソース読める人ならどうなってるのかわかるかも)

RFCではレスポンスがキャッシュ可能になるのは、
GETもPOSTも、適切なCache-controlかExpiresを指定された時のみ
である、と書いてありますね。しかしUser-Agentが、そのような
キャッシングメカニズムとは別のものを使うことは禁止していません。
http://way.direct.ne.jp/HTTP/rfc2616_ja/sec13.html#sec13
参照)
つーわけで、根本的には、リクエストラインに投稿内容が入る
GETを使うからこういうトラブルに遭遇する可能性が高まるのかなー、
という気がしてきました。POSTにかえよ(しつこい)

294 :名無しさん@お腹いっぱい。:01/10/19 22:33 ID:???
locationで飛ばすのとかは?

295 :悲惨な294:01/10/19 22:41 ID:???
>>294
同一URIへのリダイレクトってOKなんでしょうか?
(とか聞いてる間に実験しろと言われそうだ)

296 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 00:32 ID:???
279に答えろ
うんち

297 :名無しさん@お腹いっぱい。:01/10/20 00:34 ID:???
わかんないよぉ、何かモジュール使うって事かなー >>279

298 :名無しさん@お腹いっぱい。:01/10/20 00:37 ID:???
>>296
とりあえず氏ね。話はそれからだ。

299 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 00:45 ID:???
(・∀・)マリガトー
ぜんぜんわからんけど>>297

>>298
なんだとぉ
あの世で俺にわび続けろ
298ーーーーーーーーーーッ!!!

300 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 00:51 ID:???
300げっと

301 :名無しさん@お腹いっぱい。:01/10/20 00:57 ID:???
>>ちたん

うざい。半角板に帰れ。

302 :名無しさん@お腹いっぱい。:01/10/20 01:04 ID:???
半角のコテハンかよ... (´Д`;)アゥアゥ

303 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 01:20 ID:???
>>301
ちげえええええええええええ!!!!!!
FFDQ板のだよ!!!!!!!!!!!

304 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 01:21 ID:???
302も

305 :名無しさん@お腹いっぱい。:01/10/20 01:21 ID:???
どちらにせよ帰れ。

306 :名無しさん@お腹いっぱい。:01/10/20 01:24 ID:???
誰か知ってる奴は居ないのかよ
お絵かきってJavaアーカイブの奴だろ、アレにペイントの画像を貼り付ける?俺は全然解らん

307 :名無しさん@お腹いっぱい。:01/10/20 03:19 ID:???
http://www.botan.sakura.ne.jp/~wcs/

308 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 05:57 ID:???
ペーストできねーよ

309 :名無しさん@お腹いっぱい。:01/10/20 06:57 ID:???
>>295
規格は知らんが,自分で試してみた限りでは特に問題無かった。

>>279 >296 >308
使い方わからんのなら作者のとことかで聞きなよ。
掲示板ならともかく,アプレットは板違い。

310 :名無しさん@お腹いっぱい。:01/10/20 10:06 ID:???
>>279 >>296 >>308
私は自分で解析してVBで貼り付けるソフト作ったYO!

311 :悲惨な294:01/10/20 13:01 ID:???
やはりWebチャットのマク+IEその他で二重書き込みになる件、
投稿時のリクエストメソッドをGETからPOSTに変更したら
二重投稿が解消されたみたいです。やっと解決。
やはり素直にPOSTを使いましょう、ということでした。

312 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 14:17 ID:???
>>310
うpしてくりぃぃ

313 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 14:17 ID:???
CANNALDUKEつかってんだけどさァ
オそーい遅い遅い遅い遅い!!速度もっと上げる方法無い?

314 :名無しさん@お腹いっぱい。:01/10/20 14:25 ID:???
いいからさっさと帰りなよ。

315 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 14:33 ID:???
なんで?????
俺一応これでもWEB系の板には
1年前からいるってのにぃィィィ

316 :名無しさん@お腹いっぱい。:01/10/20 14:39 ID:???
>315
1年いるならわかるだろ。
カエレ

317 :ちたん(ぴーたーぱそしょうこうぐん:01/10/20 14:51 ID:???
おしえてもらったらかえる
おせーて

318 :a:01/10/20 15:17 ID:CbOnzDxp
ログファイルの中身をまとめて一気に表示させたいんだけど
うまくいきません。
open(LOG, ">>$logfile") || die "開けません.";
flock(LOG,2);
$log_all = <LOG>;
$log_all = $data;
print LOG "$log_all\n";
close(LOG);
flock(LOG,8);

print "$log_all";

これを実行すると$dataで入力された部分しか表示されません。
全部表示するにはどのようにすれば良いのでしょうか。

319 :名無しさん@お腹いっぱい。:01/10/20 15:21 ID:???
ん?
初心者の俺が見てもおかしいのが分かる…。

$log_all = $data;
ってしてるんだから
print "$log_all";
で$dataが表示されるのも当たり前じゃないの?

320 :319:01/10/20 15:26 ID:???
初心者なりの考えで。。

open(LOG, ">> $logfile") || die "開けません.";
flock(LOG,2);
print LOG "$data\n";
flock(LOG,8);
close(LOG);

open(READ,"< $logfile")
flock(READ, 2);
$log_all = <READ>;
flock(READ, 8);
close(READ);

print "$log_all";

識者の方々、どうでしょうか?

321 :名無しさん@お腹いっぱい。:01/10/20 15:37 ID:???
素直なスクリプトだね。
一つだけ。
$log_all = <READ>;
では最初の行しか入らないよ。
@log_all = <READ>; と配列に入れるか。
undef $/; して置く必要がある。

あとは、
flock 解除する必要は無い、closeだけでいい。
読み込みモードで開いたんなら flock(READ, 1) で十分。
って感じかな。
前者については逆に解除するとまずい理由があるんだけどパス。

ただ、open2回は効率が悪い。
+< で開いてopen一回で済ませる方法も考えてみるといいかも。

322 :318ではないですが:01/10/20 17:29 ID:hnM1JpJW
ただ単にファイルの中身を全て表示したいのですが
どうすればいいっすか?

323 :名無しさん@お腹いっぱい。:01/10/20 17:35 ID:???
過去ログを読めばいいっす。

324 :318ではないですが:01/10/20 17:43 ID:hnM1JpJW
旧スレにいくとそんなスレないっていわれました

325 :名無しさん@お腹いっぱい。:01/10/20 17:53 ID:???
>324
HTML化してるだけやん。見れたよ。
Perlなら,とほほに書いてあること一通り読んで。

326 :319:01/10/20 18:01 ID:???
>>321
なるほど…。
というわけで、出直して参りました。
+<に関する情報が思いの外少なくて苦労しました。
ラマ本には載ってないし…。

open(LOG, "+< $logfile") || die "開けません.";
flock(LOG,2);
print LOG "$data\n";
@log_all = <LOG>;
close(LOG);

foreach(0 .. $#log_all){
print "$log_all[$_]\n";
}

ていうか俺は318じゃないのに良いんだろうか?(笑

327 :名無しさん@お腹いっぱい。:01/10/20 18:49 ID:???
>>326
ん、その+<は試してから書いた?
あとforeachは
foreach (@log_all) { print "$_\n" }
だけでいいような。

328 :gorn:01/10/20 18:59 ID:m+yOgEsu
サーバーレンタルしてるんだけど
そことは、ショッピングバスケット使っちゃいけない契約(体言止め)
負荷の問題らしいけど、あんまり掲示板と変わんないよね
それで、文句を言われてもBBSとMailとCountの複合技ですっと言い張れる感じに仕上がる
ショッピングシステムを思案中です
なんかいいアイディア無いですか?
あと、そこのサーバはLinuxなんですけど
MySQLがインストールされているんです
アナウンスされてないけど
勝手に使っていいんでしょうかね

329 :319:01/10/20 19:45 ID:???
>>327
試したらドえらいことに…。
+>>、seekについては、とりあえず意味も分からず
ソースだけ盗んで動くようになりました。
これから勉強してみます。
foreachについては恥ずかしい限りです…。

$logfile = "log";
$data = "hogehoge";
open(LOG, "+>> $logfile");
print LOG "$data\n";
seek(LOG,0,0);
@log_all = <LOG>;
close(LOG);

foreach(@log_all){
print "$_\n";
}

ていうか、スレ違い気味なので今回のは終了にします。
続きがあったらPerl初心者スレでやります。
ありがとうございました。

>>318
なんか横取りみたいでスマソ。

330 :悲惨な294:01/10/20 21:42 ID:???
これで一旦解決と思ったら、またUser-Agent依存の挙動が発見
されました。
PocketIEはレスポンスヘッダに不可した
Refresh; n,URL=ほげほげ
を解釈できないかもしれないです。iPAQユーザから「全くリロード
しなくなった」と報告をうけました。つーことは<META>タグで
埋め込んでやらないと自動リロードしないのかー。

331 :悲惨な294:01/10/20 21:42 ID:???
不可→付加の、まちがいです。

332 :名無しさん@お腹いっぱい。:01/10/21 00:22 ID:???
iPAQまで面倒見てるのか  ヽ(´ー`)ノ
頑張ってくれ。うちはIE4以降onWIN以外無視だからなあ。。

333 :名無しさん@お腹いっぱい。:01/10/21 02:11 ID:FKLL3OSG
みなさんこんばんわ
僕もCGIというのをおぼえようとおもっているのですが
自作のCGiをおける大手プロバイダでおすすめはどこになりますか
ホントはADSLに変えたいのですが高いです
スレちがいですか プロバイダ板はyahoo関係に占領されてたのですが。。。
ちなみにいまはdionのこみこみ20じかんこーすでmacOS9.02です
りゅうこうはPHPをおぼえればイケイケらしいのですが
大手プロバイダでのサポートは少ないらしく
またいかんせんmacOSXでないとダメだそうです
webでざいなーを目指す第いっぽなので
どうかよろしくおねがいします。。。

334 :名無しさん@お腹いっぱい。:01/10/21 02:32 ID:???
とりあえず漢字ぐらい変換できるようになれ。
とりあえず適当な本買って、基礎知識手に入れてからにしな。
あと、デザイナー目指すならデザイン勉強したほうがいいよ。

335 :333:01/10/21 03:57 ID:gzw1ipZQ
すみません。333です。
企業はデザインだけ出来る人よりも、オールマイティーな人材を求めている
と聞いたので、サーバーサイドの基礎知識を少し身に付けたいのです。
デザインはflashやdreamweaverなどで
コードはhtml、javascriptなんかをやりだしたくらいなのですが
CGIのアクセスログなんかを自分で創りたくてウズウズしてます。
だって、そっちの方が面白そうだもの。
自分はどちらかというと面白そうなことなら、まず、実際にやりながら、
参考書片手に勉強というのでなければ続かないたちなので
とりあえず簡単に自作のCGIを動かせる大手プロバイダで
「動いた!」という感動を向上心につなげようと思ってます。
でも、本屋に売ってる本で具体的に初心者におすすめのプロバイダとか
そういう話は当然のってないんですよね。
かなりスレ違いのような気もするので、簡単に
「僕くらいなら当面biglobeで十分ですか?」
「大手のADSLサービスで自作CGIオーケーなとこってあるんですか?」
今はレンタルサーバーとかは考えてません
下の方の質問はここでするのはかなり勇気入りましたです。
とりあえず、上だけでもよろしくお願いします。

336 :名無しさん@お腹いっぱい。 :01/10/21 04:08 ID:???
>>335
とりあえず、自分のPCで動かしてみれば?

337 :名無しさん@お腹いっぱい。:01/10/21 04:10 ID:???
>>333
http://127.0.0.1/

338 :名無しさん@お腹いっぱい。:01/10/21 04:21 ID:???
biglobeってどんなだっけ? w
君はこうしてネットに繋げてる訳だろ?
取り合えずJavaとperlはネットに吐き気がする位ドキュメントが転がってる
まずはGoogleに行きなさい、分からない事が有ったらGoogleにキーワードを入れるだけで
関数一つに至るまで、これでもかという位ヒットする、しかもその結果は重み順に並べられている
ここで聞くといつ答えが有るか解らんだろ?、Googleに行けば1秒で望みのWebがヒットする
馬鹿にされることも無いし、ヒットしたWebは他の目的でもとても有用な事が多い
試しに「無料」「サーバー」「cgi」で検索してみてくれ。

339 :名無しさん@お腹いっぱい。:01/10/21 05:11 ID:???
>>335
>オールマイティーな人材を求めていると聞いたので
聞いた?君はそれを確かめたの?
本当に企業はオールマイティーな人材を求めているの?
実際分業が進んでるところでは、デザイナーには
完全にデザインしかやらせないとこもあるんだよ。
入社したい企業があるのなら、そこに直接電話して
「将来お前のところで働きたいんだけど、どんなデザイナーほしい?」
ぐらい訊く根性見せてくれよ。
ま、Webデザイナーにサーバーサイドの知識があったらあったで
便利なんで適当に勉強してくれや。確かに面白いし。
ただし、器用貧乏にならないようにな。
勉強する程度ならbiglobe(あれdionじゃないの?)でも十分だ。

とにかく、自分で判断・確認しなよ。
他人の言うことを鵜呑みにするな。俺の言うこともな。

340 :名無しさん@お腹いっぱい。:01/10/21 08:16 ID:???
ファイルアップロードに付いてですが、
例えばform multi/part で1MBのファイルをアップロードしたとすると
ファイルが完全にアップロードされてから、STDINとApacheとのストリームが結びつく
んでしょうか。それともバッファ分に分割されて順次STDINに入ってくるんでしょうか
後、どこかでpostメソッドの上限は128kbと書かれてたんですが、これはmulti/partの
場合には当て嵌まりませんか? 下らない事ですが、FTPと比べてメモリを大量に消費する
様なら良くないかと気になってしまって、、

341 :333:01/10/21 09:44 ID:WcdX3zQj
>>336>>338>>339
助言ありがとうございます。
とりあえず、自作CGIオーケーのbiglobeにでものりかえて実際に勉強しようと
思います。
>ただし、器用貧乏にならないようにな。
あぁ、たしかにそういうこともありがちかもしれませんねぇ。
よく、覚えておきたいです。みなさんありがとうございました。

342 :名無しさん@お腹いっぱい。:01/10/21 18:00 ID:???
$logfile = "data";
open(FH, "$logfile");
@log = <FH>;
foreach $all (@log) {
print $all;
}
close(IN);

とうのを作ったのですがブラウザ上に表示するにはどうすればいいのでしょうか?

343 :名無しさん@お腹いっぱい。:01/10/21 18:08 ID:???
print "Content-type: text/html\n\n";



close(FH);

344 :名無しさん@お腹いっぱい。:01/10/21 19:22 ID:???
>343
どこにprint "Content-type: text/html\n\n";を入れるんですか?

345 :名無しさん@お腹いっぱい。:01/10/21 19:26 ID:???
>344
http://tohoho.wakusei.ne.jp/www.htm
まずここで基本から勉強して来た方がいいよ。

http://tohoho.wakusei.ne.jp/wwwcgi6.htm
ここにはWinでCGIのテストをする方法も載ってる。
くれぐれもWebサーバー上でテストはしないでくれ。

346 :名無しさん@お腹いっぱい。:01/10/21 19:27 ID:???
やったね! ^o^)ノ~~~

347 :名無しさん@お腹いっぱい。:01/10/21 19:27 ID:???
はやく教えてくださいっ!!!

348 :名無しさん@お腹いっぱい。:01/10/23 01:24 ID:???
>>347
何をよ?

349 :名無しさん@お腹いっぱい。:01/10/24 03:04 ID:K36o4fv/
無限世代で返信できる掲示板を作っているのですが
後ちょっとのところで出来ません
スレにつき一個のログ作ってますんで
openしたらあとはそれを並び替えるて書き込むだけなんですが
ちゃんと並んでくれません(書き込み時に並べる方針をとってます)
ログにはその記事のナンバーと返信元のナンバーなどが記録されています
どうか教えてください

350 :名無しさん@お腹いっぱい。:01/10/24 03:19 ID:???
>>349
@ary = (0..20);
@ary1 = sort {$a <=> $b} @ary;
@ary2 = sort @ary;

@ary1と@ary2の違いはわかってるよな?

351 :名無しさん@お腹いっぱい。:01/10/24 17:33 ID:uoazam2k
一対一で会話中は他の人に見られなくて
客が言葉を教えられるような
人口無能チャットありませんか?

352 :名無しさん@お腹いっぱい。:01/10/24 17:37 ID:???
>>347 は人口無能

353 :名無しさん@お腹いっぱい。:01/10/24 17:40 ID:???
>351
板違いだよ
探してくくれる板に行け

354 :名無しさん@お腹いっぱい。:01/10/24 17:47 ID:???
>板違いだよ

スレ違いだろ

355 :名無しさん@お腹いっぱい。:01/10/26 00:39 ID:6VKZEJwr
IEだと化けないのですが、Netscapeだと化けてしまいます。
HTMLが間違っているのかと思い、NNで保存して、それを
読ませると問題ありません。

試しに

print "Content-Type: text/html\n\n";
print "<html><head></head><body>\n";
print "ほえほえ\n";

だけやってみました EUC、SJISどちらも化けます。

どうも昔から NNは CGIの出力だと化けるように思えるのですが…。

356 :名無しさん@お腹いっぱい。:01/10/26 00:47 ID:???
>355
METAタグで文字コードを指定したら?

357 :名無しさん@お腹いっぱい。:01/10/26 00:49 ID:???
テキストファイルの一番上にデータを保存するにはどうしたらいいんでしょうか。
下のやりかたで出来そうなんですが、あまりきれいじゃないので・・・。

open(IN, $datafile);
my @alldata = <IN>;
close(IN);

unshift(@alldata, $newdata);

open(OUT, ">$datafile");
foreach(@alldata){print OUT;}
close(OUT);

358 :名無しさん@お腹いっぱい。:01/10/26 00:51 ID:6VKZEJwr
>>356
もちろんそれも試しました。

<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01//EN">
<META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=Shift_JIS>

ブラウザでキャラセット変更してもダメなのです。(TДT)

359 :名無しさん@お腹いっぱい。:01/10/26 00:54 ID:???
>357
追記保存にしてreverseするってのが一般的かな?

360 :名無しさん@お腹いっぱい。:01/10/26 02:23 ID:wndpF29s
>>355
使ってるサーバどこ

361 :名無しさん@お腹いっぱい。:01/10/26 08:49 ID:???
>>358
print "Content-Type: text/html; charset=Shift_JIS\n\n";

362 :名無しさん@お腹いっぱい。:01/10/26 08:51 ID:???
>>357
print OUT @alldata;

foreach する必要なし。

363 :教えてください:01/10/26 19:13 ID:lq1ms3Dt
最近ホームページ作りを始めた超初心者です。

フォーム中のテキストフィールドにパスワードを入力して、それを
CGIプログラムに渡す時、"/cgi-bin/login.cgi&passwd=xxx"が
ブラウザのアドレスに出てきてしまいますよね。

この"passwd=xxx"の部分を、なんとか隠す方法ってないもんでしょうか?

初歩的な質問で、ホントにすみませんが、よろしくお願いします。

364 :名無しさん@お腹いっぱい。:01/10/26 19:18 ID:???
>>363
"form メソッド post"で検索してみましょう。

365 :どうも!:01/10/26 19:44 ID:lq1ms3Dt
>364 ありがとうございます。やってみます。

366 :名無しさん@お腹いっぱい。:01/10/27 18:36 ID:???
age

367 :質問させて:01/10/27 21:03 ID:7BskCaCJ
マイヤフーなんかで、ユーザIDとパスワードを入力してログイン
すると、途中で他サイトのページにいっても、そのIDとパスワードを
保持してますよねえ。これって、どんなテクニックを使ってるのだろ?

368 :名無しさん@お腹いっぱい。:01/10/27 21:10 ID:???
たぶんくっきー

369 :名無しさん@お腹いっぱい。:01/10/27 21:45 ID:???
ついでだから訊きたいんだけど、クッキーのビスケットの違いはどこにあるの?

107 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)