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

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

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

1 :名無しさん@お腹いっぱい。:2001/05/01(火) 23:37 ID:???
print "くだらねぇー質問はココから始めろや!\n";

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

2 :名無しさん@お腹いっぱい。:2001/05/01(火) 23:38 ID:???
前スレの未解決の質問をコピペ

403 名前:名無しさん 投稿日:2001/05/01(火) 19:20
CGIって、アクセスのたびにプロセスを生成して、
アクセスが増加するとオーバヘッドが大きくなるっていいますよね?
ここで、処理するCPUを複数にして分散処理させてやると、
負荷を減らすことはできるんでしょうか?
その際、別プロセスを生成しないPHPなんかと比べるとどんな感じでしょうか。

3 :名無しさん@お腹いっぱい。:2001/05/02(水) 01:07 ID:???
ここで質問して見てる人いるのかなぁ…。
最初の3つと最後の1つを除いて、<> を , に置換する正規表現は
どう書いたらいいですか?

4 :名無しさん@お腹いっぱい。:2001/05/02(水) 01:32 ID:jafDK2R2
>>1
xdsl053090.211015.metallic.ne.jp
なるほど・・・
スレたてた人のHOST名が分かるのか。初めて知った。。。

5 :1:2001/05/02(水) 01:55 ID:???
>>4
メール欄にほげほげするって方法?

6 :ブチ:2001/05/02(水) 02:05 ID:???
$_ = 'A<>B<>C<>D<>E<>F<>G<>H<>I';
print $_."\n";
@array = split(/<>/,$_);
$_ = join('<>',@array[0..3]).','.join(',',@array[4..$#array-1]).'<>'.$array[$#array];
print $_."\n";


こんな感じ?
$_ = 'A<>B<>C<>D<>E<>F<>G<>H<>I'<>;
だとちょっと違う動作するけど。

7 :名無しさん@お腹いっぱい。:2001/05/02(水) 02:11 ID:???
>>6
$_ = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
の場合は

A<>B<>C<>D,E,F,G,H,I<>

になってほしいです。

8 :名無しさん@お腹いっぱい。:2001/05/02(水) 04:07 ID:c..OqfwQ
Perlで
httpサーバを巡回して情報を集めるスクリプトを作っています。
1つのプログラムで、複数のサイトと同時にソケット通信を行う
方法教えていただけないでしょうか?
今作ったものだとソケット通信するときに終了するまで待機
してしまうため、効率が悪いのです。お願いします。

print SOCKET "GET /index.html HTTP/1.0\r\n\r\n";
while(<SOCKET>) {$d .= $_;}
close(SOCKET);
#<SOCKET>のところで待機

9 :ブチ:2001/05/02(水) 07:32 ID:???
>>7
後尾が <> になってないのでそのデータなら問題ないはず。
>>8
http://X68000.startshop.co.jp/~68user/net/index.html
の並行アクセスのことかな

10 :7:2001/05/02(水) 08:27 ID:???
>>9
語尾が <> だし

A<>B<>C<>D,E,F,G,H<>I

になっちゃうんですけど…。

11 :名無しさん@お腹いっぱい。:2001/05/02(水) 09:25 ID:???
>>3=7=10
$_ = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
$_ =~ /^([^<>]*<>[^<>]*<>[^<>]<>)(.*)(<>[^<>]*)$/;
$t1 = $1;
$t2 = $2;
$t3 = $3;
$t2 =~ s/<>/,/g;
$_ = $t1.$t2.$t3;

もっと簡単で確実な方法はないものか・・・。


>>6さんの変形で
$_ .= "\0";
@array = split(/<>/,$_);
$_ = join('<>',@array[0..3]).','.join(',',@array[4..$#array-1]).'<>'.$array[$#array];
$_ =~ s/\0$//g;
の方が確実かな?

12 :7:2001/05/02(水) 12:02 ID:???
>>11
< や > が単独で含まれるので前者はボツ。

13 :ブチ:2001/05/02(水) 12:27 ID:???
>>7 後尾が > だけだと見間違えてた。ゴメ

>>11 < と > がデータに含まれないと仮定するなら [^<>] か . 使って
先頭と後尾を待避させる >>11 の上半分のが確実だね。
それでいいと思う。訂正ありがとう。

14 :名無しさん@お腹いっぱい。:2001/05/02(水) 16:45 ID:WP2JLVuk
>>8
forkしてみるとか。

15 :名無しさん@お腹いっぱい。:2001/05/02(水) 20:32 ID:zg.ymw9.
質問です。

@string = ( 'あ','い','う','え','お',
'か','き','く','け','こ',
'さ','し','す','せ','そ',
'た','ち','つ','て','と',
'な','に','ぬ','ね','の',
'は','ひ','ふ','へ','ほ',
'ま','み','む','め','も',
'や','ゆ','よ',
'ら','り','る','れ','ろ',
'わ','を','ん',
'が','ぎ','ぐ','げ','ご',
'ざ','じ','ず','ぜ','ぞ',
'だ','ぢ','づ','で','ど',
'ば','び','ぶ','べ','ぼ',
'ぱ','ぴ','ぷ','ぺ','ぽ');

ここからランダムに五文字取り出して表示するには
どうしたらいいんですか?

16 :名無しさん@お腹いっぱい。:2001/05/02(水) 21:03 ID:MW8G6.HA
cgiとかperlとかを1から勉強するのに良い感じのホームページおしえてな。

17 :名無しさん@お腹いっぱい。:2001/05/02(水) 21:34 ID:???
>>15
srand;
print "$string[rand($#string)]$string[rand($#string)]$string[rand($#string)]$string[rand($#string)]$string[rand($#string)]";

18 :名無しさん@お腹いっぱい。:2001/05/02(水) 21:38 ID:???
>>16
http://tako.2ch.net/test/read.cgi?bbs=perl&key=972028779
こんなスレがある。
そこで自分にあうのを探してみな。

19 :16:2001/05/02(水) 21:51 ID:Ey898xBo
>>18
おー、あんがとね

20 :名無しさん@お腹いっぱい。:2001/05/02(水) 23:20 ID:CcUogTb.
>>17
多分+1しないと最後のが拾えないと思う。もしくは scalar(@string) かで。
あと int でくくっておかないと少数も拾われると思う。
ついでにループ5回にしておけばエレガントかと
for(my $i=0 ; $i < 5 ; $i++){
  print $string[int(rand($#string+1))];
}

21 :17:2001/05/02(水) 23:33 ID:???
>>20
フォローサンクス。

22 :15:2001/05/03(木) 00:18 ID:VrIHsOYc
>17、20

ありがとうございました。

23 :コブラ:2001/05/03(木) 08:39 ID:wH5A8qUQ
>>7

これじゃダメかね?

#!/usr/bin/perl

$s = 'A<>B<>C<>D<>E<>F<>G<>H<>I';
$s =~ s/(.<>.<>.<>.)<>(.)<>(.)<>(.)<>(.<>.)/$1\,$2\,$3\,$4\,$5/;
print "$s\n";
exit 0;

省略すりゃたった4行にもできる(プ
ゲスト募集 http://www.guestbook.de/yasg.cgi?X=52084

24 :コブラ:2001/05/03(木) 09:25 ID:TOMIoyvM
>>10

ムゥ〜、ならこれでどうかね?

#!/usr/bin/perl

$s = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
@q = split(/[a-zA-Z]</, $s);
if($#q == 8){
$s =~ s/(.<>.<>.<>.)<>(.)<>(.)<>(.)<>(.<>.)/$1\,$2\,$3\,$4\,$5/;
}
elsif ($#q == 9){
$s =~ s/(.<>.<>.<>.)<>(.)<>(.)<>(.)<>(.)<>(.<>)/$1\,$2\,$3\,$4\,$5\,$6/;
}
print "$s\n";
exit 0;

25 :7:2001/05/03(木) 11:32 ID:???
>>24
ネタ? ならこっちの方が短いぞ
$_ = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
$_ = 'A<>B<>C<>D,E,F,G,H,I<>';
print;

いちおうマジレスもしとくとAとかBとかCとか書いてあるのは単なる例で、
実際には <> を除く任意の長さの任意の文字列の組み合わせが入りう
る。当然1文字とも限らない。また <> の個数も7個か8個とは限らない。
だからダメ。

26 :コブラ:2001/05/03(木) 12:23 ID:TOMIoyvM
>>25

ハァ!?
一応、二行分はサービスしといたる (プ

#!/usr/bin/perl

#$s = 'A<>B<>C<>D<>E<>F<>G<>H<>I';
$s = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
$s =~ /(.+?<>.+?<>.+?<>.+?<)(.*)(.+<>)/;
#$s =~ /(.+?<>.+?<>.+?<>.+?<)(.*)(.+<>.+)/;
$h = $1; $t = $3; $d = '<'."$2"; $d =~ s/<>/\,/g; chop($h);
$a = $h.$d.$t;
print "$a\n";
exit 0;

27 :名無しさん@お腹いっぱい。:2001/05/03(木) 12:30 ID:mkvgKrag
ゆいちゃっとの表示部をHTMLにする改造方法だれかやっていないでしょうか?

28 :名無しさん@お腹いっぱい。:2001/05/03(木) 15:37 ID:???
>>24
気持ちはわかるが不要な波風は立てんでくれ。
>>26
データが空だった場合( <><> )とデータ数が変わる場合(<>の数が変化)の対応が不足していると思う。
区切り文字が<>とかある場合は大抵データ数は可変な。11 の前半で問題ないはず。

29 :28:2001/05/03(木) 15:41 ID:???
24じゃなくて25だった。逝ってくる。

30 :7:2001/05/03(木) 17:52 ID:???
>>28
マジでネタかと思ったんで煽ったつもりはなかったんだけど…
11の前半は < や > が単独で出現した場合に対応できないからダメ
だってば。
今のところ問題なさそうだったのは11の後半だけ。

31 :山田十:2001/05/03(木) 21:20 ID:9MBPUkuQ
iモードから掲示板等の更新状況(つまりWinアプリのWWWDのようなヤツ)を
チェックするツールが欲しいor作りたいんですけど、ソケット技術(知識皆無)必須ですか?
ソケットって勉強してみるべきでしょうか?

>>27
htmlにするとロムチェックができなくなるよ。
それでもいいならあると思う。

32 :コブラ:2001/05/03(木) 23:03 ID:TOMIoyvM
マッチングのみやと、ここまでが限界やな。

#!/usr/bin/perl

$s = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
$s =~ /(.*?)(<.+?[a-zA-Z])(.*?)(<.+?[a-zA-Z])(.*?)(<.+?[a-zA-Z])(.*?<)(.+[a-zA-Z])(
<.*>)/;
$a = $1; $b = $2; $c = $3; $d =$4; $e = $5; $f = $6; $g = $7;
$h = '<'.$8; $i = $9;
$h =~ s/(<>)+/\,/g;
chop($g);
$x = $a.$b.$c.$d.$e.$f.$g.$h.$i;
print "$x\n";
exit 0;

33 :名無しさん@お腹いっぱい。:2001/05/04(金) 01:06 ID:???
>>30 ほれ。

$_ = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
1 while( s/((<>.*?){3})<>(?=.*?<>)/$1,/ );
print;

つーか、なんで11で満足しないんだよ。問題ないだろ?
あと、人に物を訊く時の態度を身につけてくれ。

34 :名無しさん@お腹いっぱい。:2001/05/04(金) 01:35 ID:???
$_ = 'A<>B<>C<>D<>E<>F<>G<>H<>I<>';
s/<>(?=.*?<>)/$i++<3 ? '<>' : ',' /eg;

ほれ、>>33より速いぞ。

35 :名無しさん@お腹いっぱい。:2001/05/04(金) 03:07 ID:???
>>31
それをCGIでやりたいって事?
作るんならソケットの知識は必要だよ。
既成の物を使うんならいらないだろうけど、俺は知らない。

36 :名無しさん@お腹いっぱい。:2001/05/04(金) 03:11 ID:h.IoSR6U
厨房っぽい質問いいですか?
下のPJ2.34なんですが、自分ではどうしてもSNMPチェックができません。
項目自体が出て来ないんです。
http://gogogobaku.hypermart.net/cgi-bin/up/data/176.txt

http://vivit.freeshell.org/cgi-bin/p234.cgi
↑ここのように普通にSNMPチェックがしたいのに。
$szSNMPFile = 'snmp.txt';と入れて
&snmp_check() if( $szSNMPFile ne 'snmp.txt' );
とすればいいんですよね?
どうしたらいいか教えてください。

37 :7:2001/05/04(金) 03:42 ID:???
>>33
すみません。
つーか私は11の後半で終わりかと思ってたのにいきなり23で変なレス
付け始めたからネタかと思ったんですけど。
>>33 >>34
わーを。

38 :名無しさん@お腹いっぱい。:2001/05/04(金) 04:03 ID:SjuK53b2
http://plaza2.mbn.or.jp/~yuchika/

39 :名無しさん@お腹いっぱい。:2001/05/04(金) 06:05 ID:pso/dl7Y
先ず「手段は一つしかない」という固定観念を捨てないとな。
様々な手段がある事を知らしめる意味でも様々な意見が必要だ。
その中から、私は最善と思われる手段をパクらせて頂く (プ

40 :名無しさん@お腹いっぱい。:2001/05/04(金) 12:02 ID:9451pGWM
「,」が「&#44;」で
「&」が「&amp;」で
「"」が「&quot;」で
「<」が「&lt;」で
「>」が「&gt;」
は判ったんですが、「:」と「/」はどういうやつか教えてもらえませんか?
また、これについて詳しいページないでしょうか。

41 :名無しさん@お腹いっぱい。:2001/05/04(金) 12:06 ID:9451pGWM
めちゃくちゃになってしまいましたごめんなさい
$value =~ s/,/&#44;/g;
$value =~ s/&/&amp;/g;
$value =~ s/"/&quot;/g;
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
ときて、
$value =~ s/:/??/g;
$value =~ s/\//??/g;
??に入るのが知りたいんです。

42 :名無しさん@お腹いっぱい。:2001/05/04(金) 12:31 ID:???
>>40-41
何故実体参照が必要になる事があるのか考えた事があるのか?

43 :名無しさん@お腹いっぱい。:2001/05/04(金) 13:00 ID:???
>>40-41
ほれ。
http://www.w3.org/TR/html4/HTMLlat1.ent
http://www.w3.org/TR/html4/HTMLsymbol.ent
http://www.w3.org/TR/html4/HTMLspecial.ent

44 :名無しさん@お腹いっぱい。:2001/05/04(金) 16:49 ID:PNAoQ0rc
>>42
えと、怪しい文字は避けろとかそんな感じでしょうか。
ごめんなさいよく判ってません。
>>43
これを使えばいいんですね。ありがとうございます。
使い方勉強します。

45 :43:2001/05/05(土) 01:48 ID:???
>>44
半ば嫌がらせのつもりだったのに、そう素直にお礼を言われると罪悪感が。
ここ見るといいです。
http://www.ne.jp/asahi/minazuki/bakera/html/reference/charref

46 :初心者:2001/05/05(土) 06:12 ID:Yzwz4hOM
sub get_time{

$ENV{'TZ'} = 'JST-9';
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$day = ('日','月','火','水','木','金','土')[$wday];
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",$year+1900,$mon+1,$mday,$day,$hour,$min,$sec);

}

時間・分・秒表示をしたくない時はどれを削ればいいのでしょうか?
$sec,$minを消しただけだと日付けなどがでたらめになってしまいました。

47 :山田十:2001/05/05(土) 06:17 ID:???
sub get_time{

$ENV{'TZ'} = 'JST-9';

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

$day = ('日','月','火','水','木','金','土')[$wday];
$date = sprintf("%04d/%02d/%02d(%s)",$year+1900,$mon+1,$mday,$day,);

}

でいいと思うよ。しかしオタクくさい構文書くね。>作者の人

48 :名無しさん@お腹いっぱい。:2001/05/05(土) 06:20 ID:???
>オタクくさい構文
??

49 :46:2001/05/05(土) 06:54 ID:Yzwz4hOM
>>47山田十さん
ありがとうございました!!
答えだけ聞きたい初心者ですみません。
おかげさまで他の部分もちょっとわかった気がします。

作者はかなり前ですが旧CGI板にたまーにいらしてた方です(^^;;;

50 :名無しさん@お腹いっぱい。:2001/05/05(土) 17:08 ID:Yzwz4hOM
すみません、もう一回教えてもらえませんか。
スクリプト中の自動リンクの表示色を変えたいのですが。
どうしてもbodyのテキスト色になるらしく、それだと都合が悪い部分があって
違う色にしたいのです。autolinkが出てくる部分を抜き出してみたけど
どこを変えたら色が変わるのかわかりません。

#自動リンク(1 → on, 0 → off)
$autolink = 1;
と初期設定にあり、それ以外にautolinkが出てくるのは下だけです。
---------------------------------------------------------
if ($autolink){
$com =~ s/(https?|ftp|gopher|telnet|whois|news):\/\/([\w|\!\#\$\%\&\'\(\)\=\-\^\`\\\|\@\~\[\{\]\}\;\+\:\*\,\.\?\/]+)/<A href=\"$1:\/\/$2\">$1:\/\/$2<\/A>/g;
$com =~ s/([\w|\!\#\$\%\'\=\-\^\`\\\|\~\[\{\]\}\+\*\.\?\/]+)\@([\w|\!\#\$\%\'\(\)\=\-\^\`\\\|\~\[\{\]\}\+\*\.\?\/]+)/<A href="mailto:$1\@$2">$1\@$2<\/A>/g;
}

51 :名無しさん@お腹いっぱい。:2001/05/05(土) 17:19 ID:???
>>50
ボディタグでリンクカラーを指定してる?

52 :名無しさん@お腹いっぱい。:2001/05/05(土) 18:07 ID:???
>>50
とりあえずHTMLの勉強から始めると良いと思われ。

53 :名無しさん@お腹いっぱい。:2001/05/05(土) 20:01 ID:LWKdQI1E
ヒミコードの使い方がわかりません
<img src="himicode.cgi?$ENV{'REMOTE_PORT'}">
でいいんですか?

54 :名無しさん@お腹いっぱい。:2001/05/05(土) 20:09 ID:???
>>53
ヒミコードって何だよ?
ここはアンタの質問だけに答える場所じゃないんだ。

55 :名無しさん@お腹いっぱい。:2001/05/05(土) 20:18 ID:???
>>51-52
そうですそれです。
リンク色もテキストも全部同一色にしてるからこんがらがってました。
あたりまえですが自動リンクの色がスタイルシートのA:linkと同じ色になってしまうんですね。
この自動リンクの時だけ単独で変えられたらなーと思っていたのですがアホな質問でした。
もうちょっと基本を勉強してきます、、

56 :山田十:2001/05/05(土) 21:31 ID:???
特定のリンクの色だけでも変えれるよ。

ただ
<FONT color="#xxxxxx"><A link="xxx">hoge</A></FONT>
になるようにすればいいだけ。

もしかして
<A link="xxx"><FONT color="#xxxxxx">hoge</FONT></A>
だったかも。

57 :山田十:2001/05/05(土) 21:35 ID:???
<A link>ってなんだ・・・

確認したらところ、
<A href="xxxx"><FONT color="#000000">hoge</FONT></A>
のほうだった。スマソ。

58 :名無しさん@お腹いっぱい。:2001/05/06(日) 00:10 ID:???
スタイルシートで色変えてんだったら
.autolink { color: #xxxxxx }
<A class="autolink" href="">hoge</A>
でいいじゃん。
これ以上はWeb製作管理板逝け。

59 :名無しさん@お腹いっぱい。:2001/05/07(月) 20:33 ID:KRRI..56
foreach文で、配列の何番目の要素を処理しているのか知るにはどうすればよいでしょうか。

60 :ミ,,゚Д゚彡:2001/05/07(月) 20:59 ID:???
>>59
直接は無理だけど、カウントすれば分かるよ。

$i = 0;
foreach (@array){

#何か処理

$i++;
}

61 :名無しさん@お腹いっぱい。:2001/05/07(月) 21:32 ID:???
>>60
こういうのでもいいかな

foreach $i (0..$#array){
  $_ = $array[i];
}

62 :名無しさん@お腹いっぱい。:2001/05/07(月) 22:07 ID:CxY5LMqk
他のサーバのcgiの出力結果を取ってくるスクリプト無いでしょうか?

http://hogehoge.com/bbs.cgi?123
見たいな感じのヤツです。

63 :名無しさん@お腹いっぱい。:2001/05/07(月) 22:24 ID:???
>http://hogehoge.com/bbs.cgi?123
>見たいな感じのヤツです。

どんな感じよ。

64 :ミ,,゚Д゚彡:2001/05/07(月) 22:46 ID:???
>>62
#!/usr/bin/perl
use LWP::Simple;
getprint 'http://hoge.hoge.com/bbs.cgi?123';
__END__

65 :タコ初心者:2001/05/07(月) 23:15 ID:7eckYoL2
教えてクンになって申し訳ないですが・・・・・

自分の使っているwin98にJPerl for Win32を
インストールし(MS−DOS、C:\windows\perl -v コマンドで、
this is perl,version 5.003_07・・とメッセージ出力を確認済み)
anHTTPdも入れました。

簡単なperlスクリプトを、httpdサーバを起動させ
httpdのディレクトリ下に置いて、そのperlスクリプトを
IE5.01で確認すると、きちんとスクリプトが解釈されてブラウザに
表示されるのですが、その他のディレクトリにスクリプトを
置いた場合などの、つまりwebサーバ機能が働かない状態で
スクリプトを動かそうとしても、一瞬DOS画面が現れてすぐ消え、
ブラウザも立ち上がらず、思った通り表示されません。

perlスクリプトは、webサーバ機能が無いと
無意味なのでしょうか?
perlをwindowsにインストールしたとしても、
通常アプリケーションのように単体で動かないのでしょうか?
いろいろ調べまわったのですが、イマイチ不明なもので・・・
詳しい方、よろしくお願いしますm(_ _)m

それと、anHTTPdでCGIとして動けば、
そのスクリプトはプロバなどのUNIX上でおおむね動くと考えても
よろしいのでしょうかね?
ほんと、スイマセン。。

66 :名無しさん@お腹いっぱい。:2001/05/07(月) 23:26 ID:???
>perlをwindowsにインストールしたとしても、
>通常アプリケーションのように単体で動かないのでしょうか?
単体で動きます。
がcgiスクリプトをダブルクリックしてもブラウザは立ち上がりません。
ブラウザで見るにはWebサーバが必要です。

>UNIX上でおおむね動くと考えても
「おおむね」なら考えても宜しいかと

67 :タコ初心者:2001/05/07(月) 23:44 ID:7eckYoL2
>>66
ありがとうございます!m(^^)m(_ _)m
perlでも、例えばブラウザを使わない構造できちんと
(例→)データベースソフトを作ったりすれば、delphiや
Cで作ったものと同じように動く、
というような解釈でよろしいのでしょうか?

ホント、助かりました。
ありがとうございました!

68 :名無しさん@お腹いっぱい。:2001/05/08(火) 00:00 ID:???
>>67
"Perl"関係の本読めや
"CGI"関係の本じゃねーぞ

69 :61:2001/05/08(火) 00:21 ID:???
>>61
嘘書いちまった。
$_ = $array[i];
じゃなくて
$_ = $array[$i];
だった。

>>67
66 じゃないけどそう。実行ファイルは吐き出さないけどね。
俺はログの集計とかサイトのページ書き出すのに使ってる。

70 :59:2001/05/08(火) 01:08 ID:FOcYLUh.
>>60,61
ありがとう。
たしかにそれでわかりますね。
もっと柔軟に考えればよかった…

71 :名無しさん@お腹いっぱい。:2001/05/08(火) 10:08 ID:???
nobody(とかwww)の環境変数ってどうやって設定すればいいのでしょうか。

72 :名無しさん@お腹いっぱい。:2001/05/08(火) 11:40 ID:JEntHDFg
CGIの掲示板の設置のついての質問です。
CGI掲示板の設置を試みました。CGIのソースの始めのperlへのパスも
正確に設定しました。しかし、いざブラウザで確認すると、CGIの掲示板
の中身(ソース)が表示されてしまいます。これは、なにが原因なのでしょうか?
perlのバージョンとか関係あるのでしょうか?お願いします。。
パーミッションの設定もちゃんとできてます。。初心者ですので、
初心者にもわかるようにお願いします。。勝手ながら。。

73 :名無しさん@お腹いっぱい。:2001/05/08(火) 11:45 ID:???
>>72
そのサーバはCGI使えますか?

74 :名無しさん@お腹いっぱい。:2001/05/08(火) 12:00 ID:???
>>71
>nobody(とかwww)の環境変数
環境変数?
$ENV{REMOTE_ADDR} = 'hoge.hoge.ne.jp';
みたいな感じで変えれるよ。意味無いけど。

それともファイルの所有者?それは環境変数とは言わないよ。
変更はrootで
chown user file

それともCGIの実行ユーザ?これも環境変数とは言わないよ。
suexecならconfigureしなおしな。
ただ単にhttpdの動作ユーザ変えるだけなら、httpd.confの
User nobody
Group nobody
ってトコを変えてhttpdをrestartさせればOK。

75 :名無しさん@お腹いっぱい。:2001/05/08(火) 12:07 ID:???
>>73
Perlのパス云々と言ってるからCGIは使えるんじゃないかな?

>>72
サーバー上で見てる?
http://○○/××.cgiで。
エクスプローラーでダブルクリックしているというオチはないよね?

あとサーバーによっては拡張子.plが使えない事もある。
拡張子が.cgiになっているかも確認しよう。

できることならそのサーバーのURLくらい出してもらえると
みんな助言がしやすいと思うぞ。
個人のURLまで出さなくていいから。

76 :75:2001/05/08(火) 12:08 ID:???
追伸。
配布されている掲示板なら、配布元URLと、どの掲示板かも
教えてもらえると嬉しい。

77 :71:2001/05/08(火) 12:19 ID:???
>>74
いえ、所有者や実行ユーザではないです。

$ENV{PERL5LIB}や$ENV{PERL5OPT}などの環境変数が
予め設定されているようにしたいのですが…。
今はrequire "BEGIN{/home/hoge/config.pl";}という風にしていますが、
いちいちそんな事をしなくとも良い様にしたいのです。

78 :名無しさん@お腹いっぱい。:2001/05/08(火) 12:34 ID:JEntHDFg
サーバーでCGIが使えるかどうかを知るにはどすればいいのでしょうか?一応、perlのファイルはありました。

79 :名無しさん@お腹いっぱい。:2001/05/08(火) 12:38 ID:???
>>78 その鯖屋のFAQ見れ。

80 :名無しさん@お腹いっぱい。:2001/05/08(火) 12:40 ID:???
>>78 ここで聞かないで管理者に聞け。

適当な CGI を置いて動けば使える。動かなければ使えない。
だめなら .htaccess をいじる。.htaccess のいじり方が
わからないようならばそもそも CGI など使おうと考えるな。

81 :名無しさん@お腹いっぱい。:2001/05/08(火) 12:42 ID:???
>適当な CGI を置いて動けば使える。動かなければ使えない。

FAQ見りゃ解る事なんだから、人様の鯖で実験は止めれ。

82 :名無しさん@お腹いっぱい。:2001/05/09(水) 01:58 ID:XLZw469c
CGI の環境変数を実行前に設定したい場合
HTTP 要求ヘッダを使って設定できますか?
用は CGI を呼び出す html で
環境変数を指定できればいいのだけど

83 :名無しさん@お腹いっぱい。:2001/05/09(水) 02:27 ID:7z0rEdP2
>>82
SetEnvIfでどう?
http://httpd.apache.org/docs/mod/mod_setenvif.html#setenvif
Apacheドキュメント、モジュールによっては日本語化されてきてのね。

84 :名無しさん@お腹いっぱい。:2001/05/09(水) 10:42 ID:0Xn.6zpE
こんにちは。
Perlを使ったCGIでORACLEにアクセスするようなのを作っているのですが、
DBIモジュールでアクセスするのとOraperlでアクセスするのは、
どちらが一般的(?)なのでしょうか?

DBIだと
$hDb = DBI->connect("dbi:Oracle:ORCL", "orcl/orcl") or die "Cannot connect: " . $DBI::errstr;
$hSt = $hDb->prepare($sql);
$nRes = $hSt->execute;
while(@aRes = $hSt->fetchrow_array()) {
push(@data,"@aRes\n");
}
$hSt->finish;
$hDb->disconnect;
って感じだけど。Oraperlだと
$lda = &ora_login ( "", $ENV{'ORACLE_DBA'}, $ENV{'ORACLE_PWD'} );
以下略

構文的にはOraperl使わないほうが楽そうですが・・・
よろしくお願いします。

85 :名無しさん@お腹いっぱい。:2001/05/09(水) 15:23 ID:0Xn.6zpE
i-modeのページでで使うカウンタ兼アクセスログを作ろうと思っているのですが、
PCでアクセスしてきた場合、HTTP_REFERERでリンク元が得られますが
i-mode端末からだと取得できません。
何か特別な方法が有るのでしょうか?
ご存知の方いましたら、ご教授ください。

86 :名無しさん@お腹いっぱい。:2001/05/09(水) 17:04 ID:???
>>84-85
DBはよく知らんのでパス
i-modeはUserAgentがReferer吐いてないとかじゃないだろか。

87 :名無しさん@お腹いっぱい。:2001/05/09(水) 18:57 ID:???
>>84
DBI

#ってかoraperlってまだあったのか・・・

88 :82:2001/05/10(木) 01:58 ID:5JL.ZTMM
>>83 返事どうもありがとう
でもこれってサーバーの設定だよね?
えっと実は biglobe での cgi なんだけど
biglobe では自分の web ページからしか cgi を
呼べないことになってます
これをローカルのページからも実行したいなと
ネットスケープからだったら ftp でアップする前の
自分のローカルハードディスクのファイルを開いて cgi を
実行できてしまうのですが
IE はできないので多分 cgi の実行前に HTTP_REFERER を
チェックしてるだけかと思っています
だから html からブラウザに HTTP_REFERER を出さないように
命令?できれば良いんだけどできます?
長くなってすみませんが教えてください

89 :名無しさん@お腹いっぱい。:2001/05/10(木) 02:37 ID:???
>>88
htmlからは無理でしょう。WinユーザだったらProxomitronを
入れればHTTP_REFERERはいじれるんじゃなかったっけか。
ProxomitronについてはWindows板にスレッドが立ってると思う。

90 :名無しさん@お腹いっぱい。:2001/05/10(木) 19:56 ID:.vx/JzU2
似たような質問なのですけどよろしいでしょうか。
あるリンク先のバナーがCGIで書かれていて、イメージを呼び出すと
カウンタのようにリファラー取られてしまっているんですけど、この
イメージタグを含むリンクのページをCGIにすれば詐称することがで
きますか?
色々あってバナーを持ち帰るのはできません。
ご教授ください。

91 :90:2001/05/10(木) 20:07 ID:???
ごめんなさい。
CGI使ったところで無理そうですよね。
リンクページを全部テキストリンクだけに書き換えようと思います。

92 :Σ(゚д゚|||)デキナイ〜:2001/05/10(木) 22:17 ID:zT8kYQuc
クッキーについて教えてください。
CGIの中でクッキーを設定したいのですが、一度に2つの情報をセットするには
どうすればいいのでしょうか?(JAVAは使わないでCGIだけでやりたいです)

たとえば、A = 5000 をクッキーにいれたいときは、

print "Set-Cookie: A=5000; expires=曜日, 日付-月-年 時刻 GMT; domain=****; path=/; secure";

これはうまくいきました。

一度に2つセットしたいとき

たとえば、A = 5000 と B = 6000 を一度にいれたいときは、

print "Set-Cookie: A=5000; B=6000; expires=曜日, 日付-月-年 時刻 GMT; domain=****; path=/; secure";

としても、Aには値が入っていますが、Bには値が入っていませんでした。

どうしたら一度に複数のデータを記録できるのでしょうか?

93 :名無しさん@お腹いっぱい。:2001/05/10(木) 22:56 ID:8zuGcixU
>>92
Set-Cookieヘッダを2回出力すれば大丈夫。
print "Set-Cookie: A=5000; expires=・・・";
print "Set-Cookie: B=6000; expires=・・・";

RFCとかを見たわけじゃなくて経験則だけどね。

94 :Σ(゚д゚|||)デキナイ〜:2001/05/10(木) 23:03 ID:zT8kYQuc
>>93 さん

それでもうまくいかなかったです。
サーバの問題ということはないのでしょうか?

他に手はありませんか?

95 :Σ(゚д゚|||)デキナイ〜:2001/05/10(木) 23:17 ID:???
>>93 さん

うまくいきました!! ヘッダの最後に\nを付けわすれていました。
ありがとうございました。

96 :名無しさん@お腹いっぱい。:2001/05/11(金) 00:39 ID:???
>>94
別の方法
#--
sub set_cookie{
my %set_cookie = @_;
$set_cookie{id} ||= $Me;
$set_cookie{life} ||= 0;
my (@p,$ncs, $key, $val, $exp);
while (($key, $val) = &escape(each %{$set_cookie{cookie}})){
push(@p, $key.':'.$val);
}
$ncs = join('&', @p) or return "";
$exp = &time_fmt(gmtime((time() + $set_cookie{life} * 86400))) . " GMT" if $set_cookie{life};
$exp = $exp ? "expires=$exp" : "";
return "Set-Cookie: $set_cookie{id}=$ncs; $exp\n";
}
#Usage: &set_cookie(cookie => \$cookie, life => LIFE_DAY, id => ID);
#&escapeと&time_fmtは自分で実装してくれや
#--

値を取り出すには
#--
sub get_cookie{
my $cookie = shift || {};
my $id = shift || $Me;
foreach (split(/; /, $ENV{'HTTP_COOKIE'})) {
my ($name, $value) = split(/=/);
if ($name eq $id) {
foreach (split(/&/, $value)) {
($name, $value) = &unescape(split(/:/));
if ($name =~ /^[jJ]/){
Jcode::convert(\$value, 'euc');
}
$cookie->{$name} = $value;
}
last;
}
}
return $cookie;
}
#Usage: &get_cookie(\$cookie)
#&unescapeも同様
#--
つぶれたインデントはソース見てくれや

97 :Σ(゚д゚|||)デキナイ〜:2001/05/11(金) 04:14 ID:???
>>95 さん

有り難うございます。勉強しておきます。

98 :名無しさん@お腹いっぱい。:2001/05/11(金) 13:14 ID:K2MfodUs
簡易データベースなんですが、SDBM_Fileって
最大レコード数とかあるんでしょうか?
追加登録してるうちにファイル容量が8Mくらいで
動かなくなってるんですが、、、

99 :名無しさん@お腹いっぱい。:2001/05/11(金) 13:48 ID:???
>>98
最大レコードが有るかどうかは分からんが、
以前20000件30MBくらいのを作ったことがあるから結構大丈夫かと思われ。

1レコードの制限は1024KBくらいだったような(違ったらスマソ)

100 :98:2001/05/11(金) 13:53 ID:???
>>99
サンクスです。
1レコードは1KBって聞いた気がしますが、、、
1024KBなのかな???
調べてみます〜

101 :名無しさん@お腹いっぱい。:2001/05/11(金) 13:59 ID:???
>>100
いやレコードのサイズは桁が全然違う可能性ありです。
かなり少ないと思った記憶があるので多分1KBが正解かと(;´Д`)

102 :名無しさん@お腹いっぱい。:2001/05/11(金) 15:47 ID:???
Perlに標準でついてるDBMでSDBMより1レコードの制限緩いの
ってあるのかな??

103 :名無しさん@お腹いっぱい。:2001/05/11(金) 16:40 ID:???
>>102
ウィナーの俺にとってはSDBMだけが標準

104 :_gunzip:2001/05/11(金) 17:43 ID:???
perldoc AnyDBM_File か、
http://www.perldoc.com/perl5.6/lib/AnyDBM_File.html
が参考になると思います。

>>99
SDBM_Fileのキー、値の上限はデフォルトの状態では1kですよ〜

>>102
標準では付属されていないけれど、DB_File(高速&ブロック長制限無し)がお薦め。
http://www.sleepycat.com/かCPANから取ってきて自分でビルドするか、
ActivePerlなら ppm DB_File とするだけでOKだよ。

105 :_gunzip:2001/05/11(金) 17:45 ID:???
誤>ppm DB_File
正>ppm install DB_File
だね。すみません。

106 :99:2001/05/11(金) 18:45 ID:???
>>SDBM_File
ありゃ、よく見ればAnyDBM_Fileにもラクダ本にも書いてあった(;´Д`)<1K
スマソ98
_gunzipさんサンクスコ

107 :Σ(゚д゚|||)デキナイ〜:2001/05/11(金) 18:47 ID:???
ものすごく基本的な質問でもうしわけないのですが、以下のCGIを実行すると
一部の漢字だけ化けます。なぜでしょうか?

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "<HTML>\n<HEAD>\n<TITLE></TITLE>\n</HEAD>\n";
print "<BODY>\n";
print "うまく行くかな〜?<P>\n";
print "可能か不可能か<P>\n";
print "なんだこりゃ?ばける!化けるうぅぅ!<P>\n";
print "表示できない。<P>\n";
print "</BODY><P><BR>\n</HTML>";

実行結果-----------------------------------

うまく行くかな〜?
可狽ゥ不可狽ゥ

なんだこりゃ?ばける!化けるうぅぅ!

侮ヲできない。

-------------------------------------------

・・・・というふうに、「能」や「表示」の部分だけが化けました。
文字化けを回避するにはどうすればいいのでしょうか?

108 :_gunzip:2001/05/11(金) 18:55 ID:???
>>107
-----------
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "<HTML>\n<HEAD>\n<TITLE></TITLE>\n</HEAD>\n";
print "<BODY>\n";
print "うまく行くかな〜?<P>\n";
print "可能\か不可能\か<P>\n";
print "なんだこりゃ?ばける!化けるうぅぅ!<P>\n";
print "表\示できない。<P>\n";
print "</BODY><P><BR>\n</HTML>";
-----------
↓ここも参考に
http://www.psl.ne.jp/perl/pdojo00c.html

109 :Σ(゚д゚|||)デキナイ〜:2001/05/11(金) 19:08 ID:???
>>108さん

おおっ、即レスどうもです!
さっそくブックマークしました。
文字によって化けたり化けなかったりで困っていたところでした。

ありがとうございました。m(_ _)m

110 :名無しさん@お腹いっぱい。:2001/05/11(金) 19:28 ID:???
>>109
print "Content-type: text/html\n\n";
print "<HTML>\n<HEAD>\n<TITLE></TITLE>\n</HEAD>\n";
print "<BODY>\n";
print "うまく行くかな〜?<P>\n";
print '可能か不可能か';
print "<P>\n";
print "なんだこりゃ?ばける!化けるうぅぅ!<P>\n";
print '表示できない。';
print '<P>\n";
print "</BODY><P><BR>\n</HTML>";

こんな手もあるし

print <<'PRINT_AREA';
Content-type: text/html

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
うまく行くかな〜?<P>
可能か不可能か<P>
なんだこりゃ?ばける!化けるうぅぅ!<P>
表\示できない。<P>
</BODY><P><BR>
</HTML>
PRINT_AREA

こんな手もある。

ただし、変数を含まない事が前提だよ。
変数を含むなら\を使うのが面倒だけど間違いはない。

111 :110:2001/05/11(金) 19:29 ID:???
スマン。
上の例、一箇所タイプミスがあった。
下から2行目の「'」は「"」に置き換えてくれ。

112 :名無しさん@お腹いっぱい。:2001/05/11(金) 19:43 ID:???
EUCで書くという手も

require 'jcode.pl';
print jcode::sjis(<<EUC_STRING);
表示可能
EUC_STRING

use Jcode;
print Jcode->new(<<EUC_STRING)->sjis;
表示可能
EUC_STRING

113 :つーか:2001/05/11(金) 19:45 ID:???
尻Pはヤメレ

114 :W3C信者:2001/05/11(金) 19:58 ID:???
>>113
おまえ今いいこと言った!(゚Д゚)

115 :名無しさん@お腹いっぱい。:2001/05/13(日) 00:16 ID:YXpjZl3Y
掲示板で半角カナ文字を使いたいのですが・・。
どうしたらいいでしょうか?

116 :名無しさん@お腹いっぱい。:2001/05/13(日) 01:50 ID:KhD43/0o
>>115
jcode.plを最新版に変えろ。

117 :名無しさん@お腹いっぱい。:2001/05/13(日) 02:44 ID:mWjW2GW.
>>115
フォームのHTML、CGIの処理、CGIの出力すべてEUC-JPに統一する。
jcode.plはShift_JISの半角カナは無視するがEUC-JPの半角カナは
きちんと見分けるから。

118 :名無しさん@お腹いっぱい。:2001/05/13(日) 06:40 ID:KhD43/0o
>>115
eucを広めたいunix厨が勝手なことを言っているが、
漢ならShift_JISを断固として用いるべき。

119 :名無しさん@お腹いっぱい。:2001/05/13(日) 08:57 ID:dxsYpXBI
>>118
何でもいいけど、とりあえず、
Shift_JISでやるメリットを言ってくれ。

120 :名無しさん@お腹いっぱい。:2001/05/13(日) 10:25 ID:???
内部処理はEUCで
出力はShift_JISで
やってるよ。

121 :名無しさん@お腹いっぱい。:2001/05/13(日) 11:07 ID:wzciJvwk
>>120
それってjcode.plにとって最悪な組み合わせじゃん・・・。

122 :名無しさん@お腹いっぱい。:2001/05/13(日) 11:24 ID:???
>>121
getcode()だけ都合の良いようにチェーンナップしてあるからOK

123 :名無しさん@お腹いっぱい。:2001/05/13(日) 13:22 ID:Y0ES4yVQ
質問です。
以前あった世界幼児語化計画のように
ネット上のファイルを読み取ってCGI上で扱うにはどうしたら良いですか?

124 :JAPU:2001/05/13(日) 14:36 ID:???
LWP
http://search.cpan.org/

125 :名無しさん@お腹いっぱい。:2001/05/13(日) 14:51 ID:???
#!/usr/bin/perl -w
use LWP::Simple;
print get('http://2ch.net/');
__END__

126 :123:2001/05/13(日) 15:25 ID:kYPS1.W2
>>124,125
多謝です。
自分の考えてたことは全く違っていたので質問して良かったです^^;。

127 :名無しさん@お腹いっぱい。:2001/05/13(日) 21:58 ID:???
ログファイルに追加書き込みをする際に、ファイルの最後ではなく
先頭に追加したいのですが、どうすれば良いのでしょうか?
レベルの低い質問かもしれませんが、どなたかご教授願います。

128 :名無しさん@お腹いっぱい。:2001/05/13(日) 22:05 ID:???
「先頭に追加」は全て書き直さない限り不可能。
単にファイルポインタを先頭に戻すだけならseek()すれば良い。

129 :121:2001/05/13(日) 22:23 ID:???
>122
なるほど。そうなんかー。
おれもjcode.plのgetcodeを改造しようとしたことが
あるんだけど、結局Shift_JISで半角カナを使うのはあきらめたのさ。

130 :名無しさん@お腹いっぱい。:2001/05/13(日) 22:40 ID:nnXImtqM
2ちゃんはjcode.pl使ってないの?

131 :名無しさん@お腹いっぱい。:2001/05/13(日) 22:54 ID:???
>>130
さあ? サーバには残ってるけど。 http://corn.2ch.net/test/jcode.pl

132 :75:2001/05/13(日) 23:25 ID:???
>>127
発想の転換。
ファイルの末尾にデータを追記して、
呼び出す時にreverseかける。

133 :名無しさん@お腹いっぱい。:2001/05/13(日) 23:27 ID:???
どこかのクッキーが残ってた。
スマン。

134 :名無しさん@お腹いっぱい。:2001/05/13(日) 23:42 ID:???
jcode.pl使わなければいいじゃん…

135 :名無しさん@お腹いっぱい。:2001/05/13(日) 23:45 ID:???
>>127
ログファイルを2つ用意して、Aに書き出し→BをAの末尾につなげる→AをBにリネーム…
75氏のが普通だろうけど。
あるいは末尾に追加して、呼び出す時に後ろからn行取り出すとか…

136 :127:2001/05/14(月) 00:06 ID:???
皆さんありがとうございます。
いろいろと参考になりました。
書き込みの件は>>132さんのやり方でやってみることにします。
本当にありがとうございました。

137 :115:2001/05/14(月) 00:09 ID:GEJzHA/g
どうも>>115です。
>>116,>>117ありがとうございました。
>>118漢になることを諦めて、EUCを使いました。

138 :名無しさん@お腹いっぱい。:2001/05/14(月) 11:21 ID:ltgKBd82
掲示板に書き込みすると

"テスト書き込み"→"テスト書き込・/B>"

みたいに化けるんですが、どこが悪いんでしょうか?
教えていただきたいです

139 :名無しさん@お腹いっぱい。:2001/05/14(月) 11:46 ID:???
>>138
CGIスクリプトが悪い。

140 :名無しさん@お腹いっぱい。:2001/05/14(月) 11:48 ID:???
chopの予感

141 :名無しさん@お腹いっぱい。:2001/05/14(月) 11:49 ID:???
>>138
んなヘタレスクリプト使うなよ。

解決策:
他のCGIスクリプトに変える

142 :138:2001/05/14(月) 11:52 ID:ltgKBd82
いやぁ、
http://www.botan.sakura.ne.jp/%7Ewcs/cgi-bin/sample/note/basic/bbsnote.cgi
なんですけど、代替品が無いのでよろしくおねがいです。

143 :名無しさん@お腹いっぱい。:2001/05/14(月) 11:55 ID:???
>>138
1:それはキミが作ったスクリプトかい?
2:変なところにchopがないかい?
3:スクリプトをtxtにして公開したり出来ないかい?

答えようがないぞ。
どこが悪いと言われれば、キミの聞き方が悪い。
ちゃんとした聞き方をすればちゃんと答えてくれる人の方が多いよ。
ここはね。

144 :名無しさん@お腹いっぱい。:2001/05/14(月) 11:55 ID:???
>>142
作者に訊く。以上。

145 :143:2001/05/14(月) 12:00 ID:???
こっちが書き込んでるうちに書き込まれたか。

>>142
配布品なら>>144さんの通り、作者さんに聞いた方がいい。
作者に伝えて問題をなくしてもらったほうが他の人のためにもなる。
知識の少ないキミがやるよりも製作者当人がやったほうが問題が起きない。
キミも余計な手間が減る。
いい事尽くしな気がするけど?

146 :138:2001/05/14(月) 12:58 ID:ltgKBd82
う〜ん、とりあえず自力で頑張って駄目なら作者に聞いてみまふ

147 :Σ(゚д゚|||)デキナイ〜:2001/05/14(月) 15:04 ID:9ZSccF4Q
いつもお世話になっております。
今日は、「symlink」関数を使ったファイルロックについて質問です。m(_ _)m


$lockfile ... パーミッション707の適当なフォルダの適当なファイルを指定。
(例)$loclfile = "./tmp/file.lock";

sub file_lock {

local($retry) = 10;

# try to create symbolic link.
while (!symlink($$, $lockfile)) {
# timeout (abort)
if (--$retry <= 0) {
unlink($lockfile);
&fl_error("error on exclusion control.");
}

# wait a few second and retry.
sleep(1);
}
}

上記のサブルーチンをつかって、ファイルのロックをしてみようと思うのですが、
複数の種類の書き込みについて、上のファイルロックを使いまわしてよいのでしょうか?

例えば、

(1)掲示板のメッセージを書き込むときに &file_lock使用。
(2)アクセスカウンターの読み書き部分で &file_lock使用。
(3)ログ記録を取る際に&file_lock使用。

などのように使いまわした場合、(1)(2)(3)の処理が同時に起こったら、
$lockfileで指定したファイルが壊れることはないのでしょうか?
もしそれがダメなら、(1)(2)(3)でそれぞれ $lockfileの部分を
(1)(2)(3)で使い分ければ安全でしょうか?

148 :名無しさん@お腹いっぱい。:2001/05/14(月) 15:11 ID:???
>>147
問題は$lockfileが壊れる事よりも
(例えば)カウンターへの書き込みと同時にBBSに書き込むことで
無駄な時間を消費しなければならない点にある。
$lockfileの名前をスクリプト毎に変えるべし。

149 :Σ(゚д゚|||)デキナイ〜:2001/05/14(月) 15:18 ID:???
わかりました。
これだとリトライが発生しやすくなるということですね。
使い分けてみますm(_ _)m
助言、ありがとうございました。

150 :Σ(゚д゚|||)デキナイ〜:2001/05/14(月) 15:35 ID:9ZSccF4Q
追加質問です。こういう方法で良いでしょうか?
(さきほどのfile_lockの中身で$lockfileの部分を$_[0]にしています)

sub file_lock {

local($retry) = 10;

# try to create symbolic link.
while (!symlink($$, $_[0])) {
# timeout (abort)
if (--$retry <= 0) {
unlink($_[0]);
&fl_error("error on exclusion control.");
}

# wait a few second and retry.
sleep(1);
}
}

こうしておいてから、BBSやログやカウンター用のロックファイルを
$bbs = "./bbs.lock";
$log = "./log.lock";
$counter = "./counter.lock";
と決めておいて、
実際にファイルロックを使うときは
BBSの場合は
------------------------
&file_lock($bbs);

BBSの書き込み処理

unlink($bbs);
------------------------

ログ書きの場合は
------------------------
&file_lock($log);

LOGの書き込み処理

unlink($log);
------------------------

アクセスカウンターの場合は
------------------------
&file_lock($counter);

アクセスカウンターの読み書き処理

unlink($counter);
------------------------
という感じに使い分けてみました。こんな感じで大丈夫でしょうか?

151 :名無しさん@お腹いっぱい。:2001/05/14(月) 18:04 ID:???
>>150
待てよ…?
もしや同じスクリプト内でのカウンターやらログやらなのか?
もしそうならLockfileを分ける必要は無いと思うぞ。
違うならそれでヨシ。

しかしそれは何処から拝借したルーチンだ?
随分書き方が古臭いが…。

152 :Σ(゚д゚|||)デキナイ〜:2001/05/14(月) 20:34 ID:???
>>151 さん
このロック方式は、ここからパクってきました。↓
ttp://north.ug.to/columns/cgi_lec/cgi03.html

それと、「同じスクリプト内」での処理です。
このロック方式は、DBMのアクセス(読み書き)には
つかえるのでしょうか?
flockを使ってロックしているのですが、不安でして・・・。

153 :名無しさん@お腹いっぱい。:2001/05/14(月) 21:09 ID:???
>>152
不安なら耐久テストしてみれば良いだろ。
flockではまずいという環境があるのは事実だが、
テストもせず他人の(flockを使わない)ロックルーチンを拝借するのは
アフォであると言わざるを得ない。

154 :名無しさん@お腹いっぱい。:2001/05/14(月) 23:43 ID:???
掲示板作ってました。
日本語を含む文字列に対し、パスワードとして数文字の半角英数字を与えることで
暗号化したり複合化したりできたらカコイイと思ったのですが、いかなる方法で実現可能か、
ヒントもらえませんか。

155 :名無しさん@お腹いっぱい。:2001/05/15(火) 01:05 ID:???
NC4.xで、フォームのTEXTAREAにデータを書き込むと、32kByte
ぐらい書いたところで、書き込めなくなるのですが、これは
ブラウザ側の仕様なのでしょうか?もっと無尽蔵に書き込む
方法は有るのでしょうか。

156 :名無しさん@お腹いっぱい。:2001/05/15(火) 02:06 ID:???
>155
maxlengthをでかい数値指定してみるとか。

157 :名無しさん@お腹いっぱい。:2001/05/15(火) 03:56 ID:???
>>154
CPANの↓このあたりに暗号化・複合化のモジュールがいくつか。
http://cpan.valueclick.com/modules/by-category/14_Security_and_Encryption/Crypt/
何がどんなモジュールか全然しらないんですが。

158 :名無しさん@お腹いっぱい。:2001/05/15(火) 21:37 ID:YeE71NT2
アクセス解析設置してるんですけど、
$ENV{'REMOTE_HOST'}でホスト名が取れないサーバなので
gethostbyaddrを使ってるんですけどそれでもとれません。
どうしてでしょうか?

159 :名無しさん@お腹いっぱい。:2001/05/15(火) 22:19 ID:???
gethostbyaddrが使えないから。

160 :名無しさん@お腹いっぱい。:2001/05/16(水) 01:02 ID:???
$ENV{'REMOTE_HOST'}も取れなくてgethostbyaddr()も使えない場合、
どうすればリモートホストを取れるようになるよ?

161 :名無しさん@お腹いっぱい。:2001/05/16(水) 01:46 ID:cQQ4PmNk
>>160
サーバ管理者に土下座して「逆引きさせてくだせ〜」と頼む。
それがいやならNet::DNSモジュール等を利用して、
どこかの利用可能なDNSに問い合わせる。

162 :158:2001/05/16(水) 21:11 ID:7GWmKzdU
ほかのCGIではgethostbyaddr使えてるんで
gethostbyaddrが使えないということではないようなんですけど…
サーバ(hi-ho)がちょっと特殊らしいんですけど、それが原因なんでしょうか。

163 :JAPU:2001/05/16(水) 21:18 ID:???
>>155
Windows 95系だと32kの制限無かったっけ?
メモ帳とかもそういう制限あった気がする。

164 :名無しさん@お腹いっぱい。:2001/05/16(水) 21:21 ID:???
>>158
他のCGIはhi-hoに置いてホスト名取れてんの?
ならhi-hoのせいじゃなく、君の(CGIの)せい。

165 :158:2001/05/16(水) 22:04 ID:7GWmKzdU
>>164
>ならhi-hoのせいじゃなく、君の(CGIの)せい。
やっぱりそうですよね…
あやしいとしたら、どのあたりが考えられるでしょうか。
もう自分の力ではわけがわからないので…
ちなみにCGIはefstatです。

166 :名無しさん@お腹いっぱい。:2001/05/16(水) 22:30 ID:???
>>163
たぶん、32K制限の理由はそれですね。
NN4.06のTEXTAREAを調べたら「Editコントロール」という
旧世代の部品を使ってた。

167 :名無しさん@お腹いっぱい。:2001/05/16(水) 22:34 ID:kXzD2IvU
>>165
efstatのサポート掲示板で聞いてみたら?

168 :名無しさん@お腹いっぱい。:2001/05/17(木) 02:00 ID:VtK2bQ4Y
BBSでメール記入欄に特定のことばをかくと題名とかテキスト文字の
色を変えるCGIスクリプトだれかおしえてくれませんか?

169 :名無しさん@お腹いっぱい。:2001/05/17(木) 02:04 ID:???
>>168
マルチポスト馬鹿は氏んでください
http://tako.2ch.net/test/read.cgi?bbs=perl&key=989925275&st=14

170 :40-41:2001/05/17(木) 19:33 ID:Ts7RJcK6
>>43
超亀レスすいません。
あれからしばらくネット環境に居なかったもので。
教えて頂いてありがとうございました。

171 :155:2001/05/17(木) 22:51 ID:???
>>163,>>166
そういう事ですか。そういう仕様では仕方が無いですね。

172 :名無しさん@お腹いっぱい。:2001/05/18(金) 04:31 ID:Gh/rMrrA
掲示板にカウンターを取りつけたいと思ってます。
とりあえず、ここの
http://tohoho.wakusei.ne.jp/www.htm
この掲示板に
http://tohoho.wakusei.ne.jp/soft/wbord262/readme.htm
このカウンター
http://tohoho.wakusei.ne.jp/soft/wcnt311/readme.htm
をつけたいのですが、
<IMG SRC="wwwcount.cgi?gif" WIDTH=96 HEIGHT=18 ALT="Counter">
をwwwboard.cgiのどこに入れて良いかわかりません。
自分で考えて試してみたのですが、
自分で画像ファイルをどこかに入れたwwwboard.cgiをアップするとエラーが出てしまいます。
どうかよろしくお願いします。

173 :143:2001/05/18(金) 07:28 ID:???
>>172
中身は見てないけど、
<IMG SRC='wwwcount.cgi?gif' WIDTH=96 HEIGHT=18 ALT='Counter'>
に変えて試してみな。
ダブルクォーテーションの中ではダブルクォーテーションは使えないから。
使う方法もあるけど。

174 :173:2001/05/18(金) 07:30 ID:???
クッキー消し忘れ。
鬱。

ついでだからダブルクォーテーションを使う方法。
<IMG SRC=\"wwwcount.cgi?gif\" WIDTH=96 HEIGHT=18 ALT=\"Counter\">

175 :名無しさん@お腹いっぱい。:2001/05/18(金) 09:44 ID:???
バックスラッシュより

print qq{<img src="">};
print<<EOD;
<img src="">
EOD

の方が好きだ。

176 :173:2001/05/18(金) 13:01 ID:???
>>175
俺もその方が好き。
だけど改造もままならない>>172にはちょっと厳しいかなと思って。
もしきちんとわかってるならすまない。>>172

177 :名無しさん@お腹いっぱい。:2001/05/18(金) 21:05 ID:BJcdRv7c
>>172
wwwboard.cgiの</h2>の下あたりに入れてみたら?

178 :172:2001/05/19(土) 01:10 ID:???
>>173-177
無事解決しました。
ありがとうございました。
根本的な「""」の間は「""」が使えない、という知識が欠落してました。

179 :ルーキー:2001/05/22(火) 10:08 ID:S.XMVYxw
ド初心者&教えて君ですみません。

見積&発注cgiを書いています。

1ページ目:入力フォーム -> post
2ページ目:見積書&発注チェック -> sendmail
3ページ目:発注完了メッセージ
という構成です。

1ページ目で、希望商品と発送先などのデータを取って、

2ページ目で、それぞれの商品に発注確認のチェックボックスを設けて、
print "<input type=checkbox name=item_1 value=on>口紅\n";
print "<input type=checkbox name=item_2 value=on>マスカラ\n";
print "<input type=checkbox name=item_3 value=on>マニキュア\n<br>";

その結果を、1ページ目:入力フォームで作った
read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'});
に格納してメール送信したいと考えていますが、
2ページ目のデータを$formdataへ追加する方法が判りません。

どなたか助けてください。よろしくお願いします。

180 :名無しさん@お腹いっぱい。:2001/05/22(火) 10:30 ID:???
>>179
隠しフィールドを使って選択した商品を送信する

print qq{<input type="hidden" name="selected_item" value="$selected_item">};

181 :ルーキー:2001/05/22(火) 10:59 ID:S.XMVYxw
>>180
ありがとうございます。
しかし、イマイチ判りません。

判らないことその1
print "<input type=checkbox name=item_1 value=on>口紅\n";
print "<input type=checkbox name=item_2 value=on>マスカラ\n";
print "<input type=checkbox name=item_3 value=on>マニキュア\n<br>";
から
print qq{<input type="hidden" name="selected_item" value="$selected_item">};
へどうやって変数の引継ぎをするのか?

判らないことその2
どこに
print qq{<input type="hidden" name="selected_item" value="$selected_item">};
を置くのか?
多分、
print "<a href=$filename?$formdata\&send=sendmail>\n";
print "<font size=5>この内容で注文する</a></font>\n";
の直前かと思うのですが・・・

よろしくお願いします。

182 :名無しさん@お腹いっぱい。:2001/05/22(火) 11:24 ID:???
>>181
逆に聞きたい。
2ページ目はformデータじゃなくて、アンカータグを使いたいのかい?
だとしたら>>180さんのやり方はできないよ。

2ページ目のデータも
print qq(<form method=POST action=$filename>\n);
print "<input type=checkbox name=item_1 value=on>口紅\n";
print "<input type=checkbox name=item_2 value=on>マスカラ\n";
print "<input type=checkbox name=item_3 value=on>マニキュア\n<br>";
print qq(<input type=submit value="この内容で注文する"\n);
print qq(</form>\n);
みたいにしないとデータは送信できない。

print "<a href=$filename?$formdata\&send=sendmail>\n";
print "<font size=5>この内容で注文する</a></font>\n";
このやり方だと、チェックボックスの意味がなくならないかい?

183 :ルーキー:2001/05/22(火) 11:48 ID:S.XMVYxw
>>182
アンカータグには固執していません。
ただ、
print qq(<form method=POST action=$filename>\n);
を宣言しますと、
冒頭に、
if($QUERY{'send'} eq 'sendmail') { &sendmail; }
elsif ($QUERY{'action'} eq 'estimation') { &psge2; }
else { &page1; }
を設定してあるので、2ページ目から1ページ目に戻ってしまいます。
2ページ目でチェックボックスを選択した後は、sendmailにしたいのです。

ごめんなさい。自分でも説明になって無い気がします。
よろしくお願いします。

184 :名無しさん@お腹いっぱい。:2001/05/22(火) 12:49 ID:???
こんな感じかのー

#!/usr/bin/perl
use strict;
my @items = qw(item1 item2 item3);
my %page = (
page1 => \&start_page,
page2 => \&send_mail,
page3 => \&end_page,
}
parse_query(POST => \%q);

if($page{_stat}){
$page{_stat}->(\%q)
}else{
&error;
}

sub start_page{
&入力フォーム出力;
}
sub send_mail{
my $select = shift;
my $selectitem = join "&", @{$select}{@items};
print<<"**SENDMAIL**";
content-type: text/html;charset=$charset;

<title>発注確認</title>
<p>以下の内容で送信します。</p>
<form action="$filename" method="post">
<input type="hidden" name="selected" value"$selectitem">

<!--他、送信ボタンなど-->

</form>
**SENDMAIL**
}
sub end_page{
my $data = shift;
&メール送信;
&発注完了メッセージ出力;
}
__END__

185 :182:2001/05/22(火) 13:12 ID:???
>>183
print qq(<input type="hidden" name="send" value="sendmail">\n);
をフォームの中に入れたらいいんじゃないかな?

そうしたら$QUERY{'send'}にsendmailが入って、メール送信処理に行くでしょ?
違うのかな?

186 :ルーキー:2001/05/22(火) 13:42 ID:tyzDAZII
たくさんのヒントをありがとうございます。
基本的に182さんのでやろうかと思ってます。
さっき、
print qq(<input type="hidden" name="send" value="sendmail">\n);
をフォームの中に入れたらいいんじゃないかな?
をやってみたんですが、何故かエラーになるんです。sendmailすると。

184さんのも、「なるほど」と思うのですが、作り変える自信と理解が足りない気がします。
結果がでたらまたご報告します。
(トロイので時間かかりそうです。。)

187 :ルーキー:2001/05/22(火) 14:01 ID:tyzDAZII
>>182さん
エラーの原因がわかりました。
page1で格納された$formdataの最後部分に、page2で取得された変数を足して
sendmailしたいのですが、page2からPOSTするとpage1のデータがリセットされてしまいます。

何か良い解決法がありましたら教えてください。

188 :182:2001/05/22(火) 14:22 ID:???
>>187
foreach(keys %QUERY){
  print qq(<input type=hidden name="$_" value="$QUERY{"$_"}"\n);
}
を<form></form>の間に入れてみそ。
余計なデータも多分入っちゃうけど。

$formdataをそのまま送りたいんだよね?
キミはどういうやり方をしてるのかな?
多分そのやり方がまずいと思うんだけど、もう少し説明をもらえるかな?

少しHTMLの勉強もした方がいいかもしれない。

189 :182:2001/05/22(火) 14:23 ID:???
>>188
自己レス。
記入ミスがあった。
foreach(keys %QUERY){
  print qq(<input type=hidden name="$_" value="$QUERY{"$_"}">\n);
}

190 :ルーキー:2001/05/22(火) 16:42 ID:0Hl.W4fE
>>182さん
ごめんなさい。ずっと悩んでました。

foreach(keys %QUERY){
  print qq(<input type=hidden name="$_" value="$QUERY{"$_"}">\n);
}
を<form>と</form>の間に入れてみたけど、エラーになってしまいます。

>多分そのやり方がまずいと思うんだけど、もう少し説明をもらえるかな?
以下のように書いてあります。(perlです・・)
print "<form method=POST action=$filename>\n";
print "<font size=-1 color=red>必要な商品を選択してください(複数可)</font><br>";
print "<input type=checkbox name=item_1 value=on>口紅\n";
print "<input type=checkbox name=item_2 value=on>マスカラ\n";
print "<input type=checkbox name=item_3 value=on>マニキュア\n<br>";

foreach(keys %QUERY) {
  print "<input type=hidden name=$_ value=$QUERY{$_}>\n";
}

print "<input type= hidden name= send value= sendmail >\n";
print "<input type=submit value=この内容で注文する\n";
print "</form>\n";


}
else {
print "<font size=4 color=blue>この内容で資料請求する場合は、前画面で連絡先を入力してください。</font>\n";
}

ご面倒かけます・・・

191 :182:2001/05/22(火) 17:01 ID:???
いや、$formdataをどう処理しているかを聞きたいんだけど。
こっちも聞き方悪くてスマン。

$formdataはきちんと%QUERYに分けられてるんだよね?
↓こんな感じで。
@pairs = split(/&/,$buffer);
foreach $pair (@pairs){
  ($key,$value) = split(/=/,$pair);
  $QUERY{$key} = $value;
}


あと、
foreach(keys %QUERY){
  print qq(<input type=hidden name="$_" value="$QUERY{"$_"}">\n);
}
をそのままコピペしてないよね?
見やすいように全角スペース使ってるから、そのままコピペしたら当然エラーが出るけど。

それと、キミの書き方を見ていると入力されたデータに関わらず
口紅やマスカラとかが選択されているようにも見えるんだけど、
その辺は抜かりないよね?


あとは・・・、なんだろう?
なんとなく基本的な部分がヌケてるように思えて。

192 :ルーキー:2001/05/22(火) 17:34 ID:0Hl.W4fE
>いや、$formdataをどう処理しているかを聞きたいんだけど。
流れは以下のとうりです(長文ごめんなさい)。
#!/usr/local/bin/perl
require './jcode.pl';
#もろもろの初期設定
#データエリア
#クッキーを格納する名前を設定する
#===入力データの格納($formdataに)======================
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'});
} else { $formdata = $ENV{'QUERY_STRING'}; }
#===入力データの分解〜不用文字列のデコード〜S-JIS変換〜連想配列に格納======
@pairs = split(/&/,$formdata);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/\n//g;
$value =~ s/\,//g;
&jcode'convert(*value,'sjis');
$QUERY{$name} = $value;
}
#===CGIが呼び出された条件によって処理を分岐=============
if($QUERY{'send'} eq 'sendmail') { &sendmail; }
elsif ($QUERY{'action'} eq 'estimation') { &psge2; }
else { &page1; }
#===入力画面を生成===========================
sub page1 {
$count = @DATA;
&html_head;
print "<form action=$filename method=POST>\n";
print "<input type=hidden name=action value=estimation>\n";
中略 もろもろ入力
print "<p><input type=submit value=試算書作成></p>\n";
print "</form>\n";   後略
exit;}
#===試算結果作成============================
sub psge2 {
&html_head;
中略 各アイテムの料金を計算させて、表示。
print "<form method=POST action=$filename>\n";
print "<input type=checkbox name=item_1 value=on>口紅\n";
print "<input type=checkbox name=item_2 value=on>マスカラ\n";
print "<input type=checkbox name=item_3 value=on>マニキュア\n<br>";
foreach(keys %QUERY){
  print "<input type=hidden name=$_ value=$QUERY{$_}>\n";
}
print "<input type= hidden name= send value= sendmail >\n";
print "<input type=submit value=この内容で注文する\n";
print "</form>\n";       後略
#===メールメッセージを生成========================
#===メール送信サブルーチン(&sendmail)====================

>見やすいように全角スペース使ってるから、そのままコピペしたら当然エラーが出るけど。
??直したつもりなんですが・・
上記のとおりです。

ホントにお手数かけます。

193 :182:2001/05/22(火) 19:05 ID:???
foreach(keys %QUERY){
  print "<input type=hidden name=$_ value=$QUERY{$_}>\n";
}
を削除したらエラーが出ないよね?
それでもエラーが出るならエラーの原因は別。
(エラーが出る場合は、まず色んな所を削除してみて、
どこを削った時にエラーがなくなったかを調べるのが
原始的だけど確実。)


もし例の部分を削除してもエラーが出ないなら(そこに原因があるなら)
foreach(keys %QUERY){
     print "<input type=hidden name=$_ value=$QUERY{$_}>\n";
}
こう変える。
こうしてくれないとエラーが出る。
全角スペースと半角スペースの違いはわかるよね?
タブを使うとHTMLでは表示されないから、俺が全角スペースを
使ってたんだけど、gun_zipさんみたいに&nbsp;使った方が
良かったな。
打ち込み面倒だから全角スペース使ってたんだ、悪かった。

それ以外の部分についてはあまり問題を感じない。
(わざわざダブルクォーテーションを使う理由はわからないが)

少なくともそれをコピペして(一部修正して)試した所、
こっちではエラーが出てないんだけど、そっちでは
どんなエラーが出てる?

まず自分で色々試してみてくれ。
こっちは全貌が見えないんだ。
デバッグの基本は色々試す事。
人に聞くのもいいけど、もう少し色々自分で試してみてくれ。
色々やって手の打ちようがなくなったら、検索サイト行き。
それでもどうしてもダメなら人に聞く。
それが一番勉強になるしね。

自分の教え方の悪さを棚上げしてこれってのもなんだけどね。
むしろ俺が何か大きな勘違いしてるような気すらしてきた。
手間かけさせて悪い。

194 :名無しさん@お腹いっぱい。:2001/05/22(火) 19:09 ID:ofJMUrRg
はじめまして
THE ROOMのアクセスランキングで難しくてわからないことがあるので教えていただけませんか?Ranking Link Ver.1.70のcgiですが、管理人ページの登録情報表示(sub list1)で頭文字でsortするのではなくアクセス数でsortして表示するようには出来ないものでしょうか?

195 :名無しさん@お腹いっぱい。:2001/05/22(火) 19:21 ID:???
1.THE ROOMとやらのそのアクセスランキングを
  検索してソース落として回答して検討してくれる親切な人が現れるのを待つ

2.そのアクセスランキングを偶然知っていて
  検索してソ(中略)親切な人が現れるのを待つ

196 :名無しさん@お腹いっぱい。:2001/05/22(火) 19:22 ID:???
s/回答/展開/

197 :名無しさん@お腹いっぱい。:2001/05/22(火) 19:27 ID:???
>>194
ソートの処理を行ってるサブルーチンを探して、頭文字にあたる変数
をアクセス数にあたる変数に入れ替えてみる。

198 :ルーキー:2001/05/22(火) 19:27 ID:0Hl.W4fE
>>182さん
できました。

>もし例の部分を削除してもエラーが出ないなら(そこに原因があるなら)
foreach(keys %QUERY){
print "<input type=hidden name=$_ value=$QUERY{$_}>\n";
}
こう変える。


この部分が原因でした。
次回お会いしたときは、もっと成長してるよう、頑張って勉強します。
ありがとうございました。

199 :名無しさん@お腹いっぱい。:2001/05/22(火) 20:30 ID:???
>>194
まずはその配布スクリプトの配布元URLをみんなに教える。

200 :名無しさん@お腹いっぱい。:2001/05/22(火) 21:33 ID:ofJMUrRg
194です。いきなり失礼しました。URLはこちらです。
http://dream.lib.net/room/cgi/e_ranklink.html
のrl_admin.cgiのサブルーチンのlist1です。
197さんへ
ID.datファイルをソートして表示するようなので、アクセス数にあたる変数にいれかえてみてもうまくいきません・・・

201 :名無しさん@お腹いっぱい。:2001/05/23(水) 15:55 ID:AMvalJ9M
すみません、お知恵を貸していただきたいのですが。
http://www.geocities.co.jp/Bookend-Akiko/3814/newspro/newspro_cgi.txt
という海外スクリプトで日本語を扱えるようにしたいのです。
たぶん、line 754-915のあたりで
 $value =~ tr/+/ /;
 $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
みたいなデコードのサブルーチンを加えればいいのだとは
思うのですが、どこにどう加えたらいいのかがわかりません。

基本的には、フォームから入力したデータをnews.txtに吐き出し、それをSSIで
表示するというニュースサイト構築用のスクリプトなんです。
(http://www.amphibianweb.com/newspro/)
今まで日本語のスクリプトしか扱ったことがない初心者なのでお手上げ状態です。
ヒントだけで構いませんので、光を与えてください。

202 :名無しさん@お腹いっぱい。:2001/05/23(水) 16:16 ID:???
日本語の処理が特別なのは"異なる文字コードが混在している可能性があるから"
であって、その"$value =~ tr/+/ /"などの処理とは無関係だぞ。

203 :名無しさん@お腹いっぱい。:2001/05/23(水) 16:20 ID:???
>>201
nplib.pl の 180行目あたり見れ。

204 :201:2001/05/23(水) 21:02 ID:epsCb6tE
素早いレスありがとうございます。
私がデコードと思い込んでいたのは>>202で指摘されているようにただのURLエンコードで、
それは>>203で指摘されているようにライブラリで既に実行されている、と。
http://www.geocities.co.jp/Bookend-Akiko/3814/newspro/nplib_pl.txt

結局問題は、フォームから日本語で「テスト」と入力すると、news.txtには
&#12486;&#12473;&#12488;
と出力されてしまうのです。これがUnicode番号による数値実体参照だとろいうところまでは
わかったのですが、これはどうやったらEUCやShift_JISになるのでしょう。

やっぱり私ごときのレベルじゃ無理なのかな・・・

205 :201:2001/05/23(水) 21:03 ID:???
>>204
数値実体参照→数値文字参照です。逝ってきます…

206 :名無しさん@お腹いっぱい。:2001/05/23(水) 21:52 ID:???
>>205
そういう情報はとっとと出しましょう
#!/usr/bin/perl
use 5.6.0;
use Jcode;
$str = '???';
$str =~ s/?(\d{5});/pack('U*', $1)/eg;
print Jcode->new($str)->sjis;
__END__

207 :名無しさん@お腹いっぱい。:2001/05/23(水) 21:54 ID:???
ゲハ(;´Д`)
$strの中身が化けてしまったが、文字参照ね。念の為。

208 :T女の竹田:2001/05/23(水) 21:54 ID:???
>>201
とりあえず、print "Content-type: text/html\n\n";
のところを、
print "Content-type: text/html; charset=x-euc-jp\n\n";
みたいにしてみたら?

209 :名無しさん@お腹いっぱい。:2001/05/23(水) 22:11 ID:???
>>208
(゚Д゚)ハァ?
まだx-euc-jpを薦める奴なんて居たのか…(驚)

210 :T女の竹田:2001/05/23(水) 23:09 ID:???
>>209
ご、ごめんなさい間違ってたみたいですね。
EUC表示使ってないので…
正解はEUC-JPですか?

211 :201:2001/05/23(水) 23:29 ID:???
>>206
ええと、これをテキストファイルにコピーして拡張子を.plで保存して、それから
どうすればいいんでしょう。あとこれってJcode.pmが必要なんじゃないんでしょうか。
$strの中身が化けたとのことですが、化ける前が推測できません・・・

教えてチャン厨房ですみません。もう少しだけお付き合いください。

212 :名無しさん@お腹いっぱい。:2001/05/23(水) 23:51 ID:???
>>210
正解

>>211
化ける前のは"テスト"を数値文字参照化させたもの。
>>204に書いてあるやつな。つーかそれ以外に何がある?

で、"use Jcode"と書いてあるからには当然Jcode.pmが必要
use 5.6.0は不要かもしれん


関係ないが質問に答えてほしければageろや。
sageで書いて無視されても文句いえねーぞ。

213 :201:2001/05/24(木) 00:50 ID:sL7IkDYk
>>212
わーごめんなさい。

結果報告です。
あれからJcode.pmを落としてインストールし、nplib.plの186行目以下に

use 5.6.0;
use Jcode;
$value =~ s/&#(\d{5});/pack('U*', $1)/eg;
$value = Jcode->new($value)->sjis;

を付け加えて、An HTTPD上で実行したら成功しました!
皆様のご指導の賜物です。本当にありがとうございました。

が。ローカルで成功したもののサーバーに載せたらやはり動かない・・・
Jcode.pmがないって言われてしまうんですが、これはサーバーにインストールするしか
ないのでしょうか。jcode.plと勝手が違うので戸惑ってます。

214 :212:2001/05/24(木) 00:58 ID:???
>>213

Telnet可能ならJcode.pmのインストールも出来るだろ。
ちょいと古いがモジュールインストールの参考サイト
http://x68000.startshop.co.jp/~68user/net/ext-module.html

215 :名無しさん@お腹いっぱい。:2001/05/24(木) 03:21 ID:gHUnUmaM
age

216 :名無しさん@お腹いっぱい。:2001/05/24(木) 10:13 ID:R30YzE8A
フォームでMETHODがPOSTのとき何が送られてるんですか?
サンプルで教えてください。

217 :antique:2001/05/24(木) 10:45 ID:???
>>216
当然フォームに入力された内容が送られる。
↓に適当なFORMからPOSTで送信してみれ
----------------------------------------------
#! /usr/local/bin/perl
my $query;
read STDIN, $query, $ENV{CONTENT_LENGTH};

print "Content-Type: text/plain\n\n";
print $query;

218 :antique:2001/05/24(木) 10:46 ID:???
>>216
当然フォームに入力された内容が送られる。
↓に適当なFORMからPOSTで送信してみれ
----------------------------------------------
#! /usr/local/bin/perl
my $query;
read STDIN, $query, $ENV{CONTENT_LENGTH};

print "Content-Type: text/plain\n\n";
print $query;

219 :antique:2001/05/24(木) 10:48 ID:???
なんで2重投稿になるんだ?

220 :名無しさん@お腹いっぱい。:2001/05/24(木) 11:58 ID:Dq/jNNBM
cwd()・・・最も安全,'pwd'と等価
getcwd()・・・getcwd(3),getwd(3)を再実装
fastcwd()・・・chdirで戻って来れないようなディレクトリにchdirする可能性があるので
最も危険。

と本に書いてありますが、fastcwd()がどの位の危険性があるのか教えてください。

221 :名無しさん@お腹いっぱい。:2001/05/24(木) 12:51 ID:Xg3o9H/I
i-mode用のCGIを、i-modeシミュレータで
テストしながら作ってるんですが、i-modeの
CGIって出力する時は必ずContent-lengthを明示
しなくちゃならないんですか?

あと、i-modeだと入力フォームの中に
半角スペースが入ると、スペース以降の入力は
無視されるってホントですか?

222 :名無しさん@お腹いっぱい。:2001/05/24(木) 12:57 ID:Xg3o9H/I
>>216
たとえば名前と年齢を入力するフォームがあった時、
GETメソッドだと、サーバーには

GET /test.cgi?name=yamada+tarou&age=20 HTTP/1.0
Referer: tekito.html
User-Agent: tekito

こんな感じで送られる。POSTで送ると

POST /test.cgi HTTP/1.0
Referer: tekito.html
User-Agent: tekito
Content-length: 24

name=yamada+tarou&age=20

こんな感じ

223 :perlで:2001/05/24(木) 16:30 ID:???
複合検索のやり方をおしえて!!

224 :名無しさん@お腹いっぱい。:2001/05/24(木) 16:31 ID:???
/$pattern1/ and /$pattern2/ and /$pattern3/

225 :名無しさん@お腹いっぱい。:2001/05/24(木) 16:31 ID:???
>>223 そんな抽象的な質問では答えようがありません。

226 :perlで:2001/05/24(木) 17:20 ID:???
カテゴリーA(選択肢3つ) カテゴリーB(選択肢5つ) カテゴリーC(選択肢5つ)

複合検索。

1.Aからひとつ選択。→検索→結果表示
2.Aからひとつ選択。さらにBから1つ(ここで絞り込み)→検索→結果表示(1よりも絞りこまれた)
3.さらにこんどはCからも。するとさらに絞りこまれた検索結果が。

というような。アタマ爆発しそうです助けて。

227 :名無しさん@お腹いっぱい。:2001/05/24(木) 18:27 ID:???
1.Aからひとつ選択。→検索→結果表示 (ついでにhiddenで必要な情報をを出力)
2(hiddenの情報に加えて)さらにBから1つ(ここで絞り込み)→検索→結果表示(ついでにhiddenで必要な情報をを出力)
3.(hiddenの情報に加えてさらにこんどはCからも。するとさらに絞りこまれた検索結果が(ついでにhiddenで必要な情報をを出力)

228 :201:2001/05/24(木) 19:48 ID:sL7IkDYk
201です。結局、Jcode.pmはインストールできませんでした。
ほとんど途中までは
http://orange.ep.sci.hokudai.ac.jp/~dongury/gontamrr/Jcode.pm.memo.txt
と同じ工程をたどったのですが、MIME-Base64のインストール中に「権限がない」と
言われてそれっきり。共用レンタルサーバでroot権限なんてないよう。

しかし、もうこれ以上はCGIとは関係のない相談になりそうなので、ここらで「済み」と
いたします。今回はいろいろ初体験ができて、いい経験になりました。
最後になりましたが、ご助言いただいた方に深くお礼申し上げます。

229 :名無しさん@お腹いっぱい。:2001/05/24(木) 21:30 ID:ZqhZs8E6
ebicounter 使ってたんだが、なぜか、remote_host が取得できなくなった。
web_analyzer の方は、ちゃんと取得できてる。
xylog 試しに入れてみたが、これもリモホが取れてない。
他の時間、リファラー、UAなんかは取れてる。
自分でperl と Apach の仕組みを全部勉強して理解してからソースを見れば解決するだろうけど、2年くらいかかるだろう。
それまでの間、リモホが見れないとなると鬱だ。

230 :名無しさん@お腹いっぱい。:2001/05/24(木) 21:39 ID:???
>>228
makeの引数に何か指定すれば個人のディレクトリ内にインストールできるはず。

231 :名無しさん@お腹いっぱい。:2001/05/24(木) 21:41 ID:???
>>229
リモホを取得するにはちと負荷が掛かるんだよ。
取れなくなったのはその鯖の管理会社の判断だろう。

232 :名無しさん@お腹いっぱい。:2001/05/24(木) 21:51 ID:???
>>229 .htaccess に
HostNameLookups on
って入れてみ。

233 :名無しさん@お腹いっぱい。:2001/05/24(木) 22:06 ID:ZqhZs8E6
>>231
アドバイスありがとうございます。
実は、2,3日前に、そのプロバイダーのサーバーの移転工事があったんで、それと何か関係があるのかなーと少し考えてました。
不思議なのは、web analyzer では、きっちりリモホが取れているのに、ほかのcgiなどでは取れなくなったことです。
web analyzer とほかのプログラムの間に、リモホを取得する方法になにか違いがあるのだろうと思いますが、それを理解するのに2年くらいかかりそうです。

>>232
アドバイスありがとうございます。
.htaccessだったら、おそらく1週間くらい勉強すれば設置できそうです。
そのコマンドは、たぶん、リモホを強制的に取得する呪文ですね?
うちのサーバーは、indexes を設定しようとしたときに、なんとかのオーバーライドはできない、って言われたので、その制限にひっかからなければいいんですが。
とにかくやってみます。
ありがとうございます。

234 :名無しさん@お腹いっぱい。:2001/05/24(木) 22:59 ID:ZqhZs8E6
今、少し検索してみました。
http://www.rfs.co.jp/server/apache/07.html

「Apache 1.3では、HostnameLookupsの初期設定はOff。
この設定だと、DNSルックアップによる余分な処理がなくなるから、HTMLファイルが表示されるまでの時間がぐっと短くなる。」

とあります。
つまり、サーバー移転の際に、アパッチの設定を初期状態に一回戻したのではないかと。

235 :201:2001/05/24(木) 23:47 ID:sL7IkDYk
>>230
わーんあきらめかけてたのにー。ありがとうございます。

上手くいきました。>>214のサイトをもう一度読み直して、CPAN経由で個人ディレクトリに
インストールできました。ホントに楽だった。
が、今度は「パスが通っていない(@INCにない)」と言われてしまい途方にくれてます。
ちなみにcgiが返した@INCの現在の要素は、
/home/(アカウント名)/html/****/newspro
/usr/lib/perl5/i386-linux/5.00404
/usr/lib/perl5
/usr/lib/perl5/site_perl/i386-linux
/usr/lib/perl5/site_perl
で、Jcode.pmがインストールされているディレクトリは
/home/(アカウント名)/p5-module/
なんですが、これって
push(@INC,"/home/**_**/p5-module/");
という一文をnplib.plかnewspro.cgiのどこかに付け加えるだけじゃダメなんでしょうか。

やりたいことに近づいてるんだか遠ざかってるんだか…遠い道のりだなぁ。

236 :名無しさん@お腹いっぱい。:2001/05/25(金) 00:05 ID:???
age

237 :名無しさん@お腹いっぱい。:2001/05/25(金) 00:12 ID:wtGhDgwQ
>>365
いや近づいているよ。ガムバレ

@INCパスを通す方法

1. BEGINブロック内で@INCをいじる( BEGIN{ push @INC, '/home/hoge/perl5lib'; } )
2. use libプラグマを使う( use lib '/home/hoge/perl5lib'; )

238 :201:2001/05/25(金) 19:04 ID:IhXtwXHM
>>237
ありがとうございます。2のuse libで対処し、無事パスは通りました。
が、今度は「Uってなんじゃいボケ」とか言われています…
(Untrapped Error: Invalid type in pack: 'U' at nplib.pl line 192.)

どうも、
$value =~ s/?(\d{5});/pack("U*", $1)/eg;
のことらしいんですが、確かに今日参考書籍スレを見て買って来た
「CGI&Perlポケットリファレンス」のpack関数の型指定文字列には
大文字のUはないんですよね。ローカルでは動いたくせに。

239 :名無しさん@お腹いっぱい。:2001/05/25(金) 19:08 ID:.fPzJFjk
>>238
Uが使えるのはPerl5.6以降でなかったっけ?
日本語だけなら"U"の部分は"n"で代用できないかな?
できないかも。

240 :名無しさん@お腹いっぱい。:2001/05/25(金) 19:22 ID:z/gmREzA
ISP に質問メールを出しておいたら、今日返事が返ってきました。


「最近、アクセス解析で、リモートホストが取れなくなったプログラムがあるのですが、サーバー側では特に何も設定とかはいじってないですよね?」

「申し訳ありません。
サーバー側で Hostname Lookup を off にしております。
サーバーの負荷軽減のための措置ですので、ご理解くださいますよう、お願いいたします。」

それならそれで、連絡くらいしてほしかったなあ。
こっちは CGI の不具合かと思って、再インストールしたり、他の CGI 入れてみたり、5時間くらい悩んだんですよぉ〜。

ところで、サーバー側でoffにされていても、ユーザーが個人で .htaccess で on にしたら、そっちのほうが強いんですか?

241 :名無しさん@お腹いっぱい。:2001/05/25(金) 19:28 ID:Xm4KUCxE
>>239
うぃ、その通り。
212を書いた直後に気づくものの、書いてなかった。

よって「use 5.6.0は不要かもしれん」の一文は不適切だったな。スマソ

242 :名無しさん@お腹いっぱい。:2001/05/25(金) 19:40 ID:???
>>240
その話題多いね。
実は俺のとこもそうだし(笑)
一斉にやってんのかな?

質問はわからないのでsage
試しにやってみたらどうよ?

243 :名無しさん@お腹いっぱい。:2001/05/25(金) 19:45 ID:???
$host = $ENV{REMOTE_HOST}



$host = gethostbyaddr(pack("C4",split(/\./,$ENV{REMOTE_ADDR})),2) or $ENV{REMOTE_ADDR};

に変えれば済むんだから、鯖側が嫌がることは止めとけば?

244 :201:2001/05/25(金) 20:02 ID:IhXtwXHM
>>239
>Uが使えるのはPerl5.6以降でなかったっけ?
ああ納得。ローカルにインストールしたPerlは5.6でしたから。
>>212を読んでuse 5.6.0はコメントアウトしてました)

やっとあきらめがつきそうです。
結局cgiは動かなかったけど、Perlのことが少しわかったことは大きな収穫でした。
これから勉強して、いつの日か自分で動かせる日が来るのを待つことにします。
つまらない質問にお付き合いいだだき本当にありがとうございました>all

245 :名無しさん@お腹いっぱい。:2001/05/25(金) 21:57 ID:eb.ywCSo
最近CGIを勉強しはじめたのですが
静的なHTMLの中にラジオボタンが数個あり
選択されたラジオボタンごとに
ジャンプさせる先を
CGIで制御するにはどうしたらよいのでしょうか?
また、未選択だとエラーページを表示したいんですが

246 :名無しさん@お腹いっぱい。:2001/05/25(金) 22:27 ID:???
use CGI qw/:noxhtm :standard/;
SELECT: foreach (CGI->new->param('radiobutton')){
        lc eq 'a' and print redirect('page_a.html');
        lc eq 'b' and print redirect('page_b.html');

        print redirect('error.html');
}
print   header(-charset => 'Shift_JIS'),
        start_html( -title => 'hoge', -lang => 'ja'),
        h1('何か選択しろ'),
        # フォームをごちゃごちゃと
        end_html, "\n";
__END__

247 :名無しさん@お腹いっぱい。:2001/05/26(土) 16:34 ID:mRkT8Xi2
246さんのお答えに
数項目にそれぞれ数個のチェックボックスが数個付き
チェックボックス自体はどれを選択しても
ジャンプ先には関係ないのですが
(実際はラジオボタンだけが振り分けるようになっていて)
各項目未選択だとエラーページにて
その未選択な項目を提示したいのですが?
どうすればよいのでしょうか?

248 :名無しさん@お腹いっぱい。:2001/05/26(土) 19:25 ID:???
>>247
そいつをJavaScriptで実装してアプするとかしたらどうよ?
そうすれば的確な回答が得られる確率が跳ね上がると思うぜ。

249 :名無しさん@お腹いっぱい。:2001/05/26(土) 19:27 ID:???
ISP に質問したところ、
「すべての項目に対し、オーバーライドは認めていない」
と言われた。
終わったな。

250 :247:2001/05/26(土) 19:27 ID:mRkT8Xi2
できればi-modeで使えるようにしたいので
CGIで制御したいのですが

251 :名無しさん@お腹いっぱい。:2001/05/26(土) 23:30 ID:???
>>250
Perl言語の前にまず日本語を理解できるようになってから出直してください

252 :名無しさん@お腹いっぱい。:2001/05/27(日) 00:26 ID:???
ですがですがウルサイのですが

253 :247:2001/05/27(日) 05:15 ID:d3zuE6.g
>>247 さん
すみません、誤解していました。
http://www.geocities.com/sayapion/
にJavaScriptで実装してアプしました。
完全ではないけど
エラー表示はCGIでは未入力の項目を動的にHTMLで出力し、
全てチェックされた状態で送信ボタンを押すと
各項目の確認画面を出してから、選択された項目のページへ
ジャンプする(振り分けはチェックボックスのみ)したいです。
よろしければ、ご指導よろしくお願します。

254 :名無しさん@お腹いっぱい。:2001/05/27(日) 05:21 ID:???
自分に「さん」付けるな。

255 :名無しさん@お腹いっぱい。:2001/05/27(日) 11:03 ID:???
#!/usr/bin/perl
use CGI qw/:noxhtml :standard/;
@ISA = qw(CGI);
use strict;

=pod

form部分はこんな感じ
    <form action="$0" method="POST">
      <div class="a">
        <input type="checkbox" name="a-1" value="true">
        <input type="checkbox" name="a-2" value="true">
      </div>
      <div class="b">
        <input type="checkbox" name="b-1" value="true">
        <input type="checkbox" name="b-2" value="true">
      </div>
      <div class="c">
        <input type="radio" name="c" value="1">
        <input type="radio" name="c" value="2">
      </div>
    </form>

=cut
my @a = qw(a-1 a-2);
my @b = qw(b-1 b-2);

my $form = new CGI;

$form->is_checked(@a) or &error('a');
$form->is_checked(@b) or &error('b');
$form->param('c')   or &error('c');
#checkbox-a, checkbox-bの値を元に処理をする

$form->c();

sub is_checked{
    my $q = shift;
    my @names = shift;
    local $_;
    my $i;
    foreach (@names){ $q->param($_) and $i++; }
    return $i;
}
sub error{
    my $error_type = shift;
    #エラーメッセージを出力
}
sub c{
    my $q = shift;
    my $c_value = $q->param('c');
    #c_valueの値を元に結果のページを出力
}
__END__
・A項目(@a)の何れかが真であることを確認する さもなくばエラーa
・B項目(@b)の何れかが真であることを確認する さもなくばエラーb
・C項目が真であることを確認する さもなくばエラーc

・Cの選択によって出力内容を変える

256 :お悩み君:2001/05/27(日) 14:47 ID:52TCocto
CGIでのハイパーリンクについての質問です。
良く、自動登録の出来るリンク集などが有り、その場合、logフォルダーの中に、データファイルが1個ずつ増えていきますね。

ここからが質問です。
logフォルダーの中のデータファイルを、001.log、002.logと言うように増えていくファイルの中の、一番最後のlogデータファイル(一番数字の大きなもの)の数字を読み取り、そのlogファイルの数字に1足したファイル(その時点ではまだ存在しないファイル)にハイパーリンクを張ることは可能でしょうか?

要するに、logファイルが、001.log、002.logしか無い場合、003.logファイルにアクセスしたいのです。

どなたか教えてください。

257 :名無しさん@お腹いっぱい。:2001/05/27(日) 15:06 ID:???
#!/usr/bin/perl
use IO::Dir;
my($l) = sort{ $b <=> $a } map { (/(\d+)\.log$/) } IO::Dir->new('LO_DIR')->read;
print ++$l, "\n";
__END__
>>256

258 :micky:2001/05/27(日) 22:53 ID:???
cool :-)

259 :247:2001/05/28(月) 01:25 ID:zbIEQa5k
>>255さん
CGIとして操作させるにはこれだけでよろしいのでしょうか?
色々試してみたんですけど、駄目みたいです。
で、ラジオボタンの部分(c)はどうやって別のHTMLファイルにジャンプ
するようにしたら良いのでしょうか?

260 :名無しさん@お腹いっぱい。:2001/05/28(月) 11:24 ID:???
>>259

もちろん>>255だけじゃなにも起きないだろうよ。
入り口のページを用意しなきゃいけないし
飛んだ先のページも用意しなきゃいけない。

>>255がやっているのは、

 項目Aと項目Bがそれぞれ最低一つチェックされていることを確認して、
 かつ、項目Cもちゃんと選択されている事を確認する

それだけだからな。
全て書くとなると

261 :名無しさん@お腹いっぱい。:2001/05/28(月) 11:27 ID:???
続き

全て書くとなると、長くなりすぎるしウザイから、
残りは自分でやってみてくれ。

「ここをがどうしても分からない」ってのならそう書きゃまた誰かが何とかしてくれるさ。

262 :名無しさん@お腹いっぱい。 :2001/05/29(火) 19:53 ID:???
あるUP板を設置しようとして、
説明書通りにパーミッションも設定したのに、

Wrire Error
count.dat書き込みできません。

todemasu.
何故でしょう?

263 :名無しさん@お腹いっぱい。:2001/05/29(火) 19:58 ID:???
>>262
そんな妙なエラーメッセージを出されても困る。
$!を出力してくれ

264 :262:2001/05/29(火) 22:21 ID:???
>>263
どういうことでしょう?

265 :262:2001/05/29(火) 22:29 ID:???
書き忘れましたが、freewebでHPを作成しています。

266 :262:2001/05/29(火) 22:30 ID:???
書き忘れましたが、freewebでHPを作成しています。

267 :262:2001/05/29(火) 22:31 ID:???
二重投稿・・鬱だ・・

268 :名無しさん@お腹いっぱい。:2001/05/29(火) 22:36 ID:???
>>267
ディレクトリのパーミッション書いてみろ

269 :262:2001/05/29(火) 22:41 ID:???
+ board.cgi (705)
+ delete.pl (705)
+ info.pl (705)
+ index.pl (705)
+ jcode.pl (705)
+ lib.pl (705)
+ regist.pl (705)
+ revise.pl (705)
+ search.pl (705)
+ view.pl (705)
+ vip.pl (705)
+ write.pl (705)
+ count.dat (606)
+ アクセスログファイル (606)
+ (707)
+ 中身は空です。
+ (707)
+ 中身は空です。

です。

270 :名無しさん@お腹いっぱい。:2001/05/29(火) 22:53 ID:???
>>269
count.datが入ってるディレクトリのパーミッションはどうよ?

271 :262:2001/05/30(水) 00:30 ID:???
>>270
まさにそれが原因でした。
どおうもありがとうございました。

272 :お悩み君:2001/06/01(金) 21:33 ID:???
>>257さん
すいません説明不足。

logフォルダーの中のデータファイルを、001.log、002.logと言うように増えていくファイルの中の、一番最後のlogデータファイル(一番数字の大きなもの)の数字を読み取り、そのlogファイルの数字に1足したファイル(その時点ではまだ存在しないファイル)にハイパーリンクを張ることは可能でしょうか?

要するに、logファイルが、001.log、002.logしか無い場合、003.logファイルと言う有得ないファイルにハイパーリンクを張りたいのです。

ttp://123.~abc/arienai.cgi
とし、logファイルも同じフォルダーに置いた場合で、
arienai.cgiの中に、
$new = sprintf("%03d.log", &count() + 1 );
<A HREF="ttp://123.~abc/$new">有り得ないページ</A>
とした場合、ttp://123.~abc.003.logにアクセスできるでしょうか?

273 :257:2001/06/01(金) 21:59 ID:???
>>272
説明不足も何も無茶苦茶じゃねーか。
ハイパーリンクがどう関係するんだ?

有り得ないページにアクセスしたことあんのか?
普通はブラウザが落ちたりせず、NotFoundページにアクセスできるだろうが(藁

そいつを好きなフィアルにする事はもちろん可能だが、
そんなことしてしてどうする気だよ?
必要ならその場で作れば良いだろ。

274 :257:2001/06/01(金) 22:01 ID:???
s/フィアル/ファイル/

275 :お悩み君:2001/06/01(金) 23:19 ID:yjQBx9AY
>>257さんへ
別にブラクラを作りたいわけではなく、NotFoundを出したいわけでも有りません。
と言うより、大きな間違いに気付きました。
存在しないファイルにアクセスするのではなく、
たとえるなら、ひとつの書き込みごとにIDをつけ、ひとつのlogファイルに保存します。
書き込みの時のID番号と、logファイル名を同じにし、
新しい書き込みをする場合、
logファイル内のまったく新しい(存在しない)IDに直接アクセス(リンク)したいのです。

要するに、Yahoo!の掲示板のように、書き込みボタンをクリックすると、一度、logフォルダー内のファイル数を数え、そのファイル数に1を足した因数を導きだし、<A HREF="ttp://123.~abc/bbs.cgi?id=$因数">書き込み</A>

としたいのです。
この質問てやっぱり超〜初心者?

276 :257:2001/06/01(金) 23:36 ID:???
(゚Д゚)ハァ?
それなら、
書き込みボタンがクリックされた時にlogディレクトリの中のファイル数を数え、
そのファイル数に1を足した因数を導き出せばいいだろ。

277 :お悩み君:2001/06/02(土) 00:23 ID:0cBgSTx6
>>257さん
そのやり方が解りません。
スクリプトを教えてください。

278 :むぎ茶      :2001/06/02(土) 01:26 ID:???




ネタ。

279 :名無しさん@お腹いっぱい。:2001/06/07(木) 15:36 ID:???
ageとくか

280 :minima:2001/06/07(木) 18:41 ID:???
sage ながら失礼します。

>>277 さん
解決するにあたって,非常に簡単な方法があります。
  1. www.google.com で "opendir" を検索します。
  2. およそ30万件ヒット。
  3. がんばってください。

281 :名無しさん@お腹いっぱい。:2001/06/07(木) 20:35 ID:7evOf8Wk
教えて下さい。

$room = $in{'room'};

これの意味を。
この一行が原因でエラーが出ます。
どういう時に、こんな一行が原因でエラーが出るんでしょうか?

282 :名無しさん@お腹いっぱい。:2001/06/07(木) 21:06 ID:???
>>281

・$roomはtieされているが、STOREメソッドが存在しない
・$in{room}はtieされているが、FETCHメソッドが存在しない
・$roomに何かオブジェクトが入っていて、代入によりDESTROYが発生。
 そしてそのDESTROYが例外を発生させる。

283 :282:2001/06/07(木) 21:08 ID:???
・use strictの元で、$roomはvars/our宣言されていないグローバル変数である

284 :名無しさん@お腹いっぱい。:2001/06/07(木) 21:20 ID:7evOf8Wk
ありがとうございます。ただ、意味がまったく、わかりません、、、、(^_^;)
小生、Perl歴1年。ただし改造がメインで、基礎ガタガタ。

で、$in{'room'}; これって、ハッシュなんですかね?

>・$roomはtieされているが、STOREメソッドが存在しない

tieとは?
対応づけのことですか?

>・$in{room}はtieされているが、FETCHメソッドが存在しない

FETCHメソッドとは? そもそも FETCHとは?(^_^;)

>・$roomに何かオブジェクトが入っていて、代入によりDESTROYが発生。
> そしてそのDESTROYが例外を発生させる。

これも意味が、、、(^_^;)

>・use strictの元で、$roomはvars/our宣言されていないグローバル変数である

use strictとは?
vars/our宣言されていないグローバル変数とは?

基礎的なこと?ばかりでスミマセン。
で、これらの場合、どうすれば、解決できるんでしょう?

285 :282:2001/06/07(木) 21:35 ID:???
>>284
まぁ>>282はネタだ。tieを使ったCGIスクリプトなんて聞いた事無いな。
ただtieはPerlの非常に面白い部分の一つなので興味があったら調べてみるといい。

しかしPerl歴1年でuse strictを知らないというのは如何なものか。
use strictとは危険な構文、曖昧な構文を制限するプラグマだ。
vars/ourはそれに関係するが書くと長くなるので自分で調べな。

で、今回の件はどちらも違うようだな。
$room = $in{room}
の一文だけでは分からない。
CGIスクリプトならKCatch.pmを使ってみろ
http://www.kawa.net/works/perl/catch/news.html

286 :名無しさん@お腹いっぱい。:2001/06/08(金) 12:03 ID:gNerhrec
L-mode対応ページを製作してるんですが
一般ページと分けるたけのREMOTE_HOSTではんだんしてるのですが
HOSTどんな感じになるかわかりますか?
*.pipopa.ne.jpってかんじでしょうかね?

287 :名無しさん@お腹いっぱい。:2001/06/08(金) 13:47 ID:???
1. 「&amp」は「&」に変換
2. ただし「&amp;」はそのまま
というのをエレガントに書く方法はありますか?

※かちゅ〜しゃの人はブラウザで見てください

288 :名無しさん@お腹いっぱい。:2001/06/08(金) 14:08 ID:???
s/&(?!;)/&;

289 :名無しさん@お腹いっぱい。:2001/06/08(金) 14:08 ID:???
スマン変換された上に間違えた;
s/&amp;(?!;)/&/g;

290 :名無しさん@お腹いっぱい。:2001/06/08(金) 17:47 ID:???
>>289
s/&amp(?!;)/&/g;
でうまくいきました。産休

※例によってブラウザで

291 :カメハメ歯並び〜:2001/06/10(日) 13:10 ID:???
CGI_Lite でテキストは送れんのに、バイナリができん!
スイッチなのか? 教えてくれ〜。 アクチブパール6 なんだけど。

292 :名無しさん@お腹いっぱい。:2001/06/10(日) 16:38 ID:???
人に物を尋ねる前にそのふざけた態度を何とかしたらどうだ

293 :名無しさん@お腹いっぱい。:2001/06/10(日) 18:25 ID:???
>>292 激しく同意

294 :カメハメ歯並び〜:2001/06/10(日) 23:04 ID:???
出来たでいいわ。 教えて師匠気取りになってんじゃ
ねーぞ。 ゴルルルルァ!!

295 :倉庫番:2001/06/13(水) 21:48 ID:???
>>287-290

やってみましたよ。
http://green.jbbs.net/computer/bbs/read.cgi?BBS=20&KEY=985954204&START=400&END=400&NOFIRST=TRUE

400 名前: 倉庫番 投稿日: 2001/06/13(水) 21:39

古い方 http://corn.2ch.net/entrance/kako/991/991902157.html
新しい方(test)
http://corn.2ch.net/entrance/kako/test/991902157.html

で、直ったかな?

296 :名無しさん@お腹いっぱい。:2001/06/13(水) 23:46 ID:???
>>295
あ、わざわざ出張ありがとうございます。
サーバ監視所のほうにも書きましたが直ったみたいです。

297 :名無しさん@お腹いっぱい。:2001/06/14(木) 02:02 ID:???
CGIがユーザ権限で実行されるサーバを借りました。
が、ユーザ権限で動作するためか、
環境変数REMOTE_ADDRがサーバのIPになってしまいます。
アクセス者のIPアドレスを得る方法はないものでしょうか。

298 :名無しさん@お腹いっぱい。:2001/06/14(木) 02:17 ID:XRIaTlTQ
$host = gethostbyaddr(pack("C4", split(/\./, $ENV{'REMOTE_ADDR'})), 2);
これ試してミソ

299 :名無しさん@お腹いっぱい。:2001/06/14(木) 02:20 ID:XRIaTlTQ
#!/usr/bin/perl
$host = gethostbyaddr(pack("C4", split(/\./, $ENV{'REMOTE_ADDR'})), 2);
print"Content-type: text/html\n\n$host";
__END__

300 :名無しさん@お腹いっぱい。:2001/06/14(木) 02:21 ID:XRIaTlTQ
あれ?質問の意味取り違えた。ごめんちゃい

301 :名無しさん@お腹いっぱい。:2001/06/14(木) 02:22 ID:???
どもです。
上手くいったようです。ありがとうございました。

302 :名無しさん@お腹いっぱい。:2001/06/15(金) 21:34 ID:???
超初心者なのですが、失礼します。
$test{'test1'} = "a";
$test{'test2'} = "b";

$verd = 1;
foreach(0..$verd){
print "$test{'test$verd'}";
$verd += 1;
};
で、処理結果がabになるようにしたいのですが、どうやってもうまく行きません。
どうすれば上手くいくのか、よければ教えてもらえないでしょうか?

303 :名無しさん@お腹いっぱい。:2001/06/15(金) 22:24 ID:???
>>302
$test{'test1'} = "a";
$test{'test2'} = "b";

$verd = 1;
foreach(0..$verd){
print qq($test{"test$_"}); # ダブルクォーテーションじゃないと変数展開がされない
}

304 :名無しさん@お腹いっぱい。:2001/06/15(金) 22:53 ID:???
なるほど…そうするのですか。
303さん、どうもありがとうございました。

305 :perl初めて:2001/06/16(土) 02:22 ID:???
昨日かんたんperl/cgi入門という本を買い
初めてCGIを勉強しはじめたど素人なんですが
9行目付近が間違っていると
perlチェッカーで出るのですがさっぱりわかりません
どう間違っているのかご指摘いただけませんでしょうか
よろしくお願いいたします

#!/usr/bin/perl/

print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title>げすとぶっく♪</title>\n";
print "</head>\n";
print "<body bgcolor="#FFFFFF" text="#000000">\n";
print "<CENTER>\n";
print "<p>\n";
print "<font size=2 color=white>げすとぶっく♪</font>\n";
print "<br>\n";
print "<font size=1 color=white>あしあとぺたぺた</font>\n";
print "</CENTER>\n";
print "<HR>";
print "(半角カナは使用しないでね♪)\n";
print "<form method=\"post\" ACTION=\"guestbook.cgi\">\n";
print "<font size=1 color=white>あなたのお名前:</font><INPUT NAME=\"name\" TYPE=\"text\" SIZE=30><br>\n";
print "<font size=1 color=white>Eめーる:</font><INPUT NAME=\"email\" TYPE=\"text\" SIZE=40><br>\n";
print "<font size=1 color=white>こめんと:</font><TEXTAREA cols=40 ROWS=4 NAME=\"comment\"></TEXTAREA><br>\n";
print "ほーむぺーじ:";
print "<INPUT NAME=\"url\" TYPE=\"text\"VALUE=\"http://\"SIZE=40<br>\n";
print "<INPUT TYPE=\"submit\" VALUE=\"かきこみ♪\">\n";
print "</form>\n";
print "</body>\n";
print "</html>\n";

_END_

306 :rubbish_lister:2001/06/16(土) 02:27 ID:???
>>305
ヒアドキュメントが載っていないような本は捨てましょう。

print <<EOD;
Content-type: text/html

<html>

</html>
EOD
__END__

307 :( `.∀´)<逝ッテヨシ:2001/06/16(土) 05:19 ID:gZwvTOW.
>>305
print "<body bgcolor="#FFFFFF" text="#000000">\n";

この行を見て何も感じない不感症なキミは逝ってよし

308 :ドキュソ:2001/06/16(土) 06:00 ID:yBowf1qk
>>305
エディターを変えればわかるかも。

309 :名無しさん@お腹いっぱい。:2001/06/16(土) 12:23 ID:???
誰も一行目と最終行には突っ込まないのナ(w

310 :perl初めて:2001/06/16(土) 13:14 ID:C1nY1sAg
>>306さん
こんな方法があったのですね!
昨日検索かけてたくさん調べてみました
凄く便利なので使わせていただきます!

>>307さん
大文字小文字が混じってて気持ち悪いと言うことでしょうか?

>>308さん
今はEMエディターで拡張子をいちいちtxtからcgiに変えてやっているので
秀丸エディターに変えてみます

>>309さん
えっと最初の行はサーバーに合わせて書いたつもりなのですが
おかしいのでしょうか?
最後は__END__でよろしいでしょうか?

初歩的なことですいません

311 :名無しさん@お腹いっぱい。:2001/06/16(土) 17:12 ID:???
print "<body bgcolor="#FFFFFF" text="#000000">\n";
             ↓
print "<body bgcolor=\"#FFFFFF\" text=\"#000000\">\n";

312 :ドキュソ:2001/06/16(土) 17:18 ID:k9nU2Pm6
>310
ヒアドキュメントにすると通るので、なんで通るのか考えてみよう。

313 :名無しさん@お腹いっぱい。:2001/06/16(土) 17:55 ID:???
>>310
『\』の使い方も載ってないのにホントに入門本なのか?

314 :ドキュソ:2001/06/16(土) 18:16 ID:k9nU2Pm6
>かんたんperl/cgi入門
ここが今日のポイントだ。試験に出すから覚えとけよ〜。

315 :perl初めて:2001/06/16(土) 18:51 ID:C1nY1sAg
>>311さん
ご丁寧にありがとうございます
\が抜けてたんですね、本に書いてある通りではなく
そこは少し自分で変えていました
本にはprint "<body bgcolor=WHITE>\n";とかいてありました
私のミスだと思います。

>>312さん
ヒアドキュメントにすると通るわけですね
調べてみます、結構丸暗記でやっているので
理解しながらやった方がいいですよね。

>>313さん
はじめての人のためのと書いてあったので買いました
\の使い方はいまいち私がまだわかってないだけだと思いますので
じっくり勉強します。

>>314さん
はっはぁ・・・

316 :名無しさん@お腹いっぱい。:2001/06/16(土) 19:27 ID:???
其の本には最初の行について何て書いてあったのか知りたい気がする

あと、\がたくさんついてると気持ち悪いのは俺だけか
最初はしょうがないかもしれないけど

317 :perl初めて:2001/06/16(土) 19:46 ID:C1nY1sAg
わかりやすそうな解説だったのですが
とりあえずこの本に書いてあることぐらい
簡単に理解できるように頑張ります
ちなみに間違っている点は
一番最初の行の#!/usr/bin/pirl一番最後につけていた/の
ためにエラーが出ていたようでした
皆様いろいろご指導いただきありがとうございました

318 : :2001/06/16(土) 19:48 ID:???
>>315
Perlは色々な書き方があるから、本屋とかで立ち読みして見比べたら良いかと。

319 : :2001/06/16(土) 19:51 ID:???
>>317
率直に言おう。"" の中で "" を使うとエラーになります。
' (シングルクォート)と使いわけよう。

320 :perl初めて:2001/06/16(土) 20:02 ID:???
>>318さん
はい、いろいろと読み比べてから本は買うようにします
いろいろありがとうございました

>>319さん""の中で""を使うときは'を使い分けていくわけですね
では\を使って""の中に""を使うやり方は違うのでしょうか?
それともこれでも良いのでしょうか?
とりあえずいろいろ調べてみます!

321 :名無しさん@お腹いっぱい。:2001/06/16(土) 21:18 ID:Xw9raK02
Win2K+Apache+ActivePerl でサーバを立てようと思っているのですが、
Perlだけなかなか正常に動いてくれません。
cgi実行すると「Internal Server Error」が出てしまいます。

DOSプロンプトから直接実行は問題ありませんでした。(>perl test.cgi)

cgiスクリプトの1行目のperlパスの指定も間違ってません。
(#!D:/Server/Perl/bin/perl ←インストールディレクトリ)

でもApacheエラーログでは、
malformed header from script. Bad header=test: d:/server/apache/cgi-bin/test.cgi
と1行目が間違ってるという風に言われます。

httpd.conf の設定も大丈夫だと思うのですが・・・

ほかにどのような原因がありうるでしょうか?
お助けくだされ・・・。

322 :名無しさん@お腹いっぱい。:2001/06/16(土) 21:31 ID:???
ヘッダの出力が間違っている。

323 :名無しさん@お腹いっぱい。:2001/06/16(土) 21:44 ID:Xw9raK02
>>322
むむっ!!もう少し詳しく教えてください。

324 :S:2001/06/16(土) 21:56 ID:QjdpSRZc
header=HTTPヘッダが変、もしくは無いってことだと思います。

325 :名無しさん@お腹いっぱい。:2001/06/16(土) 22:04 ID:Xw9raK02
>>324
どうもです。でもまだ分からない(w
もう少し教えてください。
具体的にどこをどのように見直すべきですか?

326 :名無しさん@お腹いっぱい。:2001/06/16(土) 22:24 ID:???
>Perl初めて
悪いが君はプログラムに向いてないのかもしれない。
もちろん努力すれば何とかなるけど、今の態度を見るにあまり期待も出来ない。

""の中になぜ"を使ってはいけないか?
考えてみなさい。
print "a"b";
とあって、printは
全体の""の中身であるa"bをprintするべきか
最初の""の中身であるaをprintするべきか
最後の""の中身であるbをprintするべきか。
どれだと思う?
答えは2番目だ。

最初の"からその次に現れた"までを""の中身と判断する。

ではそうなったらb"はどうなるか?
どうにもならない。
ただb"って書いてあるだけとしか思ってくれない。
そしてそれは構文になっていない。
結果として構文エラーになる。

\"を使うのは「これは"の終わりではない文字列としての"ですよ」という目印だ。
print "a\"b";
と書けば、真中の"は文字列として認識されるから、そこで"が終わらない。
つまり、そういう事。
'を使えば大丈夫なのも、「"から"まで」という認識の邪魔をしないからだ。

これは「知ってなきゃわからない」事かもしれないが、「考えてわからない」事じゃないと思う。
それを考えてわからないなら、君はそのセンスがないのかもしれない。
もしPerlを本格的にやりたいなら、センスを磨きな。

長文スマソ。

327 :関係無いのでさげ:2001/06/16(土) 23:23 ID:???
>Perl初めて
http://script.lovely.to/bbs/infolng.cgi?print+200106/01060024.txt
今後はマルチポストはやめるように

328 :名無しさん@お腹いっぱい。:2001/06/16(土) 23:31 ID:???
それでもヒアドキュメントを使わないその根性に脱帽(w

329 :名無しさん@お腹いっぱい。:2001/06/16(土) 23:33 ID:3vKwuoqU
>>325
print "Content-Type: text/html\n\n";
こういう出力をしてないとか、ケツの改行が1個しかないとか。

330 :名無しさん@お腹いっぱい。:2001/06/16(土) 23:43 ID:???
>>305
これ見てワラタ

331 :名無しさん@お腹いっぱい。:2001/06/16(土) 23:48 ID:???
      バーカ
  ニドトクンナ!ペッペ!!
        ,, .: 。
   \( ゚´3゚)- = 。 ゚
   (   )` :: .
   ノ \

332 :名無しさん@お腹いっぱい。:2001/06/17(日) 00:09 ID:cAWaiwrs
gethostbyaddr()でホスト名を取得しようとしているのですが
うまくいきません。(IPアドレスが表示されます)
他のCGIではgethostbyaddr()でホスト名が取得できているので
サーバがgethostbyaddr()が使えないということではないと思うんですが…
どのような原因が考えられるでしょうか?

333 :名無しさん@お腹いっぱい。:2001/06/17(日) 00:14 ID:???
>>332
CGIのミス。

334 :332:2001/06/17(日) 00:25 ID:cAWaiwrs
ホスト名取得は以下のようにしてるんですけど、
どの辺がおかしいでしょうか?

$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};

if ($host eq "" || $host eq "$addr") {
    $host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
}
if ($host eq "") { $host = $addr; }

335 :325:2001/06/17(日) 05:09 ID:555t4a6o
>>329
まさにそのとおりでした。
どうもありがとうございます。
助かったdeath.

336 :名無しさん@お腹いっぱい。:2001/06/17(日) 11:58 ID:???
>>332=334
Netfirmsは、gethostbyaddr()関数を使えない。

337 :332:2001/06/17(日) 12:40 ID:4s/tVhGY
>>336
Netfirmsっていうのはサーバのことでしょうか?
うちはhi-hoのサーバを使っています。

338 :名無しさん@お腹いっぱい。:2001/06/17(日) 12:41 ID:???
一見普通の画像(jpg)だけど裏でCGIを実行させるにはどうしたら良いのでしょうか?
(画像の中にCGIを埋め込むには?の方が言い方としては正しいのかな?)

339 :名無しさん@お腹いっぱい。:2001/06/17(日) 12:56 ID:???
Apacheならhttpd.confに

AddHandler cgi-script .jpg

を加える。

340 :名無しさん@お腹いっぱい。:2001/06/17(日) 14:13 ID:???

(゚Д゚)ハァ?

341 :名無しさん@お腹いっぱい。:2001/06/17(日) 14:45 ID:???
>>338
おれも>>339を最初に思いついた。
あるいはPATH_INFOから引数をとるような画像表示CGIを作り、
拡張子なしのファイル名を付けて、URLでごまかす。

>>340
┐(´ー`)┌

342 : :2001/06/17(日) 15:49 ID:???
そうやって初心者を潰すから嫌われるんだよ。

343 :名無しさん@お腹いっぱい。:2001/06/18(月) 12:32 ID:Ai/io0AA
apacheのルートではsuEXECって動かないの?
ユーザディレクトリではsuEXECで動いているんだけど、
/usr/local/apache/cgi-binではwwwで動くんだよね。

344 :名無しさん@お腹いっぱい。:2001/06/18(月) 12:43 ID:???
ユーザディレクトリ以外では
httpd.confの
User www
Group www
の権限で動きます。

345 :名無しさん@お腹いっぱい。:2001/06/18(月) 16:12 ID:Ai/io0AA
ああ、そうなんだ。
んじゃぁ、ユーザーディレクトリをエイリアスに設定させれば
動くかな?
Alias /test/ "/home/test/public_html/"みたく

346 : :2001/06/19(火) 16:29 ID:.3uKdYEE
自分のHPにおけるチャットで一番使いやすいのってなんでしょうか?

ヤフーのチャットをおいてたけど、いろいろ不満もあって・・・。
いい、チャット知ってたら教えてください。

347 :名無しさん@お腹いっぱい。:2001/06/19(火) 16:32 ID:???
IRC

348 :名無しさん@お腹いっぱい。:2001/06/19(火) 16:39 ID:.3uKdYEE
IRC?
それってHPにおいて使えるんですか?

では、早速やってみます。
ありがとうございました。

349 :名無しさん:2001/06/19(火) 22:44 ID:???
プ

350 :逝って良し:2001/06/20(水) 07:25 ID:???
http://irc.2ch.net/

351 :名無しさん@お腹いっぱい。:2001/06/20(水) 19:49 ID:pmjBvxSs
掲示板等のCGIのスクロールバーの色を変えるには
どうすればいいのですか?

352 :名無しさん@お腹いっぱい。:2001/06/20(水) 19:56 ID:???
>>351
HTMLとスタイルシートの勉強をする

353 :名無しさん@お腹いっぱい。:2001/06/20(水) 19:56 ID:???
>>351 HTMLのスクロールバーの色を変える方法を使う

354 :332:2001/06/21(木) 21:44 ID:06pi5Po2
どなたか分かる人いないでしょうか。
まだ解決していないのです・・・

355 :sage:2001/06/21(木) 22:07 ID:???
>>332
hi-hoのPerlがおかしいから。

356 :名無しさん@お腹いっぱい。:2001/06/21(木) 22:28 ID:???
>>355
Perl がおかしい?

357 :名無しさん@お腹いっぱい。:2001/06/22(金) 02:50 ID:XQWf5jh2
掲示板レンタルサービスを作るつもりなんだけど、
データの保存形式はどうしたらいいだろう?
俺的には、
設定情報+記事ファイル
会員情報はSQL
みたいな感じだけど。
設定と記事は分けた方がいいかな?同じにすればファイルを2度開かなくてもいいかなと思ってるんだけど。
因みに、設定は10項目くらいタブで区切るつもり。

358 :名無しさん@お腹いっぱい。:2001/06/22(金) 06:26 ID:???
配列の名前に変数を使うことはできますか?
$hairetu[$hensuu]ではなく、
$haieretu 変数 [1] という風にしたいのですが。

359 :名無しさん@お腹いっぱい。:2001/06/22(金) 10:54 ID:MTHVeG4o
age

360 :名無しさん@お腹いっぱい。:2001/06/22(金) 11:58 ID:uKEGoNlk
age

361 :名無しさん@お腹いっぱい。:2001/06/22(金) 12:15 ID:???
>>358
${hairetu}{$hensuu}[1]
${$hensuu}[1]

362 :358:2001/06/22(金) 19:35 ID:???
>361
回答ありがとうございます。
さっそく試してみます。

363 :名無しさん@お腹いっぱい。:2001/06/22(金) 21:51 ID:???
こちらで聞いてよいでしょうか

Perlで掲示板をつくってprohostingのサーバに置きました。めでたく書きこみが出きるまでになりました

そこで一つわからないことがあります。
その掲示板でリロードしようとすると、ダイアログが開いて「このページは
再送信しないと更新できません」とでるのです。それに従って更新すると、
同じ内容の書きこみが二つになってしまいます。このようにならないように、
リロードするにはどうしたらよいでしょうか

364 :名無しさん@お腹いっぱい。:2001/06/22(金) 21:54 ID:???
>>363
1:アンカータグでリロードボタンを作る
2:フォームでリロードボタンを作る
3:書き込みが終わった後Locationで移動させる
4:書き込み後に「書き込みが完了しました」とクッションページを置く

365 :名無しさん@お腹いっぱい。:2001/06/22(金) 22:07 ID:???
>>364
ありがとうございます。
IEの更新ボタンで更新できるようにしたいのですが(2たんねるのように)
その場合は3.のでよいですか?

366 :antique:2001/06/22(金) 22:37 ID:???
>>365

364じゃないけど、3でおっけーです。

367 :名無しさん@お腹いっぱい。:2001/06/23(土) 00:28 ID:MdTHDgYc
質問させて頂いてもよろしいでしょうか?

特定のIP&プロ串経由でのアクセスをピンポイントで制限するというCGIをPerlでつくり、
WAKWAKのサーバーに置き、ちゃんと動作してくれたので、旧INFOWEBのサーバーに設置してみたところ
「Internal server error」 が出てしまいました。

あるサーバーでは上手く動作しても、あるサーバーでは上手く動作しないということは、
CGIスクリプトと、鯖との相性なんでしょうか?

368 :名無しさん@お腹いっぱい。:2001/06/23(土) 00:31 ID:???
まあ、大体Perlのバージョンの絡みとかかな。

偶に、perlのパス確認せずに騒ぐドキュソも居るけど(w

369 :名無しさん@お腹いっぱい。:2001/06/23(土) 00:32 ID:???
>>367
1:Perlにパスが通ってない
2:requireなどのパスが通ってない
3:Win鯖とUnix鯖だったりする
4:Perlのバージョンが違う
5:サーバーで許されている関数に違いがある
6:.plファイルのCGI起動を許可されていない
7:cgi-binに入れないと動かない

後はなんだろう?

370 :名無しさん@お腹いっぱい。:2001/06/23(土) 00:35 ID:/3Jg8tz.
質問です。
2chのIDのようにIPに基づいて成り立つIDをPERLで作成するにはどうしたらいいのでしょうか

371 :名無しさん@お腹いっぱい。:2001/06/23(土) 00:43 ID:???
367です。

>>368
Perlへのパスは何度も確認してます。

>>369
わっかりました。
もう一度、ソースを見直してみます。

372 :名無しさん@お腹いっぱい。:2001/06/23(土) 00:47 ID:???
>>370
srand($ENV{'REMOTE_ADDR'});
$xx = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  . "abcdefghijklmnopqrstuvwxyz"
  . "123456789./";
foreach(1..8){
  $ID .= substr($xx, int(rand(65)), 1);
}

srandにIPを入れることで常に同じ結果が返される。

あくまでサンプルとしてね。
他にも色々と方法はあると思う。

373 :370:2001/06/23(土) 00:55 ID:???
>372さん
できました!
ありがとうございます!

374 :名無しさん:2001/06/23(土) 08:25 ID:vckxBx8o
IPアドレスからユーザー名ってとりだせませんか?

375 :名無しさん@お腹いっぱい。:2001/06/23(土) 09:12 ID:???
>>374
(゚Д゚)ハァ?

376 :名無しさん@お腹いっぱい。:2001/06/23(土) 12:18 ID:9TJHVS52
sendmailが使えない鯖でcgiからメールを送る方法ってあります?

377 :T女の竹田:2001/06/23(土) 12:44 ID:???
>>376
そけっと使うんだよ。(自分はやったことないけど…汗) SMTPサーバと
お話ししたら大丈夫。

378 :名無しさん@お腹いっぱい。:2001/06/23(土) 12:46 ID:9TJHVS52
>T女
も少し具体的に教えてください。
あと、やらせてください。

379 :名無しさん@お腹いっぱい。:2001/06/23(土) 13:01 ID:/dnaAWAM
>372
2chのIDってcryptで生成していると思ってた。

380 :370:2001/06/23(土) 13:48 ID:jCLGsch.
372さんのでやっているんですが、
IPが違っても同じIDになることがたびたびあります。
初心者なもんで全然わからないんですが、どう対処したらいいのでしょうか

381 : :2001/06/23(土) 14:17 ID:???
>>370
http://curry.2ch.net/megane/index2.html

382 :372=初心者に毛の生えた程度:2001/06/24(日) 07:47 ID:???
>>379
その方が効率的かも。
サンプルきぼん。

383 :名無しさん@お腹いっぱい。:2001/06/24(日) 10:13 ID:???
$packip = join "", map{ chr } split /\./ $ip;
print crypt($packip);

とか。

384 :名無しさん@お腹いっぱい。:2001/06/24(日) 15:39 ID:???
>>363=>>365です
location文をどのように挿入すればよいかわからないです
どなたか教えていただけないでしょうか

385 :名無しさん@お腹いっぱい。:2001/06/24(日) 16:10 ID:PvagkePY
>>384
Content-type:と同じやりかたでオッケー

386 :名無しさん@お腹いっぱい。:2001/06/24(日) 16:34 ID:???
>>385
locationを試してみたところ、リロードしてもcgiが読み込まれなくなってしまいました
サーバはProhostingです

387 :名無しさん@お腹いっぱい。:2001/06/24(日) 17:38 ID:???
>>377
Sendmailが使えないサーバなら、Socketもまず使えないだろう。

388 :372=初心者に毛の生えた程度:2001/06/24(日) 23:04 ID:???
>>383
そのままコピペして試したら鰓出たんで自分なりにアレンジしてみました。

$packip = join "", map{ chr } split /\./,$ip; # ,を入れてみた
print substr(crypt($packip,$ip),2,8); # saltを入れてからsaltの分を削除してみた

こんな感じでいいのかな?

389 :名無しさん@お腹いっぱい。:2001/06/24(日) 23:45 ID:???
Shift_JISの1バイト目だけの中途半端な文字コードを削除する正規表現
って書けますか?

390 :名無しさん@お腹いっぱい。:2001/06/25(月) 01:21 ID:k5UlKqNo
<form method='POST' action="http://aaa/ssss.cgi">
<input type=hidden name="get" value="143242341324">
<input type=submit value="abcd">
</form>
これをTELNETで見ようと思ってもサッパリ分かりませんでした
いま将棋にはまってます
このCGIの出力結果を見るにはどんな文ををサーバーに送れば見ることが出来ますか?
詳しく分かりやすく専門用語を使わずに教えてくださいおしえてください

391 :名無しさん@お腹いっぱい。:2001/06/25(月) 03:32 ID:5VbEnasM
>>389
中途半端なコードが1個でもあったら、それ以降すべて削除。
というの作ってみた。

$re_sjis_zen = '[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]';
$re_sjis_han = '[\xA1-\xDF]';
$re_ascii = '[\x20-\x7E]';

$s =~ s/^((?:$re_sjis_zen|$re_sjis_han|$re_ascii)*).*/$1/;

392 :名無しさん@お腹いっぱい。:2001/06/25(月) 09:39 ID:???
>>390
君の場合「専門用語を使わず」にとか言う前に、
日本語を勉強した方が良いと思われ。

393 :383:2001/06/25(月) 18:05 ID:???
>>388
あぁすまん。コンマ忘れたわ。

394 :名無しさん@お腹いっぱい。:2001/06/25(月) 19:21 ID:ZSLnqgJ.
Apacheを使っています。ここに存在はするがindex.html
はないディレクトリにアクセスした場合はindex/xxxという
ファイルの一覧になりますよね。

ここをファイル一覧にはせずに、そのままFile Not Foundの
ようなエラーページに飛ばす方法はApacheにはあるのでしょう
か?いろいろ見たけれどわからないです。

@niftyなんかはこういう風な仕組みになってますが、あれは
CGIとかでやれるのでしょうか?

395 :電動ナナシ:2001/06/25(月) 21:36 ID:???
Options -Indexes

396 :名無しさん@お腹いっぱい。:2001/06/25(月) 22:14 ID:???
>>394
http://www.mikeneko.ne.jp/~lab/cgi/htaccess/directory.html

397 :名無しさん@お腹いっぱい。:2001/06/25(月) 23:23 ID:r5yv8Gx.
>>395
>>396
ありがとうございました、うまくいきました。

398 :370:2001/06/26(火) 04:53 ID:AyIlniPs
$packip = join "", map{ chr } split /\./,$host;
$ID .= substr(crypt($packip,$host),2,8);

これでできたIDからIPに戻すとかはできます?

399 :JAPU:2001/06/26(火) 05:18 ID:???
crypt は一方向性のハッシュ関数を使用しているため、計算で求めることはできません。

# DES を使用している場合でも、単なる一方向性関数としての利用です。

400 :名無しさん@お腹いっぱい。:2001/06/26(火) 05:36 ID:???
よくある投票CGIで多重投票をしたいのですが、1回しただけで次から規制されてしまいます
ネットを切ること無しに多重投票ができる方法はありますでしょうか?
また、効率のいい投票方法、ツールなどありましたら教えてください

401 :名無しさん@お腹いっぱい。:2001/06/26(火) 05:45 ID:???
>>400
方法はあるけど…
多重投稿をして欲しくないから、そういう機能があるのだと思われ。(ワラ

あきらめて逝ってください。

402 :名無しさん@お腹いっぱい。:2001/06/26(火) 08:54 ID:???
>>400
アンケート荒らしは死ね。

403 :名無しさん@お腹いっぱい。:2001/06/27(水) 16:27 ID:Me2B1mgQ
>>382
http://member.nifty.ne.jp/hippo2000/perltips/perlmail.htm

404 :名無しさん@お腹いっぱい。:2001/06/27(水) 18:41 ID:???
以前掲示板リロードとlocationについて質問したものです
リロードによる二重書き込みが無くなりました!!!
なんとお礼を言っていいやら・・!!ありがとう

405 :名無しさん@お腹いっぱい。:2001/06/27(水) 18:44 ID:???
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (6      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < 正直、どういたしまして。
|| | | |  \ ┃  ┃/    \________
| || | |    ̄  ̄|

406 :名無しさん:2001/06/28(木) 06:33 ID:a55aZI4U
よくCGIのサンプルでPOSTかGETか判定して分岐しますが、
同時に使おうとするとなにか問題があるんでしょうか?
変数名がかぶるとか回避できますよねえ。

407 :名無しさん@お腹いっぱい。:2001/06/28(木) 13:25 ID:???
>>406
同時に使おうとすると判定処理が増えるからじゃない?

408 :名無しさん@お腹いっぱい。:2001/06/28(木) 15:46 ID:m7F35MBU
>>406
同じデータをPOSTでもGETでも受け付け可能にするってこと?
掲示板なんかでPOSTとGETの両方オーケーにすると
<img src=".../bbs.cgi?text=hoge">みたいなリンクを貼りまくる
荒らし厨房がわいてきそうでいや。

別々のデータをPOSTとGETで分けて受け取るスクリプトの話なら、
まえにそういう掲示板
(テキストをPOSTで受けて、動作モードをQUERY_STRINGで指定)
を書いたけど、そのときは問題なかった。
Apache以外のWEBサーバだと、問題あるらしいとの噂も聞いたが。

409 :370:2001/06/28(木) 15:57 ID:d9KcmRW.
>>399
そうですか〜
ありがとうございます。

410 :406:2001/06/28(木) 21:03 ID:a55aZI4U
>(テキストをPOSTで受けて、動作モードをQUERY_STRINGで指定)
まさにそれです。Perl勉強中なんで問題があるのかと、、、
# フォームからのデータを連想配列に格納
read(STDIN, $buffer1, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer1);
foreach $pair (@pairs)
{
($name,$value) = formdec(split(/=/, $pair)); # フォーム形式のデコード
if(exists($FORMS{$name})) { # 既にキーが存在した場合
$FORMS{$name} = $FORMS{$name}.",".$value; # FORMSに, 区切りで格納
} else {
$FORMS{$name} = $value; # 連想配列FORMに格納
}
}
# クエリーからのデータを連想配列に格納
@pairs = split(/&/, $ENV{'QUERY_STRING'}); # 引数を格納する
foreach $pair (@pairs)
{
($name,$value) = formdec(split(/=/, $pair)); #フォーム形式のデコード
if(exists($QUERYS{$name})) { # 既にキーが存在した場合
$QUERYS{$name} = $QUERYS{$name}.",".$value; # QUERYSに, 区切りで格納
} else {
$QUERYS{$name} = $value; # 連想配列QUERYSに格納
}
}
# クッキーデータを連想配列に格納
@pairs = split(/;\s*/,$ENV{'HTTP_COOKIE'});
foreach $pair (@pairs)
{
($name,$value) = formdec(split(/=/, $pair)); # フォーム形式のデコード
if(exists($COOKIES{$name})) { # 既にキーが存在した場合
$COOKIES{$name} = $COOKIES{$name}.",".$value; # COOKIESに, 区切りで格納
} else {
$COOKIES{$name} = $value; # 連想配列COOKIESに格納
}
}
# フォーム形式のデコード
sub formdec {
,,,
Multipulなのはsplitして使うと。

411 :名無しさん@お腹いっぱい。:2001/06/28(木) 21:52 ID:???
>>410
問題は要するに「POSTしたときもQUERY_STRINGは有効なのか?」
ってことだけど、
こりゃCGIスクリプトじゃなくてWEBサーバの動作の問題だね。
経験則だけど、Apacheはオーケー。
他のWEBサーバは知らないけど、たぶんApacheコンパチでないの?
>>408の「Apache以外で問題あり」なんて話は聞いたことない。

412 :名無しさん@お腹いっぱい。:2001/06/29(金) 00:25 ID:Cs3QYnzU
 すいません、質問です(別板でこちらの板に来る様に言われましたので参りました)。
 データファイル(ログファイルやデータベース用のテキストファイル)の漏洩問題に
対処するためにこのデータファイルをドットファイル(拡張子部分は固有名詞を使わない
任意の文字列)にすれば、ある程度データファイルのセキュリティーは高まるのでしょう
か? どのくらいの安全性なのか、あるいは危険性はあるのか、どうか教えてください(
本の知識です)。 よろしくお願いします。
 ちなみに別板で最初に書きこんだ時のその板の皆様のご返答は・・・
 ・貸し金庫よりドットファイルは安全だ。
 ・パーミッションを640にしろ。
 ・拡張子を.cgiにして保存しろ。
 ・この板(このスレの板)に逝って質問しろ。
 でした。悩める厨房にどうか教えてください。混じれ酢希望です。

413 :名無しさん@お腹いっぱい。:2001/06/29(金) 00:32 ID:???
>412
基本的はドキュメントルートの外に置けばいいんじゃない?

414 :名無しさん@お腹いっぱい。:2001/06/29(金) 00:52 ID:???
412です。
>>413
早速有難うございます。ただその外に置く方法が分からないのです。
今使っている鯖(レンタル)は、やり方は分からないのですが、そ
の「/」の上の階層にファイルを置けないようなのです。マジでセキ
ュリティーのことを考えて色々思考錯誤しているのですが・・・。
 一つ一つ勉強ですが、回りに詳しい人間もいず、本で読んでも
理解するのが遅すぎて。。。だけど有難うございます。
 他にはどうでしょうか?いい機会(迷惑?)ですので教えて下さい。

415 :名無しさん@お腹いっぱい。:2001/06/29(金) 01:06 ID:???
>>414
そのサーバはHTMLやCGIを「/」の下に置くようになってんですか?
public_htmlがあるなら、そこが「ドキュメントルート」だよ。
つまりpublic_htmlディレクトリの外にデータを置けばいいということ。

416 :名無しさん@お腹いっぱい。:2001/06/29(金) 01:26 ID:???
あと、共有サーバで他のユーザにデータを見られないようにする
てゆー問題もあるね。
CGIが所有者権限で動くWEBサーバなら、データのパーミッションを600に。
そうじゃないWEBサーバなら、あきらめる。

417 :名無しさん@お腹いっぱい。:2001/06/29(金) 02:26 ID:???
412です。皆さんありがとうございます。
>>415
そうなんです。/の下にcgi-binディレクトリを置いたりやHTMLファイルを転送します。ただtelnetがその鯖では使えず、普通のftpソフトでは/より上に行くことができませんし、鯖の方も許可していないようで
す(←ただ私の言うことですので信用できないかもしれませんが・・・)
 こういう鯖ではルート以外におく方法の次善の手としてどういう方法があるのでしょうか(←416でパーミッション600という手を教えて頂きました)?
>>416
はい、共有鯖です。外に置いたら(というか置けると仮定したら)、やはり他人に見られますよね。そう言う場合600にすれば確かに最も安全ですよね。 ただこのデータファイル、不特定多数の人間が実行するスクリプトから
読みこんだり書きこんだりする代物ですので、600だとちょっと不都合が・・?
 結局、
>そうじゃないWEBサーバなら、あきらめる。

 やはり「外に置く」以外のセキュリティーはどれも似たり寄ったりなのですか?

418 :名無しさん@お腹いっぱい。:2001/06/29(金) 03:28 ID:???
>>417
>普通のftpソフトでは/より上に行くことができません
あー、そういう設定か。確かにそういうサーバありますね。
困ったもんだ。せめてもう一個上まで行けるように
設定しといてくれればいいのにね。

>不特定多数の人間が実行するスクリプトから
>読みこんだり書きこんだりする代物ですので、600だとちょっと不都合が・・?
「CGIが所有者権限で動くWEBサーバ」なら、600で不都合は
起きないから大丈夫です。
誰が実行しても、CGIファイルの所有者(あなた)が読み書き
してるのと同じことになります。

>やはり「外に置く」以外のセキュリティーはどれも似たり寄ったりなのですか?
いや、外に置くのも拡張子を".cgi"にするのも結局似たようなもので、
共有サーバの別ユーザから見られる危険性は一緒。
ひとつだけその危険がないのが、パーミッション600です。

とにかくそのサーバで、CGIが所有者権限で動くか
(別の言い方すると、CGIがSUEXECで動いてるか)を確かめるのが先ですな。

419 :名無しさん@お腹いっぱい。:2001/06/29(金) 07:51 ID:PEj2qvtM
412です。
丁寧なご返答有難うございます。(感謝
渦巻いていた疑問が晴れました。
こんな厨房の意見に混じれ酢をして頂いて本当に恐縮です。
鯖の設定と手元の本をもう一回確認して色々と試してみます。
ありがとうございました。

420 :名無しさん@お腹いっぱい。:2001/06/29(金) 14:37 ID:???
>>412
ドットファイルが安全というのはどういう意味か分からん。
WINDOWSのHIDDEN属性と近藤しちゃいないか?

↑の説を言い出したのが412氏じゃないことは分かっているけど。

421 :名無しさん@お腹いっぱい。:2001/06/29(金) 15:14 ID:???
最近のApacheは .ht で始まるファイルがデフォルトで外部から見えない
ようになってるという話と混同してるのでは?

422 :名無しさん@お腹いっぱい。:2001/06/29(金) 17:08 ID:qvcgEcjU
やれなかったのか
やらなかったのか
どっちかな

423 :名無しさん@お腹いっぱい。:2001/06/29(金) 21:04 ID:???


     ______
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (9      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < 600デキナイサーバカリナイジョウシキ
|| | | |  \ ┃  ┃/    \________
| || | |    ̄  ̄|

424 :名無しさん@お腹いっぱい。:2001/06/30(土) 01:02 ID:???
412です
皆さんレス遅れてすいませんでした。そして有難うございます。
>>420
ドットファイル(例:.hogehoge1233455)にすると、.txt .log .csvなどに
比べて外部からのアクセスによる不正なデータ閲覧を少しは防げる、というもの
でした。早速試したところ、確かにブラウザでの閲覧(ファイルを直接URLで指
定)を試みると、見れません。またファイル転送時にバイナリにすると良い様でし
た。ただいかんせん私のレベルは皆さんから見ればお粗末なもので・・・皆さん
にかかれば、あまり意味のない防御方法かもしれません。
>>421
例えば.hthogehoge1232344のようにすれば、上記の様なファイル名よりかは
安全性が高まると言うことでしょうか?う〜ん?もしよろしければ詳しく教えて
下さい。お願いします。
>>422
ルートディレクトリの外に置けるサーバーではありませんし、600にしたらスク
リプトが動きませんでした。従って
>>423
さんのように、よ〜〜〜〜く調べて鯖を変えなくては逝けないかもしれませんね。
しかしどうやったら調べられるんでしょうか??

425 :名無しさん@お腹いっぱい。:2001/06/30(土) 04:34 ID:???
>>424
Apacheのデフォルト設定で、
.hogehoge1233455 → ブラウザのURL直接指定で表示できちゃう
.hthogehoge1232344 → URL直接指定でエラーになって見れない
となってた時代があったんよ。
こういうのApacheのバージョンによってころころ変わんだけど、
もしかして現在のApache1.3.20だとドットファイルは全部アクセス不可?

なんにせよ、これはあくまでもデフォルト設定であって、
あとでいくらでも変えられるので、サーバごとに事情は異なる。
「ドットファイルは絶対アクセス不可」と思ってはいけない。
ただし自分で.htaccessを書いて「ドットファイルはブラウザからアクセス不可」に
設定することはできる。

レンタルサーバでデータのパーミッション600が可能か調べるには
そこのサポートにメールして聞けばいいんじゃない。
「CGIはsuEXECで動作してますか?」で相手はわかると思うよ。

426 :名無しさん@お腹いっぱい。:2001/06/30(土) 23:28 ID:???
>>424です
 >>425さん、ありがりがとうございます。かなり理解が深まりました。

 正直、セキュリティー(今回のドットファイルも含め)に関する情報って、
結構見つからないですよね(当たり前なんですけどね。ヘタレ厨房がス〜グ
悪用するから)。だから情報集めてそれを自分で噛み砕くのは本当に大変で
す。

 ありがとうございました。また分からないことがあったらこちらで質問
させて下さい。

# >そこのサポートにメールして聞けばいいんじゃない。
# サポートがなっていない鯖も多いようですので参考にしながら
# 別板・別スレで情報を集めます・・・。

427 :名無しさん@お腹いっぱい。:2001/07/01(日) 12:53 ID:???
perlで掲示板を作っているのですが、$mymail(メールアドレス欄)に
☆┌|∵|┘♪└|∵|┐♪┌|∵|┘ ☆(∂v∂)☆(ノ^0^)ノ☆\(^○^)/☆(∩.∩)☆(〃^∇^)o_彡☆(V)o¥o(V)
↑このような文字列を入れるとアンカータグが閉じられずに、他の発言にも
リンクが及んでしまいます。これを改善するにはどうしたらよいでしょうか?

# Emailからタグを作成
if ($mymail ne '') {
$mymail = "<A HREF=mailto:\"$mymail\"><b>$myname</b></A>";
}else{
$mymail = "<font color=\"#228b22\"><b>$myname</b></font>";
}

# 一行に変換する
&auto_link($mycomment);
$mycomment =~ s/\r\n/<BR>/g;
$mycomment =~ s/\n/<BR>/g;
$mycomment =~ s/<BR><BR>/<BR> <BR>/g;

# 書き込みメッセージ構成
$message = "<dt>$mymail <font size=\"2\">投稿日:$datestr</font><dd>$mycomment<P>";

428 :427:2001/07/01(日) 13:13 ID:???
ちなみにここです。色々テストしてみたらあなだらけでした
http://www30.tok2.com/home/muchm/bbstok2.cgi

429 :427:2001/07/01(日) 13:41 ID:???
代替文字で解決しようとしたのですが、
&nbsp;&quot;のような文字(&は半角)がそのまま出てしまいます
このように書きました

$mymail =~ s/</</g;
$mymail =~ s/>/>/g;
$mymail =~ s/"/"/g;
$mymail =~ s/ / /g;
$mymail =~ s/&/&/g;

430 :427:2001/07/01(日) 13:50 ID:???
ごめんなさい!自己解決しました
最後に”&”を置き換えてました

431 :名無しさん@お腹いっぱい。:2001/07/02(月) 14:11 ID:pXSk7yhs
Sakura Upload Boardでアドレスに
http://〜/cgiwrapDir/cgiwrap/sakura.cgi?new
とよけいな/cgiwrapDir/cgiwrap/という文字列がくっついてしまうのですが
どこを書きかえればよいですか。

432 :名無しさん@お腹いっぱい。:2001/07/02(月) 14:13 ID:???
$ENV{'SERVER_NAME'}
$ENV{'SCRIPT_NAME'}

433 :431:2001/07/02(月) 14:30 ID:pXSk7yhs
http://www.makani.to/akutoku/bbs/upload/dat/408.txt
これですがどなたかおしえてください。

434 :名無しさん@お腹いっぱい。:2001/07/02(月) 16:53 ID:W6DVOuys
C言語でURLエンコード、デコードする関数を教えてください。

435 :名無しさん@お腹いっぱい。:2001/07/02(月) 17:17 ID:???
>>434
そういうライブラリ探すべし。
検索キーワードは「C言語」「ライブラリ」「URLエンコード」

436 :名無しさん@お腹いっぱい。:2001/07/02(月) 22:26 ID:???
$FORM{'submit'}を見れないんだけど、どうしたらよいのでしょう?

<form action="./temp.cgi" method="post">
<input type="text" name="name">
<input type="submit" name="submit" value="書き込む">
</form>

temp.cgi 側

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";

my $query_string = undef;
my (@m_elements, $m_element, $name, $value);
use vars qw(%FORM);

if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
@m_elements = split(/&/, $query_string);
foreach $m_element (@m_elements) {
($name, $value) = split(/=/, $m_element);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
}

print <<"EOT";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<META CONTENT="TEXT/HTML; CHARSET=SHIFT_JIS" HTTP-EQUIV="CONTENT-TYPE">
<TITLE>出力結果</TITLE>
</HEAD>
<BODY>

<H3>出力結果</H3>
本文 $FORM{'name'} です。<BR>
実行 $FORM{'submit'} です。
</BODY>
</HTML>
EOT

exit;

437 :minima:2001/07/02(月) 22:28 ID:W/GXWllY
>>434さん
http://www.coara.or.jp/~tkuri/DOWN/urled.cpp
バグあったらごめんなさい。

438 :名無しさん@お腹いっぱい。:2001/07/03(火) 08:42 ID:???
>>436
type=submit って、見えたっけ?

439 :431:2001/07/03(火) 12:40 ID:OhZUTkuw
おしえておくれ・・・

440 :名無しさん@お腹いっぱい。:2001/07/03(火) 13:53 ID:???
>>439
Sakura Upload Board なんてマイナーなCGIをソースも出さずに
何処直しゃ良いなんて教えられるわけねーだろ。

お前が知ってるCGIは全員知ってるとでも思ってんのか?

441 :名無しさん@お腹いっぱい。:2001/07/03(火) 13:54 ID:???
>>437
さんきゅさんきゅさんきゅ

442 :名無しさん@お腹いっぱい。:2001/07/03(火) 14:31 ID:???
>>438
ttp://www.cec.co.jp/usr/hasegawa/Docs/CGI/form-example/two_button.html

443 : :2001/07/03(火) 14:49 ID:NUoQLxF.
Perlの質問です。
フォーム入力で「aaaa"bbbb」と入力されたとする。
CGIのデコードで
~s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c",hex($1))/ge;
として、確認画面で「name=aaaa"bbbbです」と表示した。
その同画面で
print "<input type=\"hidden\" name=\"name\" value=\"$name\">\n";
と言う風に出力し(仕様)、さらに表示させようとすると
valueの中身が「aaa」で切れてしまう。
これを解決する方法を教えてください。

444 :432:2001/07/03(火) 14:53 ID:???
>>431
答えただろうがボケガァ!!

445 :見習い君:2001/07/03(火) 14:56 ID:???
>>443
$value =~ s/"/&quot;/g;

446 :431 :2001/07/03(火) 15:01 ID:???
>>440
>>433に書いておいたはずだけど。

447 :431:2001/07/03(火) 15:05 ID:???
http://www.makani.to/akutoku/bbs/upload/dat/584.txt
はい。

448 :443:2001/07/03(火) 15:15 ID:4CbQmAdw
>>445
ありがとうございます。
このようにやると、
name=aaaa"bbbbと表示されますが、ソースは
<input type="hidden" name="name" value="aaaa&quot;bbbb">
となりますよね?
これはまた&quot;を元に戻す処理を入れ、ファイルなりに落とすという
方法(ファイルに落としたい)をとるしかないのでしょうか。

449 :名無しさん@お腹いっぱい。:2001/07/03(火) 15:42 ID:???
アングラ野郎は 初級ネット板 or ダウソ板 へ

450 :名無しさん@お腹いっぱい。:2001/07/03(火) 15:44 ID:???
>>448
ソース上は「&quot;」になりますが実際に送られるのは「"」です。
つーかまず試してから物言え。

451 :438:2001/07/03(火) 16:40 ID:???
>>442
サンクスコ
見えるんだ…シラナカッタヨ

>>436
お詫びにこっちの環境で動作テストしてみたよ。
上のForm部分を HTMLに入れて、
下のソースは temp.cgiとして実行。
環境[ Apache 1.3.14 + Perl 5.2.2 ]

で…問題なく見えたけど。
ボタンを複数にした場合も、それぞれの Value値が渡ってきたよ?
ソース以外に問題がある可能性が高いと思われ。

452 :438:2001/07/03(火) 16:41 ID:???
>>451
記入漏れ…
Win32(Win2KServer)環境なの。

453 :436:2001/07/03(火) 18:59 ID:???
ありがとうございます。
当方 VirtualAvenue です。
$FORM{'name'} しか見えません。

454 :名無しさん@お腹いっぱい。:2001/07/03(火) 20:02 ID:???
ブラウザは関係あってもサーバが関係あるはずないだろ
実験に使ったブラウザの名前を書けよ

455 :名無しさん@お腹いっぱい。:2001/07/03(火) 21:36 ID:???
>>454
は ?
CGIが出力したHTMLに何も書いてないから
何も表示されないわけで,ブラウザとは無関係だろ...

456 :438:2001/07/04(水) 00:19 ID:???
>>454
「あるはずない」って断言するのはどうだか知らんがね。
そもそもブラウザがデータを渡してない可能性がある…ってことか?
だったらそう言えや。

IE5.5 と NC4.75で確認したけど、どちらも動作を確認。
ちなみに、俺の婆茶のアカウントで試したが、やはり動作を確認。
Freewebアカウントでも動作を確認。
仕事でやってるなら、更に IEバージョンごとにテストするところだが、
今は面倒なのでやらない。(ワラ

結果、>>436 氏の環境の問題である可能性が高くなった。
これで満足か?

457 :436:2001/07/04(水) 10:28 ID:???
レス遅くなりました。IE5.0 です。

それで、同じ作業を(単にフォームに適当な文字を記入して送信)
繰り返してると、たまに

実行 書き込む です

が見えるようになりました。
同じ文字を入力しても、見える時と見えないときがあります。
私の IE がウソコなんでしょうか?
それとも IE の設定に関係あるんでしょうか?

458 :名無しさん@お腹いっぱい。:2001/07/04(水) 20:23 ID:???
>>457
format c:

459 :名無しさん@お腹いっぱい。:2001/07/04(水) 21:11 ID:???
>>458
つまんないから氏ねよ

460 :436:2001/07/04(水) 23:04 ID:???
やっと原因が解りました!!

サブミットボタンをマウスでクリックすると上手く逝き、
リターンキーで送信すると上手く逝きませんでした!!
私は Win では殆どマウスを使わないので
(ショートカットキーやタブで済ます)、気付きませんでした。。。

原因が暫く掴めなかったので、Linux に
Apache 2.0.16 βとMozilla 0.9.2 を入れてローカルでも
実験しました。それでも$FORM{'submit'} が
たまにしか表示されないので、もう諦めて
回線切って氏のうかと思ってましたが、
解ってよかったです。お騒がせしました。

461 :名無しさん@お腹いっぱい。:2001/07/04(水) 23:48 ID:???
>>460
あぁ、それが原因だったのか。
よく考えたら俺も昔同じ事に引っかかってた事があった。(w;
気付かずスマソ。

462 :名無しさん@お腹いっぱい。:2001/07/05(木) 01:06 ID:iTVp4ylE
パターンマッチについて質問します。

数字1文字か2文字、または、半角カタカナだったら真、
それ以外は偽、という正規表現ではまってます。
どなたか、お答えお願いします。

463 :名無しさん@お腹いっぱい。:2001/07/05(木) 06:29 ID:???
>>462
ttp://www.din.or.jp/~ohzaki/perl.htm#JP_Trans
あたりを読むと良い鴨。

464 :名無しさん@お腹いっぱい。:2001/07/05(木) 15:58 ID:???
CGI設置したんですが
拡張子を他のものに変更したいんですが、、無理でしょうか
よく掲示板なのにindex.htmlとかありますよね?
あれってどうやるんですか?

465 :名無しさん@お腹いっぱい。:2001/07/05(木) 16:10 ID:???
>>464
書き込みをされる度に、データファイルと一緒にindex.htmlを書き換える。
それでその中に<form action=bbs.cgi>と入れておく。
書き込み記録はCGI。
記入欄はHTML。
わかるかな?

466 :名無しさん@お腹いっぱい。:2001/07/05(木) 18:18 ID:CmVrVJtE
基本的な質問スイマセン。
掲示板を作ったはいいんですが、ログファイルを
直リンとかURL直入力で落とされない様にする為にはどうしたらいいですか?
IPアドレスを記録していますので、管理者(=自分orSU)以外から見られないように
何らかの方法で設定したいのです。

ちなみに、サーバは skipup.com です。

467 :JAPU:2001/07/05(木) 18:22 ID:???
HTTPで見られるところ以外に置けばよろしい。
たとえば、~/public_html/ 以下のみが見られるようなら、
~/log/ にでも置きましょう。

468 :466:2001/07/05(木) 19:04 ID:CmVrVJtE
>>467
早速ありがとうございます。
その方法を試してみたのですが、skipup.com では無理でした…
/web/* にHTML文書があり、/web/cgi-bin/* にCGIをおくというのが
skipup.com の設定なのですが、
どうやらCGI上でも/web/と同レベルの他ディレクトリ(/cgi-data/*)には
アクセスできないようです。
念の為絶対パス指定も相対パス指定も試したのですが、ダメでしたxx

IPアドレスは暗号化して、IP調査はダウンロードして復号する、という方向で
外的な匿名性を持たせる方向ですすめます。

469 :昆布茶:2001/07/05(木) 19:48 ID:???
↑パーミッションを600にすればいいだけだと思うが。

470 :名無しさん@お腹いっぱい。:2001/07/06(金) 00:38 ID:.S0aJ5pE
mod_perlを使用すると、親切にもmainに相当するパッケージ名
を自動的に割り当ててくれますが、スクリプトを作る場合は
これに素直に従い、サブルーチン等に自分でパッケージ宣言
しない方が吉なんでしょうか。

471 :名無しさん@お腹いっぱい。:2001/07/06(金) 01:40 ID:dC0yYHsk
1、CGIでURLエンコードするときのデフォルトの文字コードは決まってるんでしょうか?
2、SJISのエンコードは %XX で言いと思うんですが、他の文字コードのエンコードは
どうやってやるのでしょうか?
UNICODEとかの場合は %XXXX で良いのでしょうか?

472 :名無しさん@お腹いっぱい。:2001/07/06(金) 02:06 ID:???
>>470-741
まずは試してみろ。
うまくいかなきゃまた聞きに来い。

473 :名無しさん@お腹いっぱい。:2001/07/06(金) 07:54 ID:???
>>470-471
試すのはいいけどローカルでな。
自分で試すことによって他の問題が出た時も対処がしやすくなる。
頑張れ。

474 :名無しさん@お腹いっぱい。:2001/07/06(金) 18:05 ID:YlE0Cv3o
http://www2.to/05F

475 :モヘンジョ:2001/07/12(木) 01:10 ID:Li6mv1Jk
CGIの実行速度を測ってくれるサイトってありませんか?
Kentのは重いって聞いたんですけど、実際他と比べてどうなのかなと。

476 :名無しさん@お腹いっぱい。:2001/07/12(木) 01:36 ID:???
use Benchmark
times()

477 :モヘンジョ:2001/07/12(木) 21:50 ID:.DP5dWOk
できればもう少し詳しくお願いします。

478 :名無しさん@お腹いっぱい。:2001/07/12(木) 22:05 ID:???
君は少しでも476に書かれた事について調べましたか。
http://www.google.com/search?num=100&hl=ja&safe=off&q=perl+use+Benchmark+times%28%29&lr=lang_ja

479 :名無しさん@お腹いっぱい。:2001/07/12(木) 22:18 ID:???
>>477
478に禿げしく同意。
せめて検索くらいしましょう。
それから、perldocくらい自分で見れるようになってください。

480 :名無しさん@お腹いっぱい。:2001/07/13(金) 02:56 ID:9y1whwlE
掲示板作成時、デザインとプログラムを分けて作りたいんだけど、
HTML::Templateモジュールとかのオブジェクト指向でないスクリプト
で良い物ってありますか?

481 :名無しさん@お腹いっぱい。:2001/07/13(金) 03:33 ID:???
>>480
自分で掲示板作るんだよね?
モジュールって基本的に再利用可能でカプセル化されたものだから、
オブジェクト指向はついて回ってくるというか。

Exporterで関数指向にしてしまう。これは改変だけど。
自分で作る。

こんなとこかしら。答えになってないようで悪いが。
せっかく便利なものがあるんだから、使ったほうがいいと思うよ、でも。

482 :480:2001/07/13(金) 10:48 ID:???
>>481
オブジェクト指向ど素人やからしょうもない事、
聞いてしまいました;;

てーねーなレス感謝。

483 :名無しさん@お腹いっぱい。:2001/07/13(金) 12:14 ID:???
オブジェクト指向なんて慣れてしまえばどうってことはない。
俺はリファレンスを理解する方が苦労したYO!

484 :奈々氏さん:2001/07/13(金) 15:12 ID:i.TxHOnw
CGI ではなく フォームの質問なんですが…。

フォームが表示されたときに、特定のテキストエリアにフォーカスが
行っていて、マウスでクリックしなくても、入力を始められるようにする
にはどうすれば良いでしょうか?

485 :名無しさん@お腹いっぱい。:2001/07/13(金) 15:48 ID:???
>>484
JavaScriptの勉強をしよう。

486 :484:2001/07/13(金) 18:07 ID:i.TxHOnw
>>485
JavaScript の勉強をしてみました。

   <input type=text name=text1 onLoad="this.focus()">

ここまで書いてみて挫折。うまく移ってくれません。
onLoad というのが違うようなのですが…。

487 :名無しさん@お腹いっぱい。:2001/07/13(金) 18:10 ID:???
>>484
onLoad()は<body>に書くがよろし。
つーか板違いか、これ(w
詳しく聞きたいならWeb製作板にいきましょう。

488 :名無しさん@お腹いっぱい。:2001/07/13(金) 18:10 ID:???
>>486
JavaScriptスレに逝け。

489 :484:2001/07/13(金) 18:23 ID:???
できましたー。
皆様ありがとうございました。

490 :名無しさん@お腹いっぱい。:2001/07/14(土) 10:40 ID:???
現在PerlでCGIを作っています。
テストはもちろんローカルで行っています。
そこで、もし無限ループに陥った場合は再起動すればいいのでしょうか?

491 :名無しさん@お腹いっぱい。:2001/07/14(土) 10:54 ID:???
>>490
俺はPerl.exeを強制終了させてる。

492 :名無しさん@お腹いっぱい。:2001/07/14(土) 16:14 ID:???
>>491以外の方法は思いつかないが…

493 :名無しさん@お腹いっぱい。:2001/07/14(土) 20:31 ID:.p5/Qjsw
既出かもしれないんだけど、トップページでCGI使う場合(検索エンジンとかで)
トップページのアドレスが長くするのを防ぎたいんですが
フレームを使う以外の方法ありませんかね?板違いだったらスマソ

494 :名無しさん@お腹いっぱい。:2001/07/14(土) 21:35 ID:???
<!--index.html-->
<form acrion="foo.cgi"></form>

495 :名無しさん@お腹いっぱい。:2001/07/14(土) 21:35 ID:???
s/acrion/action/

496 :名無しさん@お腹いっぱい。:2001/07/15(日) 00:47 ID:???
493が何を言ってるのか判らないのは俺だけですか

497 :名無しさん@お腹いっぱい。:2001/07/15(日) 00:52 ID:???
>>496
俺もわからない

498 :493:2001/07/15(日) 04:38 ID:SggsQjA6
あっすみません

CGIをトップページにもってくると、ページのアドレスが
ttp://www.XXX.ne.jp/~XXX/cgi-bin/(スクリプト名)/XXX.cgi
っていう風に長くなっちゃうんですが、

ttp://www.XXX.ne.jp/XXX
という風に短くしたいのですが。

499 :名無しさん@お腹いっぱい。:2001/07/15(日) 06:34 ID:gUXi0obQ
>>498
.htaccess

500 :名無しさん@お腹いっぱい。:2001/07/15(日) 11:17 ID:???
DirectryIndex だっけ?
アレってファイル名じゃなくてディレクトリ名まで指定できるの?

501 :名無しさん@お腹いっぱい。:2001/07/15(日) 18:15 ID:???
あの〜厨房な質問で申し訳ないんですが・・
DUKEってなんですか?
これって何に使うの?

502 :名無しさん@お腹いっぱい。:2001/07/15(日) 18:18 ID:???
>>498
cgi-binでしかcgiが動かない設定なのか?

503 :名無しさん@お腹いっぱい。:2001/07/15(日) 18:48 ID:???
>>501
厨房が自分の力を誇示する為に使うツール。

DUKEを使う=ゴリラのドラミング(胸を叩くアレ)のようなもん

504 :なー:2001/07/15(日) 19:27 ID:???
DUKEってまだ使ってるやついるのか?(^^;

505 :なー:2001/07/15(日) 19:33 ID:???
>>500
できるよ。
DirectryIndex ./cgi-bin/hoge/hoge.cgi
とかね。うちのtopは掲示板だし(わ

506 :nuc:2001/07/16(月) 01:57 ID:mntjpSsQ
if (!open(NOTE,"+<$visit_file")) { &error("書けない"); }
flock(FILE, 2);
truncate(FILE, 0);
seek(FILE, 0, 0);
print NOTE @DATA;
close(NOTE);
↑こういうふうにopenとflock,truncate,seekの
ファイルハンドルが違っていてもOKなんでしょうか?
ファイルハンドルを合わせなくても正常に動作しているような
気はするけど、実際のところが知りたいす。

507 :名無しさん@お腹いっぱい。:2001/07/16(月) 02:07 ID:???
$a += 10;
$b *= 2;
$b -= 5;

↑こういうふうに"+="演算子と"*=", "-="演算子の
変数が違っていてもOKなんでしょうか?
変数を合わせなくても正常に動作しているような
気はするけど、実際のところが知りたいす。



*a = *b
とすれば正常に動くがな。

508 :名無しさん@お腹いっぱい。:2001/07/16(月) 02:40 ID:???
>>507
意味不明。日本語で書いてください。

509 :名無しさん@お腹いっぱい。:2001/07/16(月) 02:54 ID:???
>>508
507は506を馬鹿にしてるだけだと思われ。

510 :名無しさん@お腹いっぱい。:2001/07/16(月) 21:44 ID:hw6Oxuec
掲示板スクリプトで、
x.cgi ->(実行ファイル)と
y.pl -> (環境設定ファイル)があったとして、
実行ファイルに環境設定ファイルを読み込ませる場合、普通に

require './y.pl';

としてる物と、サブルーチンで設定変数の読み込みをさせてる物とがあるが、
どっちの方がいいか?
またそれぞれのメリットなど教えて下さい。

511 :名無しさん@お腹いっぱい。:2001/07/17(火) 00:25 ID:???
freewebのページで「ずるぽん+擬古猫 2000年10月26日版」
の、アプロダを設置しようとしても500エラーが出てしまいます
アスキーでftp転送し、パーミッションもあってるはずなんです。

原因として考えられることををご教示ください。
すれ違いなら素直にそういってください。夏厨房でスマソ

512 :nuc:2001/07/17(火) 00:37 ID:wxI8qTz.
同じファイルハンドルにしないと効かないんすね。
配布されていたスクリプトがなぜかファイルハンドルを
別にしていたので1年くらいずっとそのままで使っていた。
わざわざスイマセンした。

513 :名無しさん@お腹いっぱい。:2001/07/17(火) 00:44 ID:???
最近本を読めば分かるようなことを聞いてくるやつが多いな。

>>510
どっちでも大差ないと思うが。
というか「サブルーチンで設定変数読み込み」ってなんだ?
open-parse-closeで値を取得するくらいならrequire/doの方が早いと思うぞ。

>>511
一行目が違う。

それでもだめならKCatch.pmを使え。

514 :名無しさん@お腹いっぱい。:2001/07/17(火) 00:47 ID:???
>>511
一応…広告ちゃんと入れてる?

515 :名無しさん@お腹いっぱい。:2001/07/17(火) 13:59 ID:???
>>511
無理じゃない?
わしはあきらめた。

516 :CGIヲタク:2001/07/17(火) 22:01 ID:YSWaJfE2
CGIのデコード処理が解りません。
0から教えてください。

517 :名無しさん@お腹いっぱい。:2001/07/17(火) 22:09 ID:???
まず精神統一をします

518 :CGIヲタク:2001/07/17(火) 22:10 ID:05GVs.SU
てゆうかデコード処理しないとやばい?

519 :名無しさん@お腹いっぱい。:2001/07/17(火) 22:46 ID:???
まず座禅を組みます。

…と、その前に滝に当たった方がいいだろうか?

520 :CGIヲタク:2001/07/17(火) 22:53 ID:05GVs.SU
すいませんけどマジメに答えて下さい。
本当に困っているんです。

521 :名無しさん@お腹いっぱい。:2001/07/17(火) 22:59 ID:???
>>519
まず頭を剃らなくては。

522 :名無しさん@お腹いっぱい。:2001/07/17(火) 22:59 ID:???
0から、か。
ならまず
#!/usr/bin/perl
0
__END__
これをやってみろ。

523 :名無しさん@お腹いっぱい。:2001/07/17(火) 23:05 ID:???
>>520
そこまで言うならマジレスするけど、貴方の質問には不足が
有り過ぎです。

・『0から教えてください』って、自ら努力しない人に教えるほど人は
出来てないの、私は。
・どう言うシチュエーションなのさな?コードくらい書いて例示しろっての。
・そもそも『CGIのデコード処理』って何の事よ?

少なくとも、らくだ本の前に国語の教科書を見なおしてくれ。

524 :名無しさん@お腹いっぱい。:2001/07/17(火) 23:20 ID:???
>>523 ・そもそも『CGIのデコード処理』って何の事よ?

逝って良し!!

525 :名無しさん@お腹いっぱい。:2001/07/17(火) 23:21 ID:???
CGIオタクが解りません。
0から教えてください。

526 :not 523:2001/07/17(火) 23:27 ID:???
>>524=CGIヲタ
(プ

CGI:
 WWWで, WWWブラウザからの要求に対してサーバが別のプログラムを起動実行し,
 結果をWWWブラウザに返す処理を行なうためのインターフェイス.

コイツをデコードしてどうするつもりだよ(ワラ

527 :名無しさん@お腹いっぱい。:2001/07/18(水) 01:34 ID:???
とりあえず「CGI デコード」を google 検索の結果
http://www.google.com/search?num=100&hl=ja&safe=off&q=%43%47%49%20%83%66%83%52%81%5B%83%68&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
って,このくらいは調べたんだよね…調べた上での質問だよね….
いやしかし,調べたら 0 よりは進歩してそうな気もするし….

528 :名無しさん@お腹いっぱい。:2001/07/18(水) 09:52 ID:???
>>526
自分の命がかかった場面でもなお相手とのやり取りでそういう構文エラー出してみせるなら
その時は褒めてやるけどね。

529 :526じゃないよ:2001/07/18(水) 15:48 ID:???
>>520
自分の命がかかった場面でもなお相手とのやり取りでそういう日本語と
態度を出してみせるなら その時は褒めてやるけどね。

530 :名無しさん@お腹いっぱい。:2001/07/19(木) 05:11 ID:???
要するにアホ同士の極めてアホなやりとりというわけで。

531 :名無しさん@お腹いっぱい。:2001/07/19(木) 13:56 ID:TX55hRGo
がいしゅつかもしれませんが優しく教えてください。

J-SKY対応のメールフォームCGIを探しています。
どこかのサイトで配布していませんか?
おしえてください!!

532 :名無しさん@お腹いっぱい。:2001/07/19(木) 15:12 ID:d2nShnpo
CGIに限った話ではないが、
掲示版やチャットなどでよく使うので質問します。
クリプトの塩って、どうやって決めればいいのですか?

533 :名無しさん@お腹いっぱい。:2001/07/19(木) 15:23 ID:???
「クリプトの塩」って何だよ。

534 :名無しさん@お腹いっぱい。:2001/07/19(木) 15:39 ID:d2nShnpo
>>532
漏れはユーゼ名を塩にしてパスをCRYPTしてるが、塩を忘れないからいいのでは。

535 :名無しさん@お腹いっぱい。:2001/07/19(木) 15:58 ID:???
>>532
time()とか[a-zA-Z0-9/.]とかかな、俺は

536 :名無しさん@お腹いっぱい。:2001/07/19(木) 16:15 ID:3AQoVu6g
>>531
ですが、教えてくださいませ・・・・

537 :名無しさん@お腹いっぱい。:2001/07/19(木) 17:09 ID:???
スレ違い
http://corn.2ch.net/test/read.cgi?bbs=php&key=988777987&ls=100

538 :名無しさん@お腹いっぱい。:2001/07/19(木) 17:16 ID:SOCZ4ghs
>>533
無知って怖いねー
クリプト=crypt
塩=salt
ネタだったらスマソ
ってかこれで間違っててもスマソ

539 :名無しさん@お腹いっぱい。:2001/07/19(木) 17:30 ID:???
クリプトの塩などとわざわざ難解な表現をするあたりでまともに聞く気があ
るとは思えんのだが
ネタだったらスマソ

540 :名無しさん@お腹いっぱい。:2001/07/19(木) 17:59 ID:???
ちなみに、saltもどこかに保管しておかなければいけないですね。
そうすると、たとえばユザー認証用のファイルを作るとすれば
username, crypted pass, salt
ってかんじでいいのかな。
ちなみに、saltがばれたり容易に推測できるのはやばいのかな
phpマニュアルでは、saltに乱数使ってるよ。

541 :名無しさん@お腹いっぱい。:2001/07/19(木) 18:01 ID:???
クリプトの塩って、チュニジアあたりでとれる良質の岩塩のことだったような気が

542 :名無しさん@お腹いっぱい。:2001/07/19(木) 18:06 ID:???
>>540
saltの保管は照合するため?
通常はcrypted passの頭2文字がsaltだから要らない気が。
MD5とかだったらちょい違うけど。
って外してたらスマソ

543 :JAPU:2001/07/19(木) 18:25 ID:???
DESの時は先頭2文字が、MD5の場合は "$" で挟まれた2番目に salt が入ります。
でも、照合するときには crypt の第2引数にそのまま入れればOK。わざわざ salt を抜き出すのは移植性の低下につながります。

die "sage" if(not crypt($input_passwd, $crypted_passwd) eq $crypted_passwd);

わざわざ salt を使うのは /etc/passwd が誰でも読めた時代の名残か? (単なる一方向性関数だけだと、たまたま同じパスワード使っている場合にヤバそう。)

544 :名無しさん@お腹いっぱい。:2001/07/20(金) 15:09 ID:1f3fgK9Y
Web制作板で聞いたらこちらの板の方をすすめられたのでおじゃましにきました。

シンプルな掲示板CGIを探しています。
・スタイルはTcup風。ごちゃごちゃしていない。
・過去ログ生成を自動でやってくれる。
・ドコモ、Jフォンからもアクセスできる。
・URLやメアドがそのままでない。(「URL」「Mail」とかいう文字にリンクしてくれる)
・文中に書き込んだURLはオートリンクされる。

もうずっといろいろ探してるんですが、
これらの条件を満たすものが見つかりません。
どなたかこういった掲示板CGIに心当たりありましたら教えてください。

545 :名無しさん@お腹いっぱい。:2001/07/20(金) 16:13 ID:???
>>544
こちらへどうぞ。
http://corn.2ch.net/test/read.cgi?bbs=php&key=988777987&ls=50

546 :名無しさん@お腹いっぱい。:2001/07/20(金) 19:57 ID:wVCDVsI.
http://www2.to/05F

http://www2.to/03F

http://www2.to/01F

http://www2.to/02F

http://www2.to/04F

547 :名無しさん@お腹いっぱい。:2001/07/22(日) 01:46 ID:vWoEzwQk
Linux Apachでイントラネットのウェブサーバを立てていますが、
アクセスしてきたクライアントのIPアドレスはわかるのですが、windows機のログインユーザ名を取得するにはどうしたらいいですか?

548 :名無しさん@お腹いっぱい。:2001/07/22(日) 10:10 ID:QqOnPr.6
Windows2000付属のWebServerでC言語CGIって可能ですか?
コンパイルしたオブジェクトの拡張子を.cgiにしてもエラーが出てしまうのですが・・・・

549 :名無しさん@お腹いっぱい。:2001/07/22(日) 13:21 ID:???
>>547
ログインユーザ名?
認証かかってるページへのユーザ名の事?
それなら環境変数 REMOTE_USERでとれる。Apacheのログにも残る。
Winが立ち上がった時にでるヤツのは知らん。
つかそんなモンセキュリティ上取れるのか?
ってIEの事だから穴突いたりしたら取れるんだろなぁ・・・。

>>548
PerlのCGIを動かす場合、IISは拡張子.cgiのファイルに対し、
c:\path_to_perl\perl.exeを使って実行する。
つことはCで作ったCGIも拡張子.cgiにすると、c:\path_to_perl\perl.exe
を使って実行しようとしてしまう。

んでCは単体で動くから多分拡張子は.exeにすれば良いと思う。

550 :名無しさん@お腹いっぱい。:2001/07/22(日) 14:19 ID:???
>>547
初回のアクセスでVBスクリプトなどでコンピュータのユーザ名を取得(わからないけど、VBスクリプトだったら、Win固有のことができるのでは?

で、そいつをクッキーでもらう。次回からそのクッキーを使ってアクセス管理。

VB使いの人、教えてやってくれ。

551 :名無しさん@お腹いっぱい。:2001/07/22(日) 15:33 ID:QqOnPr.6
>>549さん
レスありがとうございます。
しかし拡張子を.exeにしても

「CGIエラー 指定された CGI アプリケーションは、HTTP ヘッダーを 一部しか返していません。返されたヘッダーは:」

というエラーが英語で出てしまいます。
しかしパーミッション・ヘッダーに誤りはないと思います。
試しに実行ファイルをループさせたり色々実験しましたが
どうやら実行すらされていないようです。
色々調べた結果、Pathが設定されていない場合にもこのエラーが表示されるようですが・・・・
(例えばc:\path_to_perl\perl.exeを使って実行するように設定してあるがperl.exeが存在していなかったり、
    .dllが存在しなかった場合)

win2000+IIS+C言語でCGIを実現できた方アドバイスお願いします。
コンパイラはgccを使っています。

552 :名無しさん@お腹いっぱい。:2001/07/22(日) 16:46 ID:???
>>551
ちゃんと環境に合わせたコンパイルをしたんでしょうか?
例えば、LinuxでコンパイルしたものはLinuxでしか動きません、通常は。

553 :名無しさん@お腹いっぱい。:2001/07/22(日) 17:47 ID:???
試しに拡張子exeでコマンドラインから入力してみるとか

554 :竹村健一:2001/07/23(月) 20:38 ID:LfLDUuSI
CGIファイルの中身をテキストで開いて変更したのですがそのまま保存しますとテキストでの保存となってしまうのです。
中身を替えた後もう一度CGIファイルのままで変更の設定を保存するにはどうすれば良いのでしょうか?
素人なので申し訳御座いませんが教えて頂けないでしょうか。

555 :名無しさん@お腹いっぱい。:2001/07/23(月) 21:43 ID:???
>>554
$ mv foo.txt foo.cgi
C:\> ren foo.txt foo.cgi

556 :竹村健一:2001/07/23(月) 22:01 ID:LfLDUuSI
すいません。555さんちょっと意味がわからないのです・・・

557 :名無しさん@お腹いっぱい。:2001/07/23(月) 22:29 ID:???
ネタは他でやれ。

ネタじゃないならWin使ってるならWin、Unix使ってるならUnix、
MS-DOS使ってるならMS-DOS、BeOS使ってるならBeOSの勉強しろ。

Macは俺が嫌いだから捨てろ。

558 :名無しさん@お腹いっぱい。:2001/07/23(月) 22:46 ID:???
夏休みだよ・・・勘弁してくれ。

559 :名無しさん@お腹いっぱい。:2001/07/23(月) 22:51 ID:0Wghze/M
>>554 メモ帳を使っているなら、ファイル名をダブルクォーテーションでくくって保存すべし。
例 "abcd.cgi"。 これをしないと abcd.cgi.txt となる。

560 :竹村健一:2001/07/23(月) 22:52 ID:???
ネタ に マジレス カッコワル(ぷ

561 :名無しさん@お腹いっぱい。:2001/07/23(月) 23:25 ID:???
このスクリプトで2>&1は何のために行っているのでしょうか。
標準エラー出力を標準出力に変更するということらしいのですがそうする意味がわかりません。
ちなみにこれはあるスクリプトから他のスクリプトを実行させる物のようです。

open(EXEC,"| abc.cgi 2>&1");
while (<STDIN>){
print EXEC;
}

それとこのとき、実行されたスクリプトがはき出した内容を受け取るにはどうすればいいのでしょうか。

562 :名無しさん@お腹いっぱい。:2001/07/23(月) 23:26 ID:7GeYowA6
age

563 :JAPU:2001/07/24(火) 00:07 ID:???
>>561
man sh すれ。

[n1]>&n2
duplicate stdout (or file descriptor n1) to file descriptor n2
(FreeBSD General Commands Manual より)

0 = stdin
1 = stdout
2 = stderr
なので、標準エラー出力を標準出力にリダイレクトすることを表す。

564 :564:2001/07/24(火) 01:00 ID:1Q8OCeBA
今CGI動かしてる鯖が結構不安定なので、前回アクセス時から1時間以上経過していれば
別鯖にデータファイルのみを転送したいと思っています。
Perlで可能でしょうか?

565 :名無しさん@お腹いっぱい。:2001/07/24(火) 01:20 ID:???
>>561
ということは単に実行するスクリプトがはき出したstderrも一緒に出力するため
っていうことでいいのでしょうか?

後の方の質問ですが
$_ = <EXEC>;で普通に読み出すことができました。
これで読み出さなければ勝手に標準出力に出力してしまうのでどうやって
読み出すのか迷っていました。これはperlの仕様なのでしょうか??

566 :名無しさん@お腹いっぱい。:2001/07/24(火) 01:27 ID:???
Perlの仕様っていうか、とりあえず一般的なプログラム言語のI/Oの復習とか。perldoc -f print とか。

567 :JAPU:2001/07/24(火) 01:29 ID:???
>>561
書き忘れた。

IPC::Open2 を使いなさい。

SYNOPSIS
use IPC::Open2;
$pid = open2(\*RDR, \*WTR, 'some cmd and args');
# or
$pid = open2(\*RDR, \*WTR, 'some', 'cmd', 'and', 'args');
(man IPC::Open2 より)

open3 もあるので、用途によって適当にどうぞ。

568 :561:2001/07/24(火) 02:16 ID:???
>>566
perldocを見てみましたがなぜ勝手に出力するのかについては書いていませんでした。
かなり適当なコードを書いても動いてしまうので曖昧な理解で終わってしまいます。
自分のマニュアルの読み方がまずい&UNIXに関する知識が乏しいせいかもしれませんが・・・。

>>567
調べてみたところこれは直感的でいい感じですね。
教えていただいてありがとうございます。

569 :名無しさん@お腹いっぱい。:2001/07/24(火) 18:04 ID:???
Portlandって所のアカウントでKENTのCGIを使うと500が返ってくるんですけど、
何か対策出来ないものでしょうか。(http://www.portland.co.uk/)
VirtualAvenueやHypermartでは問題なく使う事が出来ます。

570 :名無しさん@お腹いっぱい。:2001/07/24(火) 18:43 ID:???
>>569
Perlのパスが違うというオチは勘弁。

571 :名無しさん@お腹いっぱい。:2001/07/24(火) 20:49 ID:???
>>569
改行コードが違うってオチは禁止。

572 :名無しさん@お腹いっぱい。:2001/07/24(火) 21:35 ID:4urEwZxY
>>570-571
いえ、どちらも大丈夫です。
Our machines are very strict when executing Perl, and bad code is always rejected.
こう書いてあったので、「悪いコード」があるって事らしいのですが、
他で使えたものでどこが悪いのか分からなくて・・・。
ものはYY-BOARDです。

573 :名無しさん@お腹いっぱい。:2001/07/24(火) 22:37 ID:???
use strict環境下でしか動かないとか。
デフォルトで-wTとかで動くようになってるとか。

574 :名無しさん@お腹いっぱい。:2001/07/24(火) 22:59 ID:???
>>572
KCatch.pmを使え

575 :名無しさん@お腹いっぱい。:2001/07/24(火) 23:22 ID:nE97sqD.
>>574
これって、何も出ない方が良いんですよね・・・?
見るのも嫌なほどぎっしり埋まってくれてます・・・

576 :名無しさん@お腹いっぱい。:2001/07/25(水) 11:18 ID:???
その内容を書けよ

577 :名無しさん@お腹いっぱい。:2001/07/25(水) 16:45 ID:???
tok2で掲示板を作っています。cookie文字列がおかしくなってしまいます。
Location問題解決のためにmetaタグでrefleshをするのですが、[書き込む]→[refleshページ]→[掲示板表示]のとき
[掲示板表示]でのみcookieが文字化けしてしまいます。解決する方法はあるでしょうか
perlソースの日本語に関係している部分です↓

# &init_form('euc');
sub init_form {
local($query, @assocarray, $assoc, $property, $value, $charcode, $method);
$charcode = $_[0];
$method = $ENV{'REQUEST_METHOD'};
$method =~ tr/A-Z/a-z/;
if ($method eq 'post') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$query = $ENV{'QUERY_STRING'};
}
@assocarray = split(/&/, $query);
foreach $assoc (@assocarray) {
($property, $value) = split(/=/, $assoc);
$value =~ tr/+/ /;
$value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value, $charcode);
$form{$property} = $value;
}
}

578 :名無しさん@お腹いっぱい。:2001/07/25(水) 16:54 ID:???
>>577
とりあえず
jcode::convert(\$value, $charcode);にしたら?
直るかどうかは別として。

579 :名無しさん@お腹いっぱい。:2001/07/25(水) 22:48 ID:???
tok2で作らずにローカルで作りましょう。

580 :超初心者:2001/07/28(土) 22:58 ID:???
すみません、ここのアップローダーについて教えてください。
http://zurubon.virtualave.net/upload.txt

240〜270行目までのパスワード設定についてよくわかりません。
投稿者がパスワードを設定して自由に自分がアップしたものを削除でき、
且つそれを管理者も自由に削除できるようにしたいのですが
うまくいきません。
どっちも使用するにすると、投稿者のファイルを管理人が
管理パスワードで削除しようとすると
「削除禁止ファイルです」等、エラーが出て投稿者以外削除できなくなります。

http://zurubon.virtualave.net/crypt.cgi
ここの設定が悪いのでしょうか。
$val = crypt(   , );は空白が2つありますけど
どっちに何を入れたらいいのですか?
表示されるInput: Seed: Out: の三つのうち、どこに何を入れたらいいのですか?
よろしくお願いします。

# 投稿ファイル削除パス生成時の'種'
$del_seed = 'z8';

# 投稿ファイルの管理者削除
$admindel_enable = 0;

# 管理者パスワード
$adminpass = '';

# 管理者パスワードの'種'
$adminseed = 'z8';

581 :名無しさん@お腹いっぱい。:2001/07/28(土) 23:09 ID:???
作者に聞きませう!

582 :名無しさん@お腹いっぱい。:2001/07/28(土) 23:25 ID:5DaHUFuo
ENCTYPE="multipart/form-data"で送信すると、STDINに
-----------------------------**********

Content-Disposition: form-data; name="aaa"



aaa
(以下略)
のようなものが入ると思うのですが、これはどのブラウザでも同じ書式(?)なんでしょうか?
どうか教えて頂きたいです。

583 :超初心者:2001/07/29(日) 00:07 ID:???
>>581
そんなー(゚д゚)
アップローダーつったらこれが殆どみたいだし、
使ってる人も多ければ教えてもらえるかな、と思ったのに・・。

584 :名無しさん@お腹いっぱい。:2001/07/29(日) 00:26 ID:???
>>577 =~ s/reflesh/refresh/g;

585 :名無しさん@お腹いっぱい。:2001/07/29(日) 00:40 ID:???
>>583
スクリプトはよく見てないけど、
crypt(パスとして使いたい文字列,z8);
として、出てきたものを管理者パスワードとして設定すればいいんじゃないかな。

586 :名無しさん@お腹いっぱい。:2001/07/29(日) 02:28 ID:18Lus0bo
サブルーチンを別ファイルにまとめ、メインのスクリプトの頭で
require '../libdir/hoge.pl' してmod_perl(Apache::Registry)で
動かしているのですが、時々最初のサブルーチンを呼ぶところで、
Undefined subroutine が出て困っています。require をフルパス
指定にしたり、startup.plで use lib qw(/full/path/libdir) 等
を試しているのですが、不定期にエラーが出続けています。
何か原因推定できるでしょうか。
動作環境はApache-1.3.20 + mod_perl-1.26 + perl-5.6.1(スレッド
オプション無し)で Solaris8で使用中。

587 :名無しさん@お腹いっぱい。:2001/07/29(日) 03:46 ID:???
>>586
名前空間の問題じゃなかろうか。
そんな話を耳にした記憶が。
詳しくはmod_perlのドキュメントでも見てくれ。

588 :超初心者:2001/07/29(日) 10:28 ID:???
>>585
ありがとうございます。
でもhttp://zurubon.virtualave.net/crypt.cgi には
$val = crypt(ココ ,ココ);みたいに空白が2つありますけど。
何を入れたらいいのか教えてください。

589 :名無しさん@お腹いっぱい。:2001/07/29(日) 14:02 ID:???
>>588
$val = crypt ( 暗号化する文字列 , 種 );
Seedを$adminseed、Outを$adminpassに設定

590 : :2001/07/29(日) 15:34 ID:Qc8mCzXU
@nifty じゃ Referer 変数って取れないの?
つーか、@nifty 使うのはシロート?

591 :名無しさん@お腹いっぱい。:2001/07/29(日) 23:40 ID:f21NlnVQ
 クライアントがサーバーからファイルをダウンロードできるような
CGIを書いてます。(ドキュメントルートに置きっぱなしにして、直リン
されたら困るようなファイルを、その都度送信してあげるようなCGIです。)

Content-typeとContent-Dispositionの並び順は次で正しいのでしょうか?

1行目;Content-Disposition: attachment; filename=hoge.bin
2行目;Content-type: application/octet-stream<CR><CR>

IE5.5(SP1非適用)だとこの順番でないとダウンロードのダイアログに
表示されるファイル名が"hoge.bin"にならず,CGIのファイル名になって
しまうのですが、なんとなく本当は逆?のような気がするのですが。

592 :586:2001/07/29(日) 23:52 ID:iMPG7BfY
>>587
mod_perlのドキュメントは、いろいろ見てはいるんですけど、
英語ドキュメントばかりで、なかなか進まない。(泣
特にpackage宣言はしていません。サブルーチンのファイルは、
mod_perl用のスクリプトでは無い、普通のCGIスクリプトからも
共有でrequireしてるのがマズイのか?鬱だ。

593 :591:2001/07/30(月) 00:01 ID:neeKDwG6
追加。
一行目の最後にも改行コードが入ってます。

594 :名無しさん@お腹いっぱい。:2001/07/30(月) 02:20 ID:???
>>586
Perlはrequireとか順番に実行しないような気がした。
BEGIN { require '../libdir/hoge.pl' };
でどう?

595 :名無しさん@お腹いっぱい。:2001/07/30(月) 03:52 ID:???
>>586
参考になるかも。
http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl.html
http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl1.html

596 :JAPU@コミケに行こう:2001/07/30(月) 14:24 ID:???
>>591
順番は関係ない。
ただし、改行コードは CR じゃないぞ。

厳密に言えば、CRLF である必要がある。
空行に関して言えば、LF でも構わない。

IEは微妙に変なので、http://example.com/cgi-bin/hoge.cgi/hoge.bin
みたいに呼び出してやればok。

ZZ

597 :名無しさん@お腹いっぱい。:2001/07/30(月) 17:07 ID:H421xe6w
>>590
HTTP_REFERER は取れる。
@niftyで取れないのは、REMOTE_HOST。

598 :591:2001/07/30(月) 23:52 ID:nDJaYIZI
>>596
情報感謝です.
>>IEは微妙に変なので、http://example.com/cgi-bin/hoge.cgi/hoge.bin
>>みたいに呼び出してやればok。
こういう呼び方は始めてみました。
 クライアントはドキュメントルート上のファイルをGETするのと同様に振舞える
わけですね。
 しかしこの場合、CGI側はどうやって自分にGETリクエストが来たことと、
"/hoge.bin"を知るのでしょうか?
うむ、基本をわかってないことを実感(TT

599 :名無しさん@お腹いっぱい。:2001/07/31(火) 00:03 ID:???
えっ! (^^;

600 :棺@マターリ週間:2001/07/31(火) 00:30 ID:???
環境変数を確認できるCGIのURLに /hoge.bin という文字列を
付け加えてアクセスしてみましょう。

CR -> 復改
LF -> 改行

601 :586:2001/07/31(火) 03:13 ID:y761.lo6
>>594 実験しましたが、ダメでした。
>>595 あ、そこ見てます。下のページの2.が、なんか不吉な感じ
がしますが。

今日気づいたのですが、ここが関係してるのかも知れない。
http://stason.org/talks/apachecon2000/OR093/html/porting.html#Name_collisions_with_Modules_and
>>587氏指摘の通りかな?とりあえず、実験してみます。

602 :JAPU@12日は蔵大平山で宴会だ:2001/07/31(火) 04:03 ID:???
>>598
PATH_INFO

603 :587=595:2001/07/31(火) 04:45 ID:???
>>586
同一人物です。が、そんなことはいいとして。
多分requireしてるライブラリに問題が、でしょう。
OOPなモジュールに書き換えてuseするのが吉かと。
頑張ってください。

604 :名無しさん@お腹いっぱい。:2001/07/31(火) 16:49 ID:???
質問掲示板で、レスがつくごとに親記事を書いた人に
sendmailを使って自動的にメールを送るようにしたいんですが、
もしメールアドレスが存在しなかった場合、
サーバーエラーが出たりするのでしょうか?

605 :iモードの名無しさん。:2001/07/31(火) 23:01 ID:???
おいらのiモードにスパム送ってきたところPCで覗いたら、
SPAM送信ツールが、丸見えになってました。
ココ的にこのプログラムのできはどうですか?

■トップページ
ttp://onyanko.org/summer/
■SPAMツール
ttp://www.onyanko.org/svpro/

606 :while(0):2001/08/01(水) 00:12 ID:P0HzbCeY
このプログラムでinfo@platinummail.orgに送ってあげよう

607 :名無しさん@お腹いっぱい。:2001/08/01(水) 00:37 ID:???
おいおい、5万人近くの利用者のメアド&tel番がそのままおいてあるよ、、

608 :名無しさん@お腹いっぱい。:2001/08/01(水) 00:48 ID:???
http://www.onyanko.org/svpro/addr/addrfile.txt
http://www.onyanko.org/svpro/log/sendlog.txt
アドレステキスト晒しアゲ

609 :591:2001/08/01(水) 01:47 ID:7nllhseE
>>600
試してみますー。ありがとでした。

610 :名無しさん@お腹いっぱい。:2001/08/01(水) 02:38 ID:???
whois警報発令中?

611 :名無しさん@お腹いっぱい。:2001/08/01(水) 20:29 ID:???
http://www.onyanko.org/summer/user/
ココの利用者晒しさげ

612 :586:2001/08/01(水) 23:06 ID:oQT0JWR6
>>603
結局名前空間の問題のようです。601のリンク先に従い、
requireされている側でpackage宣言して、サブルーチンと
グローバル変数をエクスポートし、呼出しをrequireから
useに変えて(要はモジュール化した訳ですが)1日順調に
動いています。ダーティなスクリプトの書き換え優先で
OO化までは手が回りませんが、>>587,>>603で指摘された
通りと言うことで、どうもありがとうございました。

613 :名無しさん@お腹いっぱい。:2001/08/02(木) 00:11 ID:FK1JacWw


614 :名無しさん@お腹いっぱい。:2001/08/02(木) 00:30 ID:DguDE1y6
>>604
どこに届くかはReturn-Pathの設定によるね(藁

615 :名無しさん@お腹いっぱい。:2001/08/02(木) 01:10 ID:???
>>605
http://onyanko.org/platinum.zip
CGI一式発見!!

616 :名無しさん@お腹いっぱい。:2001/08/02(木) 04:39 ID:???
http://www.megabbs.com/program/index.html

617 :名無しさん@お腹いっぱい。:2001/08/02(木) 10:51 ID:???
ボタンをクリックするとサーバー上のファイルをダウンロード
するにはどうすればいいのでしょうか?
HTMLに記述?それともcgiでやるの?

618 :名無しさん@お腹いっぱい。:2001/08/02(木) 11:10 ID:???
>>617
ダウンロード回数とか調べる必要が無いならHTMLで。

619 :名無しさん@お腹いっぱい。:2001/08/02(木) 12:28 ID:???
htmlじゃ絶対に無理だと思うが。

620 :名無しさん@お腹いっぱい。 :2001/08/02(木) 12:39 ID:???
いやそれがそうなんだってば今の季節
<a href="hogehoge">hoge</a> きっとこれだ! w

621 :名無しさん@お腹いっぱい。:2001/08/02(木) 12:56 ID:???
>>617
確認の為に聞く。
ダウンロードは、自分のPCにDLするんだよな?
だとしたら>>620で右クリックでもして「対象を保存」で十分。
ただし、Win鯖の場合exeファイルをDLできないことがあるので注意。
実行されちまったりするからな。


もしA鯖のファイルをB鯖にDLしたいんだとしたら、LWPかSocketだな。
この場合DLと言わないと思うが。

622 :名無しさん@お腹いっぱい。:2001/08/02(木) 13:12 ID:lELrWrZM
質問です
ttp://ipveov.virtualave.net/hope/index.html
ここの「素敵メーラー Ver0.7」をomosiro.comに置くと
check.htmlが表示されるところで
formのactionが
<form method="POST" action="included://***.omosiro.com/cgi-bin/mail.cgi" enctype="multipart/form-data">
このようになってしまいます。
どうにかして対策できないでしょうか

623 :名無しさん@お腹いっぱい。:2001/08/02(木) 13:22 ID:???
>>619 HTML勉強しなおせ。Web製作板でな。

624 :617:2001/08/02(木) 13:24 ID:???
えいと、いや
「クリックするとサーバにのってるデータをcsv形式で
サーバのどこかに一回保存して、それを自分のPCに
名前を付けて保存」
しようと考えたのだ。
いいや、できそうにないんでFTPでやるから。

625 :名無しさん@お腹いっぱい。:2001/08/02(木) 13:38 ID:???
サーバのどこかに一回保存する必要があるのか?
あるとしてFTPならできるのか?
馬鹿?

626 :名無しさん@お腹いっぱい。:2001/08/02(木) 13:41 ID:???
>>617
CGIでやりたいことは出来るかと思いますが。

627 :T女の竹田:2001/08/02(木) 15:28 ID:???
http://www.google.com/search?q=content-type+csv&btnG=Google+%8C%9F%8D%F5&hl=ja&lr=lang_ja

628 :627:2001/08/02(木) 15:29 ID:???
あ、>>617です。

629 :617:2001/08/02(木) 16:11 ID:???
>>627
ども。
勉強します。

630 :名無しさん@お腹いっぱい。:2001/08/03(金) 02:01 ID:???
>>623
いや、文章をよく理解する能力を付けた方がよかった。

鯖にアプロードする事かと思ったんよ。

631 :コメント無しさん:2001/08/03(金) 13:56 ID:DhQExyss
>>630
アプロードもできると思うが。

632 :名無しさん@お腹いっぱい。:2001/08/03(金) 15:15 ID:???
アプロードがHTMLだけでできるの?
frontpage extension とか mod_dav などが入ってるの前提?

633 :名無しさん@お腹いっぱい。:2001/08/03(金) 15:21 ID:???
ブラウザに送らせることはできるけどサーバ側で受け取る方法が…。

634 ::2001/08/03(金) 15:55 ID:???
ブラウザでしかファイルのアップが出来ない鯖に
自動でファイルを転送するプログラムを組みたいのですが、
<INPUT TYPE="FILE" NAME="filename" …
のタグの部分のパラメータをうまく渡すことが出来ません。
他のHIDDEN等と一緒に filename="c:\index.html"&… のようにしているのですが
どこか間違えているのでしょうか?

635 :名無しさん@お腹いっぱい。:2001/08/03(金) 16:10 ID:???
スレ違いの予感

636 :名無しさん@お腹いっぱい。:2001/08/03(金) 17:06 ID:???
>>634
それはセキュリティに問題が出るので出来ないことになってます。
例えば特定のファイルを決めうちで設定してJavaScriptとかで
OnLoad時にsubmit()やられたら勝手にファイルもってかれちゃうでしょ

637 :636:2001/08/03(金) 17:12 ID:???
ん、、質問の内容を取り違ってるんかな
タグの部分のパラメタってなに?
渡すとはどっちからどっちへ?

638 ::2001/08/03(金) 17:53 ID:???
>>635 どのスレが適切でしょうか?
>>636 なるほど・・・

パラメタは NAME と VALUE 。つまりアプするファイル名情報。
渡すのは、こちらのプログラムによって「ローカルHDD」から「サーバー」へ。

うーん、説明下手でスマソ。。

639 :名無しさん@お腹いっぱい。:2001/08/03(金) 18:10 ID:???
>>638
あーわかったよ
FILEだから、ENCTYPE="multipart/form-data" なんだよね?
標準入力を全部表示して見りゃわかるとおもうが、
ライブラリ等使用してるなら、multipart/form-dataのときの
値の取り出し方をライブラリのドキュメントとかでさがしてみたらいいかも。
そゆことでない?

640 :名無しさん@お腹いっぱい。:2001/08/04(土) 00:31 ID:???
http://onyanko.org/platinum.zip

↑こわれてる? 解凍できないけど

641 :名無しさん@お腹いっぱい。:2001/08/04(土) 00:50 ID:???
>>608-615 >>640
http://onyanko.org/summer/infomng.cgi
ん、、こんなSPAM送ってくるところに、
よくこんなに登録するやついるよな?

642 :名無しさん@お腹いっぱい。:2001/08/04(土) 04:11 ID:???
>>641
それが不思議なんだけど、いるからSPAMが絶えないんだよな

643 :名無しさん@お腹いっぱい。:2001/08/06(月) 00:37 ID:???
登録する人たちにとってはあれはSPAMじゃなくて
「出会いの場を提供してくれる素敵なメール」
なのではないかと。

644 :名無しさん@お腹いっぱい。:2001/08/06(月) 13:55 ID:r1Q1kj2I
質問させてください。
ローカルサーバーをたてて、カールさんの掲示板CGIをデフォルトのまま
各所定のファイルをおいて設置してる最中なのですが、
設置したアドレス
http://192.168.0.10/cgi-bin/bbs/che.cgi
に、アクセスすると真っ先にデフォルトの文部省にとばされます。

検索したところ同じような事例があったのですが、解決できませんでした
http://mentai.2ch.net/hp/kako/957/957253797.html
この方と同じ状態です。
解決方法ご存じの方は教えてください。宜しくお願いします

645 :名無しさん@お腹いっぱい。:2001/08/07(火) 03:02 ID:???
「ダウンロードしなおしたら動いた」ってどこかで見た気がする

646 :名無しさん@お腹いっぱい。 :2001/08/08(水) 13:27 ID:???
恐縮ですがお答えいただければ助かります。
http://www.futomi.com/library/accs.html
の、ログ解析を設置したのですが、なぜか
「対象のが1件もありません」と言われて困っています。

最初acc.cgiのパーミッションが704では動かなかったので705に変えて見たら動きました。
704に戻すと高負荷になる原因があるかプログラムミスがあると出てしまいます
他は変更なしでも今のところ動くようです。
ログが1件もないと表示されるだけで・・・・すみません、動いてないです。

設置したいところはhttp://www.lovelys.net/で借りたところです。
どこをミスってるんでしょか。。
以前も失敗して再チャレンジしてみましたが力尽きてしまいました。
どうかお願いしますです。

647 :名無しさん@お腹いっぱい。:2001/08/08(水) 16:46 ID:hfCNj1Do
質問です。たとえば30項目のテキストフィールドのデータを
GETでCGIに渡すとき、カンマ区切りの一つの文にしてCGIに
送り、サーバ側でカンマで分割させるのと、"?xxx=yyy&fff=aaa"
とひとつひとつ30項目GETのクエリで渡すのとどちらが
サーバ側に負担をかけないでしょうか?

648 :名無しさん@お腹いっぱい。:2001/08/08(水) 17:27 ID:???
>>646
製作者にメールで聞いたら?
正しい答えが返ってくる可能性一番高いよ。

649 :名無しさん@お腹いっぱい。:2001/08/08(水) 17:35 ID:???
>>647
どっちかというと前者の方が負担は少ないと思うが、
差は気にするほどじゃないと思われ

650 :名無しさん@お腹いっぱい。:2001/08/08(水) 19:39 ID:???
>>644
a-men.dat(たぶん)が0バイトのファイルじゃないと飛ばされる。
改行一個でもあると空文字がマッチする。
…だったと思うヨ。

651 ::2001/08/08(水) 20:04 ID:el4UUDvg
http://sasurai.gaiax.com/home/maya1986/main
クソページ

652 :名無しさん@お腹いっぱい。:2001/08/09(木) 14:28 ID:???
>>648
それが質問は受け付けてないとのお答え
いっそのこと金払ってサポート受けるのがいいんでしょうかね。w;

653 :名無しさん@お腹いっぱい。:2001/08/09(木) 23:57 ID:yQqDsehE
フォームメールを作っててちょっと困ってるんですが、
Webのフォームに入力して、送信ボタンで指定アドレスにメールを送るんですが、
ネスケのメーラーで受信した時だけ文字化けしてしまいます。
Outlook, Outlook Express, EdMax は大丈夫でした。

「ネスケは無視」で済ませられないので何とかお願いします。
誰かこんなケース知らないでしょうか?

654 :名無しさん@お腹いっぱい。:2001/08/10(金) 00:04 ID:???
>>653
文字コードちゃんとしてるか?

655 :名無しさん@お腹いっぱい。:2001/08/10(金) 00:11 ID:rALdiy7o
全部JISにしてるはずなんですけどねえ。
っていうかそれにしたって他のメーラーでは大丈夫でネスケメーラはダメ
ってのはなんなんでしょう。

他のメーラーは文字コードが不正(というか変)でも補正してくれるんだろうか…

656 :名無しさん@お腹いっぱい。:2001/08/10(金) 01:17 ID:???
>>655
そういうメーラーもある。

657 :名無しさん@お腹いっぱい。:2001/08/10(金) 10:31 ID:SGYXQF82
Netscape6が6.1になっても相変わらずContent-dispositionを
無視してくれやがりますがどうしたらいいですか?
4.xだとちゃんと動くのに・・

658 :657:2001/08/10(金) 10:34 ID:SGYXQF82
あう、
Content-Disposition: filename=
でのファイル名指定っす。

659 :少し頑張った人:2001/08/10(金) 11:56 ID:???
それって6からなのかな? 2バイト問題じゃなくて、、
色々やったけどもう忘れちゃった  w

660 :少し頑張った人:2001/08/10(金) 11:59 ID:???
ぎょえー、間違えた
この辺見れば何となく解るかも、ちょっと古いとおもうけど
http://www.tsden.org/ryutaroh/fileupload-j.shtml
http://www.hk.airnet.ne.jp/~ahero/cgi/cgiex11.html
イチゴのスレ
http://www22.big.or.jp/~15ch/readres.cgi?bo=proglam&vi=0005

知ってると思うけどRFCは無視ね  (ワラ

661 :名無しさん:2001/08/11(土) 00:33 ID:1T8I2FC6
FreeBSDにapacheをいれました。
そして、ためしに、定番のhallo.cgiなどを
ブラウザ経由で、表示してみると、見事成功するようになりました。
(hello worldとでる)

しかし、
次に、ある本に入っていた掲示板用cgiスクリプト(discussion.cgi)
を/cgi-bin/におき、
ブラウザ経由で、
/localhost/cgi-bin/discussion.cgi
にアクセスすると、
Internal Server Errorとおこられます。
しかし、terminalで
%perl discussion.cgi
とすると、
問題なく、html形式のソースをはいてくれました。
そのhtmlファイルを用いてブラウザで表示するとちゃんと、掲示板
がでてきました。

そこで、困ったと思い、いろいろ調べ、
http://www2.startshop.co.jp/~68user/webcgi/intro-perl.html
にある、wrapper.cgiをcgi-bin/にいれて、
(僕のlocalサーバのルートのサブディレクトリにcgi-binはあります)
/localhost/wrapper.cgi/cgi-bin/discussion.cgi
としてみると、
Not Found

The requested URL /wcgi-bin/discussion.cgi was not found on this server.
といわれます。
どこがだめなのでしょうか?

662 :名無しさん@お腹いっぱい。:2001/08/11(土) 00:41 ID:???
>661
ネタ?それとも、エラーメッセージも読めない厨房?
厨房なら逝ってよし!

663 :名無しさん@お腹いっぱい。:2001/08/11(土) 00:43 ID:ktzGqCic
質問です。
掲示板の入力フォームにパスワードを入れるテキストを作り、トリップのようなその人専用のIDを作りたいです。

どなたかトリップ部分のサンプルお願いします。

664 :名無しさん@お腹いっぱい。:2001/08/11(土) 00:43 ID:???
よく分からんけど、その端末から操作した時には
ヘッダは吐いてたの?
Cotent-type・・・・ってやつ

665 :名無しさん@お腹いっぱい。:2001/08/11(土) 00:44 ID:???
664は>>661ね 人多いなあ。。

666 :名無しさん@お腹いっぱい。:2001/08/11(土) 00:45 ID:???
>663
スレ違いかな?
http://corn.2ch.net/test/read.cgi?bbs=php&key=988777987&ls=50

667 :名無しさん@お腹いっぱい。:2001/08/11(土) 00:49 ID:???
>664
ネタにマジレス(w
カコワルイヨ

668 :名無しさん:2001/08/11(土) 00:52 ID:1T8I2FC6
>>664
Content-type: text/htmlのことですね。
はいています。

>>662
どういうことでしょうか?
そうそう、エラーメッセージ
The requested URL /wrapper.cgi/cgi-bin/discussion.cgi was not found on this server.
でした。
これは、上であげたページにのっていたんですが、
cgiファイルでのブラウザからのアクセスは
このような、アクセス法でいいみたいなんです。
一見wrapper.cgiがディレクトリみたいになってますが。

669 :661:2001/08/11(土) 00:53 ID:1T8I2FC6
まじでネタじゃないので、どこが問題かお願いします。
僕は初心者なので、みなさんからみたらネタレベルの
低レベルなことを尋ねているのかも知れませんが。

670 :名無しさん@お腹いっぱい。:2001/08/11(土) 01:01 ID:???
ラッパーって何だ? (´Д`;)
それだと意図した様に/discussion.cgiがPATH_INFOに入ってないと思う。
/wrapper.cgi  はちゃんと動くよね??
"foo.cgi をデバッグしたい場合は、〜〜〜"って出てる?
つーか他のスクリプト(既存の)は動くの?
お役に立てそうにないかな、、

671 :名無しさん@お腹いっぱい。:2001/08/11(土) 01:04 ID:???
/wrapper.cgi/discussion.cgi   こうか、、

672 :名無しさん@お腹いっぱい。:2001/08/11(土) 06:14 ID:???
>661
そもそもrootディレクトリにcgiの実行権限を与えてるの?
/localhost/wrapper.cgi/cgi-bin/discussion.cgi

hallo.cgiを動かしたときには、どのように実行したの?
ちなみに、hello.cgiじゃないんだよね(w

あなたの設定環境などが我々には分からないのだから、
もうちょっと詳しくApatchの設定内容等書かないと
レスつけても勘違いになることがあるかも知れないので
これ以上書きようがないよ。

673 :名無しさん@お腹いっぱい。:2001/08/11(土) 06:53 ID:???
Apatchはいかんだろ(w

674 :名無しさん@お腹いっぱい。:2001/08/11(土) 07:21 ID:???
強ち間違いでも無いかも知れんぞ  :-)
http://www.google.com/search?q=Apatch&btnG=Google+%8C%9F%8D%F5&hl=ja&lr=lang_ja

何となく思うんだけど、PATHの設定とかhttpd.confをもう一度良く
見直した方が良いんじゃ無いかな。
notfound出るのはおかしいよ、servernameとかExecCGI辺りが上手く
設定出来るか、良く調べてみて。 ちょと板違いだけど  w
もうどっか行っちゃったかな?

675 :661:2001/08/11(土) 08:09 ID:1T8I2FC6
ありがとうございます。
apacheの設定は、
1、httpd.confにおいて、
<Directory "/usr/local/www/*">
からはじまるところにある、
全てのOptionsにExecCGIを付け加えた。

2、ScriptAlias /cgi-bin/ "/usr/local/www/data/cgi-bin/"
もかいた。

3、AddHandler cgi-script .cgiもかいた

3、/data/cgi-binのパーミッションを755にした。

というところです。

>>672
>そもそもrootディレクトリにcgiの実行権限を与えてるの?
>/localhost/wrapper.cgi/cgi-bin/discussion.cgi
http://www2.startshop.co.jp/~68user/webcgi/intro-perl.html
によると、wrapper.cgiはcgi-binに放り込め。と書いてあります。
このcgi-binにだけ、実行権限は与えてあります。
/localhost/wrapper.cgi/cgi-bin/discussion.cgi
というのは、上のページを参考にして、このような、
ファイルへのアクセスのしかたでいいように思われました。
一応/localhost/cgi-bin/wrapper.cgi/discussion.cgi
としても同じ結果がでます。

そもそもwrapper.cgiを使っているのは間違いなのでしょうか?

hello.cgiは/localhost/cgi-binにあります。
ソースは、
#!/usr/bin/perl

print "Content-type: text/html\n\n";

print "<html><body>";
print "Hello world.";
print "</body></html>";
で、
ブラウザからみると、ちゃんと、
Hello world.とでてきます。

676 :名無しさん@お腹いっぱい。:2001/08/11(土) 12:30 ID:E74820vk
age

677 :真夏の名無しさん:2001/08/11(土) 18:04 ID:???
サゲ

678 :18才の芸能人:2001/08/12(日) 00:17 ID:6KogsX6I
◆綺麗なおねぇさんは好きですか?◆
http://www.futomomo.com/netidol/sister/megu/
◆アイドル画像秘宝館◆
http://www.futomomo.com/netidol/idolhappy/maki/

wdewter

679 :名無しさん@お腹いっぱい。:2001/08/12(日) 00:44 ID:t2EXh9wM
675です。
どなたか分かる人お願いします。

680 :名無しさん@お腹いっぱい。:2001/08/12(日) 01:56 ID:???
>>679
まず、wrapper.cgiはちゃんと動いてるの?
http://localhost/wrapper.cgi
だけ入れるとそれなりにエラーメッセージが出るはずだからそれを確認すべし。
実は、
http://localhost/cgi-bin/wrapper.cgi
だったりしない?

681 :名無しさん@お腹いっぱい。 :2001/08/12(日) 02:49 ID:???
みんな色々書いてるからそれを一つずつ確認しないと
パスミスとか鯖名が通ってないとか確認してるの?
まずhtmlを表示→hello.cgi動作確認 で、自作のは置いといて
出来合いのスクリプトもうちょっと動かしてみて

つか404出ますとか言われると 仮想パスとか解ってないのかなぁ
と思って 説明以前にもどっちゃうのね

682 :名無しさん@お腹いっぱい。:2001/08/12(日) 02:52 ID:???
> しかし、terminalで
> %perl discussion.cgi
これじゃダメ、実行権限与えて(7**)
%./discussion.cgi    これで動く?
perlのパスはあってる? perl5とかになってない?

683 :名無しさん@お腹いっぱい。:2001/08/12(日) 03:02 ID:???
っつーか、perl discussion.cgi で動くなら、wrapper使わんでいいでしょ。
で、500 Internal Server Errorってことだから、
定番で #!/path/to/perl が間違ってるか、CRLFの問題。
とりあえず、disccussionの先頭行を
#!/usr/bin/perl --
(最後の--が重要)にしてみよう。

684 :名無しさん@お腹いっぱい。:2001/08/12(日) 04:36 ID:???
A pacth!!

685 :661:2001/08/12(日) 09:35 ID:t2EXh9wM
みなさま、有難うございます。できるようになりました!
682さんのおっしゃるように、
#!/usr/bin/perl --
で動きました。
#!/usr/bin/perl
ではずっとinternal server errorがで続けていました。
この--ってどういう意味なのでしょうか?

686 :名無しさん@お腹いっぱい。:2001/08/12(日) 12:14 ID:SCAUF9dU
ここでしていい質問なのかわかりませんが、
CGIの中にあるURLのアドレスがわかりません。
具体的にいうとチャットの中にあるアドレスがわからないのです。
プロパティをみても正確でないし、ソースをみてものっていません。
これはHP製作者が隠していると思うのですが、場所を知る方法ありませんか?
別に変なことにつかうのでは全くありません。

687 :名無しさん@お腹いっぱい。:2001/08/12(日) 12:43 ID:???
意味不明

688 :683:2001/08/12(日) 13:26 ID:???
>>685
要は、改行コードの問題なんだけど。
FreeBSDだとLFが改行だけど、WindowsだとCR+LFが改行になる。
#! から改行の前までに書いてあるコマンドを実行しようとするから、
/usr/bin/perl(LF)
ってのを実行しようとして、そんなコマンドないよ→Internel Server Error
で、 -- をつけると、これ以降の文字が無視されるから大丈夫になる。
まぁ、自分で「CGI 改行コード」とかで検索したほうがいいとおもうけど。

689 :664:2001/08/12(日) 14:28 ID:???
そう言う意味だったのか、、、
今まで使ってたけど意味は知らなかった (´Д`;)
漏れも勉強になったよ。 3Q!!>>688

690 :688:2001/08/12(日) 14:31 ID:???
>>688の4行目
/usr/bin/perl(CR) だ。鬱。

691 :名無しさん@お腹いっぱい。:2001/08/12(日) 23:46 ID:latsU6.6
基本的なBBSプログラムの組み方(フローチャート)
を教えてください。こんな感じでよいですか↓

10 POSTされたメッセージを解析
20 削除要求があれば 50,なければ次へ
30 書込要求があれば 60,なければ次へ
40 100へ
50 指定されたメッセージを削除して 100へ
60 指定されたメッセージを追加して 100へ
100 BBSをHTML化110 終了

692 :名無しさん@お腹いっぱい。:2001/08/12(日) 23:52 ID:U63Q6.4.
CGI入れてるディレクトリのパーミッションはなんにすれば
いいんですか?
今755にしてるんですが外部からみえまくりです。
掲示板設置してるんですけど、600にしたら掲示板みえなくなっちゃうんです。
お手数ですが教えて下さい。

693 :Crow:2001/08/13(月) 00:04 ID:???
>>692
流石にそれは簡単すぎる問題。2chで聞くべき問題じゃないぞ。
YAHOOで"パーミッション"とか調べると良い。

694 :名無しさん@お腹いっぱい。:2001/08/13(月) 00:07 ID:???
>>692
http://permission.jp.org/
ほれ。

695 :名無しさん@お腹いっぱい。:2001/08/13(月) 00:08 ID:YW6jxcOg
>>692
ディレクトリに制限かけるなら".htaccessの設定方法"で検索してくれ

696 :692:2001/08/13(月) 00:22 ID:???
>>693
ハイ。その通りです。
検索したらわかりました。
701が正解・・・でいいんですよね?

697 :名無しさん@お腹いっぱい。:2001/08/13(月) 01:05 ID:???
とりあえずindex.htmlは置いたほうがいいんじゃないかと思った

698 :名無しさん@お腹いっぱい。:2001/08/13(月) 01:07 ID:???
>>696
ディレクトリの内容を読みたいCGIとかだと705の方じゃなきゃだめだったりするよ。
(中身見えちゃうけど)
あと、suexecとかで動いてるところなら700にするとか。
705でindex.htmlを置いておくのが安定だと思う。

699 :名無しさん@お腹いっぱい。:2001/08/13(月) 01:14 ID:???
サーバによってまちまちだな。
700でも動くところはあるし、777でもログ等のファイルは見られないようにしてあるところもあるし。
動く範囲でなるべく低くすれば良いんじゃないかと。

まぁ、ファイルを直接見られたくないのなら
そのファイル自体のパーミッションを変える方が適切だけど。

700 :657:2001/08/13(月) 15:39 ID:JzeNXb.k
>>660少し頑張った人
めちゃくちゃ遅レスですがありがとうございました。
会社2チャンネラなもんで。えへ。

で、リンク先を参考にしたらうまい事動きました。
Content-Disposition: filename=hoge.hog
じゃなくて
Content-Disposition: form-data; filename=hoge.hog
にすれば動きました。書式が間違ってたとは・・
前者でもIE,NN4.xだとちゃんと動くんで気付きませんでした・・

701 :名無しさん@お腹いっぱい。:2001/08/13(月) 22:03 ID:MjrwvjYs
ここで良いのかどうかよくわからないんですが
質問させてください。
FTPを使わずに直接パーミッションを変更する方法は
どうやるのでしょうか?
意味不明だったらすみません!

702 :名無しさん@お腹いっぱい。:2001/08/13(月) 22:14 ID:???
>>701
telnetまたはchmod()関数

703 :名無しさん@お腹いっぱい。:2001/08/13(月) 23:40 ID:???
質問だけど、f2sであやしいあぷろだは使えるのかな?

704 :UUDH:2001/08/13(月) 23:47 ID:???
レン鯖板でそんなスレが有ったよ、何だか調子良くないみたい。
あそこはとにかくドンドンデータが壊れていくです  (-、- )
ちょと鼬外だからリンク
http://natto.2ch.net/test/read.cgi?bbs=perl&key=981081855

705 :名無しさん@お腹いっぱい。 :2001/08/13(月) 23:48 ID:???
なまえ消し忘れた ぁぁぁ〜

706 :名無しさん:2001/08/14(火) 01:51 ID:NydWBwmo
鯖 管理者にログファイルを見れなくするために
パスワードをかけて開けないようにできませんかね?
たとえば、zipみたいにデレクトリー事とか...

707 :名無しさん@お腹いっぱい。:2001/08/14(火) 02:52 ID:???
>>706
> たとえば、zipみたいにデレクトリー事とか...
この行の意味が全然わからないけど・・・

サーバ管理者は何でも出来るので無理。

708 :名無しさん@お腹いっぱい。:2001/08/14(火) 20:07 ID:vuYvfUZY
>>706
何のログファイルか知らんけど、掲示板とかだと
利用者が投稿(データ送信)した時の全てのデータが鯖のログに残るからどうしようもないと思う
普通 サーバー管理者は見ないだろうけど・・・・

709 :名無しさん@お腹いっぱい。:2001/08/14(火) 20:11 ID:???
自鯖を立てる!
これしかないでしょ。

710 :名無しさん@お腹いっぱい。:2001/08/14(火) 22:08 ID:???
>>706
ログデータに crypt かけて保存とか。
それ以前に信用できない鯖管のいるところは止めるのが先だな。

711 :名無しさん@お腹いっぱい。:2001/08/14(火) 22:26 ID:y4lUcYi6
FreeBSD、apacheでcgiファイルをみると、いっつも文字化けします。
ブラウザの文字コードをいろいろ変えてもだめです。
qkcで文字コードをためしに、
qkc -eu *.cgi としたり
qkc -ms *.cgi としても、
どうやっても文字化けします。どうしてでしょうか?

712 :JAPU:2001/08/14(火) 22:33 ID:???
>>710
crypt(3) は不可逆。
crypt(1) (aka enigma)を使うにせよ、鍵は平文で保存する必要があるので無駄。

>>711
CGI ファイルを何でどのようにして見たのですか?

713 :名無しさん@お腹いっぱい。:2001/08/14(火) 22:58 ID:y4lUcYi6
http://www2.startshop.co.jp/~68user/webcgi/bbs-perl-1.html
をみて掲示板をためしに、つくっています。
ソースコードは、ほとんど上のページと同じにしてつくってみましたら、
掲示板の最初の画面(入力する前の画面)では、送信ボタン
以外文字化けします。(掲示板という文字等が、化けます)

しかし、いったんフォームに文字入力後に送信すると、
全てちゃんと日本語で表示されるようになります。

どうしたところが問題なのでしょうか?

714 :名無しさん@お腹いっぱい。:2001/08/14(火) 23:07 ID:???
>>713
charsetを吐いてみるとか

715 :名無しさん@お腹いっぱい。:2001/08/14(火) 23:33 ID:y4lUcYi6
>>714
charsetってどうやってはくのでしょうか?

716 :チュー:2001/08/14(火) 23:47 ID:7g0MfT7Y
◆◆◆(新)芸能人彼氏とH芸能界の表裏画像動画大公開◆◆◆
◆アイドル画像秘宝館◆
http://www.futomomo.com/netidol/idolhappy/maki/
◆綺麗なおねぇさんは好きですか?◆
http://www.futomomo.com/netidol/sister/megu/
◆セーラー服◆
http://www.futomomo.com/netidol/sailor/miku/
◆モーニング娘 ◆
http://www.futomomo.com/netidol/morning/mai/

◆◆◆(新)芸能人彼氏とH芸能界の表裏画像動画大公開◆◆◆
◆アイドル画像秘宝館◆
http://www.futomomo.com/netidol/idolhappy/maki/
◆綺麗なおねぇさんは好きですか?◆
http://www.futomomo.com/netidol/sister/megu/
◆セーラー服◆
http://www.futomomo.com/netidol/sailor/miku/
◆モーニング娘 ◆
http://www.futomomo.com/netidol/morning/mai/

;o;:o:op

717 :名無しさん@お腹いっぱい。:2001/08/15(水) 00:04 ID:???
print "Content-type: text/html; charset=Shift_JIS\n\n";
#など

718 :Anonymous:2001/08/15(水) 17:44 ID:8YDvnSrY
質問です!!

会員制のページを作りたいと思います。会員登録ページでパスワー
ドを登録するとcrypt()によりhtpasswdファイルにユーザー名とパス
ワードを追加するプログラムまでは簡単にできました。

次にログインするときに、htaccess制限されたディレクトリの中に、
パスワードダイアログではなくて、フォームにユーザー名とパスワ
ードを入力させてログインさせることってできますか??

デザイナーの方、お願いします。

719 :名無しさん@お腹いっぱい。:2001/08/15(水) 21:14 ID:???
なぜデザイナー?

720 :名無しさん@お腹いっぱい。:2001/08/16(木) 05:15 ID:???
>>718
できるけど、普通に認証しときなさい。

721 :Anonymous:2001/08/16(木) 20:02 ID:/svhuBqY
>>719
デザイナーの方はデザインにこだわるので、認証ダイアログのような無機質な
ものを嫌うと思ったからです。
どちらかといえばやっぱりログオン画面もきれいな方がいいですよね?

それと、会員の入会した週によって飛ぶページを変えたいのです。なので、ど
うしてもCGI処理する必要があり、上のような質問になりました。
もちろん、デザイナーの方でなくてもかまいません。

722 :JAPU:2001/08/16(木) 22:36 ID:???
いまいち何をやりたいか理解できないんだけど、
単に Cookie 使えば良いんじゃない?
でも、こういう話もあるので十分注意してね。http://www.japu.org/cgi/security/session_vulnerability.html

723 :名無しさん@お腹いっぱい。:2001/08/16(木) 22:53 ID:???
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃  ただいま、ラウンジで大盛り上がりのブラウザ戦争ゲーム! .  ┃
 ビビー       ______________
 [>>8888888  ‖|*ENDLESS BATTLE@2ch*|‖      . \冂/
           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄     . E´∀` ヨi /7
 逝って良し!を発動。   . ミ从、;、;从 彡   ボシュッ .())  「/~'ー'~~ 7/ ̄ |
  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ http://wwwwwwwww  ===二]匚ト〈‐〈iテ〈〈c iエコ
    ∧ ∧ [》∞∝     彡゙ ゙/;´ミ  ∧∧∧∧      []v/□ || ╋|
  冂(,,゚Д゚) ウマー   ボンッ | |(*゚Д゚)| <覚醒中!>     | j | |.|| ┃|
 | ̄\つ∧二ヽ       ∩ >->_>->_<要塞に  >    几0(几)L二!
 \_匚i_|∪∪i]      ((_(∴ヽヽ\(∴|当たる!>   ∠三ヲ/i二iヽ
   \_/二/  〜〜 /oヽヽ ,>─>ヽ ∨∨∨∨    __∧___
  [》∞∝         く。◎◎)=)__/)=)    ψ ζ     させるかあ!
                  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  恨み!復讐!英雄の誕生!生身の人間とのどろどろした戦闘!

http://corn.2ch.net/test/read.cgi?bbs=entrance&key=997943180 .┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

724 :名無しさん:2001/08/16(木) 23:33 ID:???
JAPU氏ね

725 :名無しさん@お腹いっぱい。:2001/08/17(金) 23:35 ID:8DRJj08E
本当にくだらない質問なのですが
NULL文字のTEXTファイルをWin98のメモ帳で
表示させる方法って無いでしょうか?
よろしくお願いします。

726 :名無しさん@お腹いっぱい。:2001/08/18(土) 00:28 ID:???
>>725
NULL文字のTEXTファイルとは何ですか

727 :725:2001/08/18(土) 00:41 ID:???
>>726
レス有難うございます。
Mac愛用者の知人からもらったファイル(NULL文字の)なのですが。。。
Winだと何も表示されないのです。

728 :名無しさん@お腹いっぱい。:2001/08/18(土) 07:26 ID:???
だーかーらー
>>727
>>ファイル(NULL文字の)
ってなんだ?

729 :名無しさん@お腹いっぱい。:2001/08/18(土) 07:45 ID:???
>>728
きっとファイル名から内容からNULL文字(\x00)で埋まってるファイルだ
おいらマカーだけど作れないことはない。

730 :名無しさん@お腹いっぱい。:2001/08/18(土) 11:14 ID:???
>>725はマックバイナリの話から勉強すれ

731 :725:2001/08/18(土) 13:33 ID:???
>>730
レス有難うございます。
Winだと無理ってことですね。

732 :名無しさん@お腹いっぱい。:2001/08/18(土) 13:51 ID:???
ラウンジのトリップスレから来た人と見た

733 :名無しさん@お腹いっぱい。:2001/08/18(土) 21:54 ID:???
どうせサイズ0のファイルとかだろ

734 :名無しさん@お腹いっぱい。:2001/08/20(月) 18:13 ID:iIodgiMg
ENVチェッカー作ってるんですけど、プロキシサーバー等の
反応時間(速さ)を知るためにはperlではどうしたら値を取得
できるでしょうか?

流れとして 時間の取得 ⇒ ENVチェック ⇒ 2回目の時間の取得
として 2回目の時間−1回目の時間の取得とすればOKと思って
たんですがこれだとENVチェックにかかった時間しか取得できま
せん。あたり前ですね。
くだらない質問ですがお願いします。

735 :頼むよ:2001/08/21(火) 01:47 ID:KxW7lOz6
一行掲示板のshortmessage
http://shortmessage.hypermart.net/
でIPかホストを取得してログファイルから参照できるようにしたいのだが、
どのような文をどこに注入したらよいのか教えてくれ。
自力でやったが無理だった。

736 :名無しさん@お腹いっぱい。:2001/08/21(火) 02:11 ID:???
>>735
改造はここかと。

スクリプト改造工房 Part3
http://corn.2ch.net/test/read.cgi?bbs=php&key=988808396

737 :名無しさん@お腹いっぱい。:2001/08/21(火) 02:32 ID:Tv58Rzyg
>>734
普通はPINGとかじゃないかな。
サーバー間の接続環境で変わるからあんまあてにならんけど。
使ったことないけどNet::Ping.pmあたりでできない?

738 :頼むよ:2001/08/21(火) 13:49 ID:???
thanx>>736

739 :名無しさん@お腹いっぱい。:2001/08/21(火) 19:31 ID:fmPYJ6Ig
フォームのテキストボックスのフォントを等幅フォントにしたい場合、
どの様にすればいいのでしょうか?

がいしゅつ?

740 :JAPU:2001/08/21(火) 19:38 ID:???
>>739
<input type="text" name="hoge" style="font-family: monospace;" />

次からはこっちでね: http://natto.2ch.net/hp/index2.html

741 :ANT:2001/08/22(水) 23:03 ID:???
質問です、よろしくお願いします。
環境は、RedHat+Apache+PHP+Postgresです。
フォームよりasf形式の動画をアップするようにしているのですが、
この時にビットレートを下げるといったような事ってできないものでしょうか?
再圧縮といったイメージです。(表現間違ってるかも)

要は、ファイルサイズを自動で小さくしたいのです。
UP時でもUP後でもかまいません。

2日ぐらい検索しまくってるんですが、ヒントらしきものも見つかりません。
asf->asfって不可能なのでしょうか?
インターネットビューカムで撮影→PCに取り込む→アップロードという流れです。
もし、PHPと関係なかったらスミマセン・・・。

742 :名無しさん@お腹いっぱい。:2001/08/23(木) 00:02 ID:???
少なくとも普通に考えたらPHPだけでビットレートを変更するのは無理だと思う。
現実的なのはアップロードする前にクライアント側で編集調整するしかない。

743 :ANT:2001/08/23(木) 04:11 ID:???
>>742
そうですよねー。
ただクライアント側で編集調整するとしても、
バッチとかで一括処理できる環境にしてあげないといけないのです。
そっちも当たってみてるんですが、いい方法うかばなくて。。。

>>741
訂正:RedHatは開発機でした。本チャン機はSolaris予定です。
納期が迫ってきていて困ってます、情報お願いします!
(動画配信とかの勉強したほうがいいのかなぁ?)

744 :名無しさん@お腹いっぱい。:2001/08/23(木) 04:47 ID:OoZCUsLI
裏情報売ります!!業界最大数500件を業界最安値10000円即決で!!!!
http://page2.auctions.yahoo.co.jp/jp/auction/b13677137

745 :名無しさん@お腹いっぱい。:2001/08/23(木) 04:55 ID:???
>>743
金出して他人にやってもらえ。

一応 U**X 用ビデオ編集ソフト
http://heroinewarrior.com/bcast2000.php3
http://xanim.va.pubnix.com/
http://www.mainconcept.com/

746 :名無しさん@お腹いっぱい。:2001/08/23(木) 05:01 ID:???
WebProg板は(ほかでもだけど)仕事が絡んだ話だとほとんどレス付かないよ。
納期が云々言い出したらなおさらだよ。

ガンバレ。

747 :1:2001/08/23(木) 11:37 ID:hVRNcAwI
http://www2.to/BGM

http://www2.to/SOUND

http://www2.to/CASINO

http://www2.to/GAME

http://www2.to/TOP

748 :ANT:2001/08/23(木) 12:27 ID:???
>>746
助言ありがとうございます。
仕事が絡むとダメなんですね、勉強になりました。

749 :名無しさん@お腹いっぱい。:2001/08/23(木) 13:14 ID:???
救いがたい馬鹿だ…。

750 :名無しさん@お腹いっぱい。:2001/08/23(木) 15:34 ID:???
>>748
いやさ、他人をタダで自分の仕事を手伝わせることについて何も思わないの?
仕事で金をもらっているならまがいなりにもプロだろ。
後一歩力及ばす同業の知恵を拝借ってなら分かるが、
右も左も分からないので教えてくれという態度では、資質を疑う。
個人請負だとしたら営業で損してるだろうから、
もっとはったりが利くようにした方がいいよ。余計なお世話だが。

751 :名無しさん@お腹いっぱい。:2001/08/24(金) 00:02 ID:???
いちおう突っ込んどくか・・
まがいなり -> まがりなり
だよ。

752 :名無しさん@お腹いっぱい。:2001/08/25(土) 15:46 ID:1elSeqPg
NICOLEさんという方のHPで配付していたwwwforumというCGI
現在バグで配付を中止しているみたいなのですが
どういうバグか知っている方いませんでしょうか?
あと再配布してるとこってないでしょうか?

753 :名無しさん@お腹いっぱい。:2001/08/26(日) 03:26 ID:WUIH93bE
こんばんは。
PerlでCGIに挑戦しています。

1 print "Location:./index.html\n\n";

2 <META HTTP-EQUIV="refresh" CONTENT="0;URL=./index.html">
で、ページに移動する時間が違います。
1のほうは、ちょっと時間がかかるようですが、
理由を知っていましたら教えてください。

2だとダミーページ(空白)を出したりしないといけないので、
できればきれいに1のやり方がいいのですが・・・

よろしくお願いします。

754 :名無しさん@お腹いっぱい。:01/08/26 16:23 ID:???
>>753
遅くなる理由とか知らないけど、
Location: は http:// からフルで書かないとダメだよ。

755 :名無しさん@お腹いっぱい。:01/08/26 16:47 ID:???
>>754
RFCによればその通りだけど
CGIの仕様的には書いてもいい事になってる。
つまり絶対パスに置換する責任はWebサーバにあるのでは?

756 :755:01/08/26 16:48 ID:???
絶対パスじゃなくて絶対URL

757 :名無しさん@お腹いっぱい。:01/08/26 18:49 ID:CSxgtJiA
絶対URLに変えてもやはりLocationのほうは、ワンクッションあります。
テストは同じスクリプトで、1と2を書き換えて試しています。
うーん・・・・

758 :名無しさん@お腹いっぱい。:01/08/26 19:05 ID:JG2uz2mw
何で? .cgiに飛ばしてんじゃ無いの
Locationで詰まるhttpdなんて聞いた事無いぞ

759 :名無しさん@お腹いっぱい。:01/08/26 19:21 ID:JG2uz2mw
はう
httpd=>ブラウザ

760 :名無しさん@お腹いっぱい。:01/08/26 20:10 ID:Ggh.3cUs
>>753
CGIとHTMLを両方読み込まなきゃいけないからじゃないの?
仕組み的に一度CGIを読み込んでからHTMLに飛ばされるわけでしょ?
だとしたらまっすぐHTMLを表示するよりは遅くなると思うけど。
ワンクッションってそういう意味じゃなくて?

761 :名無しさん@お腹いっぱい。:01/08/26 20:48 ID:tTNWmyGQ
Rewrite使うというのはどうか。

762 :名無しさん@お腹いっぱい。:01/08/26 23:37 ID:eCX4RPHs
>>761
CGIで何も処理しないで飛ばすならいいけど、
CGIで何らかの処理が必要ならrewriteで飛ばされてからじゃ遅すぎないか?

763 :名無しさん@お腹いっぱい。:01/08/26 23:56 ID:tTNWmyGQ
2 <META HTTP-EQUIV="refresh" CONTENT="0;URL=./index.html">
ってのがあったから、単に飛ばすだけなのかな、と。

764 :753:01/08/27 00:10 ID:8DJc9D8s
CGIで処理して、次のページに飛ばそうとしています。
次のページに飛ばすのに、
1のようにLocationで飛ばすか、2のようにHTMLを吐き出して
refreshで飛ばすかという状況です。
760さんの指摘されるCGIを読み込むから遅いということはないです。

765 :名無しさん@お腹いっぱい。:01/08/27 00:49 ID:pleuTSSw
テストしてみた、、、
僕も2度読みの起動コスト以外は考えられないな
ちょっとコード見せてくれない? >>753

#!/usr/local/bin/perl
if ($ENV{'QUERY_STRING'} eq 'a'){
print "Location: http://www.yahoo.com/index.html\n\n";
}elsif ($ENV{'QUERY_STRING'} eq 'b'){
print<<"HTML"
Content-type: text/html

<html><frameset cols="100%,*">
<frame src="http://www.yahoo.com/index.html" name="select">
</html>
HTML
}
exit;

766 :名無しさん@お腹いっぱい。:01/08/27 00:52 ID:pleuTSSw
ちなみに自宅と外のサーバー4箇所に置いて見たよ
構造的にLocationの前に律速工程が有るんじゃないの?

767 :名無しさん@お腹いっぱい。:01/08/27 01:13 ID:EqCmVUMM
Perlで、flockを正しくかけていても、ログが飛ぶことはありますか?
あるのなら、それはどのような時なのでしょうか?

768 :名無しさん@お腹いっぱい。:01/08/27 01:35 ID:zFHmgKAE
ファイルシステムがNFSの場合はそもそもflockの完全性は保証されてないよ。
あと、ディスクフルのときに書き込もうとするとファイルが壊れることはある。
ありがちなのが、ログの内容をメモリに格納して、ファイルを消去した上で全部書き直すとかね。
ファイルはロックされててもメモリの内容が破壊される事はまれにある。

あと、OSのバグとかね。
こういうところは考えに入れないけど。

769 :名無しさん@お腹いっぱい。:01/08/27 01:49 ID:sFfEStcw
>>768
なるほど・・・ 勉強になりました。ありがとうございました。

770 :名無しさん@お腹いっぱい。:01/08/27 16:42 ID:T34udJH2
アクセス解析のefstatを設置しようと思っているのですが
fcount.cgiをウェブ上から呼び出すと文字化けしてしまい、
カウンタ画像も壊れてしまいます。
fstatは正常に呼び出せるのですが、何がいけないのかわかる方はいますか?
パーミッションは全てチェックしました。

771 :名無しさん@お腹いっぱい。:01/08/27 16:48 ID:ElSN0SkA
配布元のURLくらい書けや

文字化けは使ってるUAとどんな文字化けかくらい書け。

772 :名無しさん@お腹いっぱい。:01/08/28 02:30 ID:scViMzR.
すんません。
サーバーにかかってる負荷を調べるにはどうしたらいいのでしょうか。

773 :名無しさん@お腹いっぱい。:01/08/28 04:55 ID:18vpKowI
>>772
いちユーザーがサーバ負荷を調べるのは無理。

774 :名無しさん@お腹いっぱい。:01/08/28 09:42 ID:paG6GuIk
Telnetでtopとかは?

775 :名無しさん@お腹いっぱい。:01/08/28 10:51 ID:1jJCAs5c
>>753 # Location と refresh : refresh の方が速い?

refresh の方は Cache にあるページが表示されるんでない?
Location の場合、ブラウザが Cache を見ずに必ずページをリクエストするとか。
ブラウザによると思うけど。

776 :名無しさん@お腹いっぱい。:01/08/30 08:44 ID:Lg0QXk2Y
CGIの勉強ってどんな風にするんですか?

777 :七死出号:01/08/30 09:25 ID:cQfl7/iM
小規模ながらフロート板を作ろうとしている者です。
たいへん厨房な質問でスマソが、
2chは真珠製ですか?

778 :名無しさん@お腹いっぱい。:01/08/30 09:32 ID:UyczCLUM
read.cgi は C 他は perl

779 :七死出号:01/08/30 09:56 ID:f46sfrU6
スマソ。確認してみたら真珠製でした。
とはいえ、元のスクリプトはフリーで手に入るのでしょうか?
特にhttp://kyoto1.ceo-jp.comなんて
まんまパクリのような気がするんですが。

780 :七死出号:01/08/30 09:59 ID:fo48bRRA
あらら、Cもあったんですね・・・・・多謝。

781 :名無しさん@お腹いっぱい。:01/08/30 20:05 ID:9ruRdkxM
今度サイトを作るにあたって、フリーの CGI 掲示板と日記 ( 配布元は別 )を
アップロードしてみたのですが、 jcode.pl のパーミッションが異なるのです。

掲示板が 705 , 日記が 644

どのようにアップロードしたら良いのでしょうか?
因みにサイトは isweb で作っています。
cgi-bin ディレクトリの中に入れてあります。よろしくお願いします。

782 :名無しさん@お腹いっぱい。:01/08/31 00:33 ID:vqahwX9o
>>781
最初からあるってこと?

783 :781:01/08/31 01:47 ID:CNUi.0Z.
>>782
そうです。解説を読んでみると、両者のパーミッションの値が違っています。
掲示板は apeboard+ , 日記が a-nikki のものです。

で、あれからやってみた事は
1: 最新の jcode.pl をアップ。
2: パーミッションは 705 に設定。(理由は。。実は無くて。。)

cgi-bin フォルダの中に jcode.pl , BBS フォルダ , Diary フォルダ と分けて入れてみました。
すると 掲示板は正常に機能しています(多分
日記は。。。多分他の設定だと思うのですが。。。書き込みが出来ません。
結局 jcode.pl のパーミッションってどっちでも良いとかでしょうか。。

784 :782:01/08/31 02:14 ID:15D5/wj6
>>783
というか、CGI自体動いてるならrequireできてるんじゃないの?
読み込み権限さえあれば大丈夫な気が・・・<jcode.pl
日記ログファイルの書き込み権限の問題だと思ふ。

785 :781:01/08/31 03:04 ID:CNUi.0Z.
>>782
レスありがとうございます。
ホント初心者で。。満足なレスも返せないです(´д`;)

>ログファイルの書き込み権限の問題

頑張ってみます

でも。。今日はおやすみなさい。。。

786 :名無しさん@お腹いっぱい。:01/08/31 06:26 ID:VX9KUFUU
僕も便乗です、たまにjcodeに実行権限要求する配布スクリプトが
有りますけど(755と言う感じで、、)あれは
作者さんは何を意図してるんでしょう
コード見てもconvert(*〜,'sjis')とかしてるくらいで。。。
なじょ、、、

787 :名無しさん@お腹いっぱい。:01/08/31 07:40 ID:zdWj8zOY
$B$3$&1>$&$N$rKI;_$7$F$$$k!)(B

788 :名無しさん@お腹いっぱい。:01/08/31 09:30 ID:HZ7NLBJA
jcode.plに実行権限は不用。
ま、作者の程度を知る物差しだと思っておけば良し(藁

789 :名無しさん@お腹いっぱい。:01/09/01 15:18 ID:uIahMRmk
ありがとう、>>788
そうですよねぇ、、まだ書き込みなら解るんですが昔のバージョンで
そう言うモードが有って、その後方互換性の為なんかなとか勝手に思ってました
って事は上で言ってる掲示板って。。  ^^;;

790 :名無しさん@お腹いっぱい。:01/09/01 19:23 ID:lhNf.ubE
人に渡す時は、全部まとめて「*.plと*.cgiは705」って指示しちゃう時あるなー。
あんまり細かく厳格にしとくと、設置時の設定ミスを誘うから。
パーミッションの設定ミスで「動かない、何とかしてくれ」みたいなこと少なからずあるし(w

簡単設置を謳ってるようなスクリプトなら、
そーゆー意図がある場合もあるかも? <jcode.plの実行権限要求

791 :名無しさん@お腹いっぱい。:01/09/06 13:13 ID:vG7O1gaY
ここで聞いても良いのかな・・
えっと、perlスクリプトの出力をHTMLのテキストエリアに吐き出しています。

print "<textarea rows=300 cols=90>";
 foreach (@_){
 print;
 }
print "</textarea>\n";

@_にはリモートからの入力、ローカルファイルの内容などが入るんですが
内容に "</textarea>" と言う文字列が有ると
そこでタグが閉じてしまいます(当たり前ですが・・)
テキストエリアで出力すると、とても読みやすいのでこの方法が
気に入っています。
何とかこのままで上手くやる方法は無いでしょうか

792 :名無しさん@お腹いっぱい。:01/09/06 13:20 ID:gk4jmuDQ
foreach my $hoge (@_){
 $hoge =~ s/</>/g;
 $hoge =~ s/>/</g;
 print $hoge;
}

これで 宜しいかと思われます

793 :名無しさん@お腹いっぱい。:01/09/06 13:23 ID:cGMUUJcs
こういうこと?
foreach (@_){
 s/</&lt;/;
s/>/&gt;/;
 print;
 }

野暮なこと言うようですが、読みやすいからって<textarea>で
出すのは間違ってるよ。スタイルシートとか使えばいいじゃん。

794 :792:01/09/06 13:25 ID:gk4jmuDQ
ガ━━(゚Д゚;)━━ン! 失敗した

foreach my $hoge (@_){
 $hoge =~ s/</&lt;/g;
$hoge =~ s/>/&gt;/g;
 print $hoge;
}

これで 宜しいかと思われます・・・。

795 :792:01/09/06 13:28 ID:gk4jmuDQ
鬱だ・・・逝って参ります。

796 :ななし:01/09/06 21:43 ID:8sM1gM9g
スマソですが、cgi-binに直接アクセスされたときに中身が見えない
ようにしたいんですがパーミッションをどのようにすれば?

見えないように自分で変更したらCGIが実行出来ませんでした。
ド素人です。

797 :名無しさん@お腹いっぱい。:01/09/06 22:07 ID:???
>>796
index.html置いたら?

798 :ななし:01/09/06 22:12 ID:8sM1gM9g
www.*****.comはルートフォルダーにindex.htmlおいてるので内部はみえません。
ただ、www.****.com/cgi-bin/ でどのようなcgiを使ってるかが見えちゃうん
です。

799 :名無しさん@お腹いっぱい。:01/09/06 22:14 ID:???
>>798
www.****.com/cgi-bin/index.htmlを置いたら?

800 :ななし:01/09/06 22:15 ID:8sM1gM9g
あ、なるほど。
パーミッションいじることも無いんですね
やってみますー ドモ

801 :ななし:01/09/06 22:22 ID:8sM1gM9g
出来ましたです。ありがとうございました

802 :名無しさん@お腹いっぱい。:01/09/06 22:29 ID:UxjwYaQ6
これはどう?  イイと思うんだけれど…

http://chiba.cool.ne.jp/gedouhobby/

803 :800:01/09/07 03:04 ID:VqivuQXM
パーミッションを711にしたら動いたんですが
これでもいいんですかね?

711でCGIの動には問題ないですか?

804 :名無しさん@お腹いっぱい。:01/09/07 04:37 ID:???
>>803,800,796
cgi-binの中にファイルを作ったりするCGIでなければ問題ないはず。
あと711で動くなら、701でもいけると思う。

7とか1とかの数字の意味がわかんなくて、それを知りたいつーなら、
そういってくれれば説明するよ。たぶん。。誰かが。。。

805 :初心者です。:01/09/07 11:15 ID:sphN5BlA
すみません。。わからないことが一つありまして・・・
「挿入」「変更」「削除」と言うボタンを1つのCGIの中に入れたとき
<input type="submit" value="">ってのが3つできますよね?
その時に<form action="hoge.cgi" method=post>って1つしかないじゃないですか?
この場合それぞれ違う処理をするようにするにはどのようにしたらいいのか教えてください。
お願いします。

806 :名無しさん@お腹いっぱい。:01/09/07 11:37 ID:???
>>805

<input type=submit value=挿入 name=submit>

if ($FORM{'submit'} eq '挿入') { ほげほげ }

で出来ると思います・・・。

でも これだとボタンを押さないと「挿入」が送信されないかもしれないです・・・。

807 :名無しさん@お腹いっぱい。:01/09/07 12:50 ID:klnUBO0U
CGIにIMGタグって挿入できますか?
掲示板にアクセス解析つけたいんですが、どうすればよいのか
わからないのです。

808 :ファイナルアンサー?:01/09/07 15:17 ID:???
>807
1:print "<IMG SRC=./count.cgi>";
2:print "<IMG SRC=\"./count.cgi\">";
3:print qq(<IMG SRC="./count.cgi">);
4:print '<IMG SRC="./count.cgi">';
オーディエンスをお願いします。(ぉぃ

809 :807:01/09/07 15:51 ID:???
50/50も使ってイイですか?

810 :名無しさん@お腹いっぱい。:01/09/07 21:12 ID:fuzJw3YM
とても初歩的な事ですが、カール板のひみこーどにノイズを加えたり数字を回転させたり
するにはどこをどうすればいいのでしょうか。
マジレスでお願いします。

811 :名無しさん@お腹いっぱい。:01/09/07 21:15 ID:???
カール板って何? はやってるんの そーなの
おぢさんチョーわかんない

812 :791:01/09/07 21:33 ID:???
>>792>>793>> さんありがと御座います。
んー、やっぱり邪道ですか (^^;
取り合えず</textarea>が有ったら変換して、表示する様にしました

理由は、前述の通りTAGとかインデントをそのまま表示したいからなのですが
CSSを使えば同様の事が出来るんですね、勉強不足です。。。
ちまたのソース貼り付けBBSを見て勉強しようと思います。
phpのソース表示とか綺麗なんだよなー、、、
ありがとう御座いました。

813 :にゃん:01/09/07 22:51 ID:???
変な事書くとCGIだとInternal〜〜ゴルァって怒られるです。
シェルだとaborted due to compilation errors.
とか言ってくれるんですがその時STDERRを補足して、
HTTP側にリダイレクトしてから死ぬ方法は無いでしょか
Kcatchとか使わないとダメ? つーかソース嫁ってかんじでしょか?
逝って来ます   ・・・・・・・寂しげせなか

814 :にゃん:01/09/07 23:05 ID:???
ああっ! 今CGI-ML見たら同じ様なPOSTがあるにゃ (笑
dieイベント用のハンドラを自前で用意すればいいのか・・
やっぱりソース見ろって言われてる・・(滅

815 :質問!:01/09/07 23:46 ID:vh.4S7K2
CGIさんに聞きたいのですが、
外部ファイルを読み込むのと、ファイルの中に書いておくのでは
どちらが疲れないですか?

javascriptもつかいたいので、記述部分が結構大きくなります。
CGIさんが疲れない方にしたいのですが?

816 :名無しさん@お腹いっぱい。:01/09/08 00:22 ID:???
>>815
なんとなくファイルの中に書いたほうがいい気もするが。
外部ファイルのサイズや使い方によるんでない?
もすこし具体的な例を出してもらわんと。

817 :815:01/09/08 00:49 ID:EuGVOIsk
掲示板のスクリプトなんですが、
javascriptが5.74kb
CSSファイルが455b
入力フォームのHTMLが2.34kbです。

入力フォームのHTMLでjavascriptとCSSのファイルを読み込むように
してあります。

CGIファイルのベースにしたのはとほほ氏のwwwboardです。

どうでしょうか?

818 :名無しさん@お腹いっぱい。:01/09/08 00:50 ID:???
かわいい (^^
全然OKだと感じます。

819 :815:01/09/08 01:02 ID:EuGVOIsk
>818
しかし、午前三時頃や午後あたりは書き込めないようです。
サーバーはFREEWEB(infoseek)です。
多分、今夜もあと二時間後はCGIさんが僕のスクリプトのめんどうを
みてくれなくなると思います。

どうでしょうか?
何かお気づきの点はございませんでしょうか?

820 :名無しさん@お腹いっぱい。:01/09/08 01:11 ID:???
それopen失敗してるんじゃ無いの?
良く解らんけど、あのサーバー、ファイル壊れるし
制限キツイし、その割にセキュアじゃないしで大嫌いです。
僕の配布してるBBS(シンプルな一行レス板)
でもiswebで調子悪いと良く言われます。
C-Boardとかのファイル開けまくり系も調子悪いらしいです。
f2sとisはやめてほしい。。 (-。-
3時って言うのはおかしいですね、その時間にAbuseしてる人が
居るのかもしれないですね。

821 :名無しさん@お腹いっぱい。:01/09/08 01:16 ID:EuGVOIsk
>820
他のサーバーにしたほうがいいですか?
トクトクも考えています。

822 :名無しさん@お腹いっぱい。:01/09/08 01:24 ID:EuGVOIsk
あ、今、CGIに見放された。403になりました。
ロックファイルは残っていません。

なぜか直接URLコピペするとちゃんと動作しています。書き込みも
できる。
もちろん、つながらなくなったリンクはisWebの自分の容量内でのリンクです。

823 :名無しさん@お腹いっぱい。:01/09/08 01:25 ID:???
トクトクも勧められないが、今見てみたら大体3〜4000人位
詰め込んでるみたいだね>isweb、むしろこれでCGI動いてる事
事態が凄いんじゃないだろうか。
CPU USAGEとか凄い事になってると思うよ。
今にして思えば、Virtualave,Hypermartの両サーバーは偉大だったねえ
よっぽど極端なループとかしてない限りサーバーの性にして良いと
思うが。

824 :823:01/09/08 01:31 ID:???
ちょっと実験したぞ、34番サーバー
ちゃっと置いて適当に書き込んだらやっぱりログdだ p
かわいそうなサーバーさん、、、

825 :名無しさん@お腹いっぱい。:01/09/08 01:33 ID:EuGVOIsk
>>824
僕も34番です。34番がとりわけぼろいんでしょうか。
13番の友達のところではこういうことはありません。

826 :815:01/09/08 01:37 ID:EuGVOIsk
あー、コピペでも403だー。

結構javascriptをつくるの苦労したので、配布したいんだけど、
こんなんじゃ信用性が疑われるよ。

827 :823:01/09/08 01:38 ID:???
何かチャット状態だね p
漏れもちょっと前に、とあるスクリプトの改造版配ってたんだが
その時から(freeweb時代)やたらファイルが壊れたなぁ。
多分DISK IOが大変な事になってるんだろうと思ったけど。。
ちなみにチャットは置いちゃダメだよ、ちょっと調べただけです。

828 :815:01/09/08 01:42 ID:EuGVOIsk
>827
はい。書いてありましたので、大丈夫ですよ。
チャットとゲームはダメなんですよね。

ということは、より負担の少ないCGIを書いてもムダってことでしょうか。
一応Perl質問スレ1-6をダウンロードして読んでるところなんですが。

829 :823:01/09/08 01:49 ID:???
ソース見てないから何とも言えないけど、貴方がコストを意識して
コーディングしたんなら、やっぱり(と言うか絶対)サーバーの問題
じゃないだろうか?
KENTの配列一気読みコーディングなんかが意外といいのかも w
解ってると思うけど、JAVASCRIPT処理するのはクライアントだよ、一応。
ここの2ch型掲示板ってスレ読んでみ。
サーバーの苦情らしき書き込みが沢山あるよ
それと自前のファイルロックとか使ってたら、意外とそれが癌だったり
するから、その辺は要チェックかな。恥かかないためにもね
じゃ、寝ます

830 :815:01/09/08 01:59 ID:EuGVOIsk
どうもありがとうございました。
javascriptがクライアントってのは解かります。
本当にありがとうね!!

831 :初心にかえって物:01/09/10 11:00 ID:5B9RTOLE
掲示板みたいなのを作ってるんですが、フォームから'GET'または'POST'でデータを
送ってCGIの方でデータを保存して出力はできるんですが、この状態でブラウザの
「更新」ボタンを押すと同じデータが送られてしまって、同一データができてしまいます。
この場合ってクエリ文字をキャンセルする方法ってあるんでしょうか?教えてください。

832 :名無しさん@お腹いっぱい。:01/09/10 11:03 ID:???
データ保存するCGIからLocationとかでリダイレクトさせる。

833 :名無しさん@お腹いっぱい。:01/09/10 14:34 ID:/XtzFYCg
web上のhtmlファイルを取り込むにはどうすればいいのでしょうか?

opendir(DIR,"http://www.hoge.com/") or die "opendir miss";
@htmlfile = sort grep {/.html/} readdir(DIR);
closedir(DIR);

じゃできないですよね?

834 :名無しさん@お腹いっぱい。:01/09/10 14:43 ID:???
出来るわけがありません。

835 :名無しさん@お腹いっぱい。:01/09/10 15:14 ID:???
>833
>>2のリンク集の先を「LWP」「socket」で調べてみることをお勧めします。

836 :名無しさん@お腹いっぱい。:01/09/10 15:49 ID:.RrxrENY
1〜5を選択する項目を10個くらいと
コメントを記入する項目が3個くらい
のフォームを作って

1,5,3,2,4,5,3,4,5,4,回答者1のコメント,だめっぽい,またあした
3,5,3,2,4,5,3,4,2,4,僕は回答者2です,いいかんじ,御願いします

という感じでcsvファイルを作るcgiスクリプトを
作りたいのですが、
formからデータを受け取る>ファイルにcgiが書き込む
という流れを思いつくだけで
具体的にどうしたらいいのやらさっぱりです、、

こんな私にどなたか少しでいいのでアドバイスを御願いします、、
自分でもいろんなページみてはいるのですが、、

あと、cgiで中国語や韓国語ってどうやって使うんでしょうか?
jcode.pみたいなのが必要ですか?

837 :835:01/09/10 16:23 ID:???
スマン。
こっちのスレにはリンク集なかったのか・・・。
http://corn.2ch.net/test/read.cgi?bbs=php&key=996075607&st=2&to=2&nofarst=true
ここです。

838 :名無しさん@お腹いっぱい。:01/09/10 18:39 ID:bP2SIPQQ
えっと、cgiでフォームメール使うのってありますよね?
WWWサーバとは別のサーバにMTA立ってて、それを使って送信って出来ます?
本を読んでみても良く分からないんで、教えて下さい。

WWWサーバは、アパッチで、OSはSolaris7です。

839 :名無しさん@お腹いっぱい。 :01/09/10 18:47 ID:???
>>836
:HTML表示
:ブラウザから送信されたデータをURIアンエスケープ**
:適当に整える
:ファイル開く、書き込む、閉じる。
**はcgi-lib.plとか使えば簡単、どっかから持ってきてもいい

下は分からない、難しそうだね。そもそもGBとHZとBIG5って変換出来るん
だろうか。前にGBの掲示板見た時はそれらしきものはインクルード
されてなかったな 多分環境依存とかあるんだろうね

840 :あああああああ:01/09/10 18:47 ID:IA/gamiU

>こんな感じに。インクリメントを理解してません。。
これをhttp://dx.sakura.ne.jp/~fbrand/fifnel/app/#petit boardの2ch風アレンジの複数行モードでレスナンバーの表示ですが、
どうすればいいでしょうか。
http://dx.sakura.ne.jp/~fbrand/fifnel/bbs2/のように
No.1 ふぃふ xx年yy月zz日
と、No.でレス記事番号をつけたいです。

841 :むぎ茶     :01/09/10 18:54 ID:???
あなたニホンゴハナセマスカ

┐(´ー`)┌


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

842 :名無しさん@お腹いっぱい。:01/09/10 19:04 ID:???
http://corn.2ch.net/test/read.cgi?bbs=php&key=996155032&ls=50
>>836
こんなのあったぞ、まああんまり勧めたもんじゃ無いが、、、
勉強にはなんだろ

843 :本家なぐ ★:01/09/11 01:38 ID:???
おお

844 :名無しさん@お腹いっぱい。:01/09/11 09:19 ID:OqJ.Pmkc
>>839
感謝です!ありがたや、、
最初のHTML表示という項目は
cgiから吐き出す必要ないですよね?

韓国語、中国(カンタイ、ハンタイ)は
csvに保存するだけなら英語版(?)のcgi通すだけで
問題ない「かも」しれないっていわれました。
不安です、、

どなたか詳しい方いらっしゃいませんでしょうか!?>中、韓

>>842
頑張って理解してみます!
(こんなレベルでcgi組もうっていうのも我ながら、、

845 :名無しさん@お腹いっぱい。:01/09/11 09:23 ID:???
中国語・韓国語使えるようにしたいって事は、
中国語や韓国語読める&書けるんだろ?

なら中国や韓国のホームページor掲示板で聞
いた方が確実且つ早いと思うが。

846 :名無しさん@お腹いっぱい。:01/09/11 09:24 ID:OqJ.Pmkc
http://corn.2ch.net/test/read.cgi?bbs=php&key=991043506
似たような疑問もった人ハッケソ

847 :名無しさん@お腹いっぱい。:01/09/11 09:33 ID:???
>>845
まったくわかりません。テヘ
ついでに言うなら英語もサッパリです。鬱、、

cgiからHTML吐き出さないし
CSVファイル作るだけなんで
案外簡単に出来たりしないかなと
考えてるんですが、、無理かな、、

848 :名無しさん@お腹いっぱい。:01/09/11 09:46 ID:???
最近のブラウザは表示されたHTMLと同じ文字コードで
フォームのデータ送ってくるから、文字コードの変換
なんか気にせんで良い。
たまに文字化けデータが出る可能性があるけど無視しとけ。

てゆーか、中国語・韓国語分かりもせんのになんでんなもん
が必要なんだよ。

849 :名無しさん@お腹いっぱい。:01/09/11 09:53 ID:???
>>848
お客さんの依頼なんです、、鬱、、

という事は北京語ならBig5と決め打ちで平気ってことですよね?
んーむ、、

850 :名無しさん@お腹いっぱい。:01/09/11 11:07 ID:OqJ.Pmkc
送られてきたデータをcsvで保存するだけなんだから
問題ないっていわれたんですけど?
本とかな、、?

851 :名無しさん@お腹いっぱい。:01/09/11 11:42 ID:???
文字コードGB2312から送信>CGIがCSVに保存で
問題ないみたいっす。やってみたら普通にできました。
他のでもこうであることをいのりつつ、、

852 :名無しさん@お腹いっぱい:01/09/11 12:01 ID:???
ああ、そう言う意味か。文字コードが同じなら(常にBGで送信されると保障されるなら)
何も心配ないよ URLデコード<=>URLエンコード を繰り返してるだけ
なんだから。
問題はGBを想定した環境にHZで書き込まれた時なわけ。
この辺は良く解らんけど、例えば日本語だとFROMの表示をSJISにしても
送信時にはEUCで送信してしまうようなケースが良く有った。

そうなると同じファイル内に2種類の文字コードが混在する事になっちゃうわけ
これも推測だけど、GBだけに含まれる文字コードの範囲が分かれば
書き込み前に、チェックしてGBに有り得なさそうなコードを含んでいたら
(゚Д゚)マズー 位は出来るんじゃないかな

853 :名無しさん@お腹いっぱい:01/09/11 12:04 ID:???
日本語変だけど 適当に解釈してね

854 :名無しさん@お腹いっぱい。:01/09/11 12:58 ID:OqJ.Pmkc
>>852
ありがとうございます!
日本語変だなんてとんでもないです!ばっちりです!

>例えば日本語だとFROMの表示をSJISにしても
FROM?FORMのうちまちがい、、?

コードチェック、、うむむ、俺には無理だ、、鬱。

855 :名無しさん@お腹いっぱい。:01/09/11 13:35 ID:???
>>852
IEだと
エンコードをHZにしておけばHZもGBも両方表示できてました。
そういうものなのか、偶然なのか、、

856 :852:01/09/11 14:09 ID:???
>FROM?FORMのうちまちがい、、?
すんまそん

漏れも肝心の文字コードがどうなってるのかが分からないからこれ以上
力になれそうにないな、
GBをシフトしたものがHZなのか、それとも拡大した
ものなのか、それともその逆なのか、この辺をしらべてみれば答えは
出るんじゃないかな、そんな単純でもなさそうだけど  w
多分 ”我 ”とか ”イ尓 ”位はどの文字コードでも同じはず
確実に言えるのは BIG5 に GB や HZ で書き込むとダメって事くらい

857 :名無しさん@お腹いっぱい。:01/09/11 14:25 ID:???
>>856
いえいえ、本当にありがとうございます。
調べたところHZはGBを7bit にエンコードするためのなんたらカンタラ、、、


ttp://hyena.hle.niigata-u.ac.jp/files/hzmail.html

ttp://mlang1.osaka-gaidai.ac.jp/~tagengo/multi/char_code.html

858 :名無しさん@お腹いっぱい。:01/09/11 14:56 ID:mAmWB4Ko

ホレ! http://chiba.cool.ne.jp/gedouhobby/

859 :名無しさん@お腹いっぱい。:01/09/11 15:07 ID:???
>>858
なにがホレなのか、、

860 :名無しさん@お腹いっぱい。:01/09/11 16:42 ID:???
>文字コード
FORMで accept-charset="Shift_JIS, EUC-JP" とかやれば
受け付け文字コードを制限できたような気がする。
>>858
最近よく見るけど,投稿日まちまちだよね。
手作業?

861 :名無しさん@お腹いっぱい。:01/09/11 20:20 ID:???
BBSの一つ一つの「記事」のことは英語では何と書くのがスマートでしょうか。
微妙にスレ違いな気もしますが、教えてください。

862 :>>861:01/09/11 22:39 ID:???
articleかな。
あとはsubjectとかheadlineとか
英語わからんのでうろ覚え

863 :名無しさん@お腹いっぱい。:01/09/12 00:50 ID:LH.sd166
perlの質問です!
confファイル(set.conf)で宣言した変数を
パッケージ(conf.pm)の先頭でrequireして
そのパッケージを他のcgiファイルでオブジェクトとして読みこんで
confファイルで宣言した変数を使うことは可能でしょうか?
書き方が分からなくてテンパってます…教えて下さい!

864 :名無しさん@お腹いっぱい。:01/09/12 01:40 ID:???
s/テンパって/デムパって/

865 :名無しさん@お腹いっぱい。:01/09/12 04:24 ID:???
>>863
意図するところと違うかもしれませんが。

# set.conf
use strict;
our $hoge = 12345;
1;

# conf.pm
package conf;
use strict;
require 'set.conf';
1;

# main.cgi
use strict;
use conf;
print "Content-Type: text/plain\n\n";
print "$conf::hoge\n";

866 :861:01/09/12 17:45 ID:???
>>862
遅レス失礼。
ありがとうございます。
参考にします。

867 :863:01/09/12 21:37 ID:xoRCqYQQ
>>865
ありがとうございます!
「オブジェクト名::変数名」で参照するのですね。
その書き方が分からなかったので参考になります。
変数を宣言する時には「our」としなければいけないのでしょうか?
ourとするとエラーが出てしまいました(500エラー)。
あと普通にやっても値が取れませんでした…
当方携帯でCGIを動かしているのですが、それが問題ってわけではないでしょうか?

868 :名無しさん@お腹いっぱい。:01/09/12 22:05 ID:???
"オブジェクト名::変数名"じゃなくせめて"クラス名::変数名"と表現して欲しいな(w

ourがダメなのはPerlのバージョンが低いせいだろう。

our $var;
これを
use vars qw($var);
use vars qw($foo @bar %hoge);
のように変更すれば使えるようになるはずだ。

869 :865:01/09/12 22:14 ID:???
>>867
それPerlのバージョンが古いっすね。ver5.6以前のPerlなら

# set.conf
use strict;
use vars qw($hoge);
$hoge = 12345;
1;

だったかな。"our"を取って、use varsの後ろに変数名をズラズラ並べる。

870 :865:01/09/12 22:15 ID:???
う。かぶりまくり。

871 :名無しさん@お腹いっぱい。:01/09/12 22:16 ID:???
>>868

クラス名でもアレかと。

純粋に名前空間として使用しているのであって、
クラスやらオブジェクトやらは関係がない。

「せめて」と書いてあるので、こんなことは承知で書いているだろうけど。

872 :名無しさん@お腹いっぱい。:01/09/12 22:17 ID:???
>>868
> "クラス名::変数名"と表現して欲しいな(w
それを言うなら"パッケージ名::変数名"でしょ

873 :名無しさん@お腹いっぱい。:01/09/13 00:08 ID:WAUiRtRA
CGIでzipファイルを出力したいのですが出来ません。
IEではこのファイルをダウンロード出来ませんと言われます

Content-type を
application/zip
application/x-zip-compressed
の2つで試してみたのですが駄目でした、htmlやtext/plain は
問題無く表示出来ています (あたりまえですが。。。。)
勿論普通にアクセスすると問題無くDL出来ます。

874 :863&867:01/09/13 00:31 ID:6uXsG4m.
レスありがとうございます!
use vars qw($変数名,$...,$...); と言う感じで宣言すれば良いのですね。

あと上の方で「オブジェクト名::変数名」と書いたのですが
今、パッケージ(conf.pm)を各CGIファイルの中でnewして
$confというオブジェクトを生成して、
そこからset.confで宣言した変数を参照したいのですが
その場合「$conf::変数名」と言う形で参照できますか?
この場合は「オブジェクト名::変数名」では無いのでしょうか・・?

分かりにくい質問ですみませんが教えて下さい!

875 :名無しさん@お腹いっぱい。:01/09/13 00:38 ID:???
>>873
ソース出してみて。

>>874
そんなことしたい意味がわかりませんし、出来ません。
どうしてオブジェクトにしたいの?

876 :874:01/09/13 00:59 ID:6uXsG4m.
>>875
パッケージ(conf.pm)の中にあるサブルーチンを
$conf->サブルーチン名(); と言う感じで呼んでいるので
変数も呼べるかなと思ったのですが、無理なんですね。

オブジェクトにしたいのは、オブジェクト思考を用いたプログラムを作ると言う課題なので…
パッケージconfや、そこでrequireしてる変数の設定ファイル(set.conf)の中身を参照したい場合
わざわざオブジェクトにする意味は無いのでしょうか?
CGI初心者で見よう見真似で作っているので何が何やら…

877 :865:01/09/13 01:20 ID:???
>>876
いや、perldoc perlobjにまっさきに書いてあるように
「オブジェクトとは要するにハッシュである」んだから
$conf->{'hoge'} = 12345;
とか
print "$conf->{'hoge'}\n";
みたいにオブジェクトの変数をアクセスすることはできますけどね。
set.confでその値を設定するというのが、
いまいちどういう意味だかわからん。。。
オブジェクトをnewするときの初期値ってこと?

878 :865:01/09/13 01:24 ID:???
う、いま見直したら
「オブジェクトとは要するにリファレンスである」
って書いてあったよ。。。<perlobj

879 :876:01/09/13 01:59 ID:6uXsG4m.
>>877
書き方わかりにくいですね。すみません・・。
set.conf では、共通で使われる変数(定数と言った方が良いかもしれません)を
宣言しています。例えばDB名や接続パス、トップのURLなどです。

880 :865:01/09/13 02:38 ID:???
定数設定をオブジェクトにしても意味ないよ
オブジェクト指向の考え方から勉強しなおしたほうがいいかも

881 :875:01/09/13 02:41 ID:???
あ、騙っちまった。880は875。スマン

882 :名無しさん@お腹いっぱい。:01/09/13 03:20 ID:???
>>880
同意。「定数設定用のクラス」を設けるっていうアプローチが間違ってるわけね。

>>876
「実際のオブジェクトのクラス内で定数を定義する」ならいいと思う。
↓こういう感じ。見た目865と変わらないけど、ニュアンスの違いわかる?

# myclass.conf
use strict;
use constant constA => "AAAAA";
1;

# myclass.pm
package myclass;
use strict;
require 'myclass.conf';
sub new { bless {}; }
1;

# main.cgi
use strict;
use myclass;
my $obj = myclass->new;
print $obj->constA, "\n";

883 :875:01/09/13 04:09 ID:???
無理矢理オブジェクトだね(笑)

876よ、ただ一つ言えることはこういうオブジェクトの使い方して
課題で出しても撃沈すること間違い無し。

884 :初心者:01/09/13 07:15 ID:vi66x7.c
ちょっとひとつお聞きしたいんですが、

@test に
133 xx nacchi
322 yy gomaki
240 yy aibon
99 xx nonotan
0 xx ayaya
 ・
 ・

これがまるごと全部入っていたとき、
2列目が"xx"の行だけを抽出して

133 xx nacchi
99 xx nonotan
0 xx ayaya
 ・
 ・

と上から順に並べるにはどうすればいいのでしょうか。
誰かお願いいたします。

885 :名無しさん@お腹いっぱい。:01/09/13 07:25 ID:???
@after =
map { $_->[0] }
sort { $b->[1] <=> $a->[1] }
grep { $_->[2] eq 'xx' }
map { [$_,split(' ', $_)] }
@test;

でどう?

886 :初心者:01/09/13 07:58 ID:vi66x7.c
>>885
どうもありがとうございます。
mapとかgrepとか調べてみましたが全然意味がわかりません。
>>885がどういう理屈なのか説明していただけませんでしょうか。
お手数ですがどうぞよろしくお願いいたします。

887 :名無しさん@お腹いっぱい。:01/09/13 10:31 ID:???
Schwartzian Transform で検索してみると吉かも。

888 :名無しさん@お腹いっぱい。:01/09/13 16:54 ID:???
>>882

クラス定数を使用する時は -> よりも :: を使ったほうが(状況によっては)コンパイル時にタイプミスを検出できる。
でも、クラス名が長くてタイプが面倒ならそれもアリか…。

889 :名無しさん@お腹いっぱい。:01/09/14 00:07 ID:IrljZnrQ
HTTPのLocationヘッダについて教えてください。

Locationヘッダに指定するURLはhttp://〜で始まらなければならないと
聞きましたが、/dir/file.htmlのようにhttpから始まってないCGIをよく
見ます。

これはWebサーバあたりが補完してくれるのでしょうか。
それともブラウザが相対URLでも理解してくれるのでしょうか。
ソフトウェアによってちがうんでしょうかね。。。

890 :876:01/09/14 00:20 ID:L7eQmRgA
長々とすみません。
こんな感じに作っているのですが最後でどのようにして
$hogeを参照していいのかわかりません…

conf.pmの中のサブルーチンをいろいろなところで使いたいので
全てのCGIファイルの先頭でnewしてるのですが
オブジェクトにする必要は無いのでしょうか?
今一度分からないので教えて下さい!

# set.conf
use strict;
$hoge = 123;

# conf.pm
package conf;
use strict;
require 'set.conf';

sub new{ bless {}; }
sub a{ 処理 } #ここで$hogeを使っています。
sub b{ 処理 } #ここで$hogeを使っています。

# main.cgi
use strict;
use conf;
my $obj = conf->new;

$obj->a();
$obj->b();
test();

sub test{ } # この中で$hogeを参照したいのです

891 :名無しさん@お腹いっぱい。:01/09/14 00:24 ID:???
>>889
CGIの規格より。
If the argument to this is a virtual path,
the server will retrieve the document specified as if
the client had requested that document originally.

とのことですから、クライアントには302ステータスは送られずに
元々そのドキュメントをリクエストしたかのように振舞います。

892 :( `.∀´):01/09/14 00:36 ID:bv.kGVZQ
>>889
仕様上は絶対URIのみ有効。
http://way.direct.ne.jp/HTTP/rfc2616_ja/sec14.html#sec14.30
よって
>/dir/file.htmlのようにhttpから始まってないCGIをよく見ます。
この時点でサーバが補完していないことに気付こう。

たいていのブラウザは、都合よく相対パスとして補完してくれるのだと思う。

893 :891:01/09/14 00:54 ID:???
>>892
CGI と HTTP の規格は違いますよ。
試しに、/cgi-bin/redirect.cgi で
print "Location: /test.html\n\n";
とやってみると、ブラウザでは見かけ
/cgi-bin/redirect.cgi として test.html の内容が送られます。
HTTPセッションは一回。

print "Location: http://hoge.com/test.html\n\n";
とすると、ブラウザに302が送られてブラウザは
http://hoge.com/test.htmlを要求します。HTTPセッションは二回です。
このようにまったく振る舞いが違います。

おまけで、print "Location: ../test.html\n\n" とかやると、
ブラウザにそのまま Location: ./test.html と共に302が送られます。
これは規格違反ですが、一応IEでは test.html を読んでくれます。
補完してるのはブラウザですね。

あと、URIや仮想パスや絶対パスや相対パスの意味混乱してません? >>889 も。

894 :891:01/09/14 01:07 ID:???
あ、めっちゃ嘘ついたかもしれません。ちょっと調べます。

895 :891:01/09/14 01:29 ID:???
やっぱあってるみたい。
Location: を http: 無しで出力した場合は内部でリダイレクトされる。
で、注意すべきなのは内部リダイレクトだと一緒にCookieとか出しても
ブラウザはそれを見られないので Redirect と同時にCookie渡したい
場合は、きちんとhttp://付きURLを渡す必要があるね。
そしたらきちんと302HTTPレスポンスが返るのでクッキー取得できる。
けど、302だとクッキー受け取らないUserAgentエージェントがあるって
どこかで聞いた気もする・・・

896 :892:01/09/14 01:52 ID:bv.kGVZQ
CGIの仕様なんて知らなかったYO
HTTPヘッダのことだとばかり思った
サンクス>891
↓探したトコ
http://hoohoo.ncsa.uiuc.edu/cgi/out.html

897 :名無しさん@お腹いっぱい。:01/09/14 02:12 ID:???
>>890
そもそもそれだと、set.confでコンパイルエラーになると思うけど?
まあ、set.conf で strict はずして、conf.pmでは
$conf::hogeで参照するなり、our や use vars 使うなりするとして・・・

main.cgi では $conf::hoge に直接アクセスするべきでは無いよ。
値を得たいなら conf.pm に sub gethoge { $hoge; } とかで
メソッドを作っておいて、$obj->gethoge() として値を得る。

あと、Perlモジュールのお約束(慣例)として、モジュール名は
Conf のように頭文字は大文字にします。
なおかつ既存のモジュールとかぶらないように、アプリ名::Conf と
したほうがいいよ。たとえばプロジェクト名が Mona だとしたら、
Mona::Conf とか。

898 :あうー:01/09/14 14:53 ID:IHq9oP0c
URLからWebサーバの名前を特定できるスクリプト
(たとえばwww.infoseek.co.jpだったらNetscape Enterprise)を
どこかで見かけたのですが忘れてしまいました。
どなたかご存知ありませんか?
知っていたら教えてください。

899 :名無しさん@お腹いっぱい。:01/09/14 14:59 ID:???
www.netcraft.com

900 :名無しさん@お腹いっぱい。:01/09/14 15:04 ID:IHq9oP0c
>>899さん、ありがとうございます。ずばりそれでした。

901 :名無しさん@お腹いっぱい。:01/09/14 15:46 ID:???
>>912
新スレ係

902 :名無しさん@お腹いっぱい。:01/09/14 17:24 ID:???
指名がはいったぞ!>912

903 :889:01/09/14 22:05 ID:???
>>891,892
レスありがとうございます。

CGIでの規格がHTTPとは別にあったんですね。なるほどです。
やはりHTTPではLocationヘッダには絶対URIを書くべきなんですね。

ちょっとHTTPでLocationを相対パスで書きたい理由があったので
調べていたのですが、やめることにします。

ちなみに試してみたかぎり、IE3,4,5やNetscape3,4,6では相対パスで
書いたLocationを補完してくれました。また、302でもクッキーを受け
取ってくれました。

904 :名無しさん@お腹いっぱい。:01/09/16 20:57 ID:gRdNqaZI
ttp://www.f2s.comのフリースペースに
ttp://www4.tkcity.net/~elmo/accessory/wforum.htmlを設置しようと思い、
「#!/usr/local/bin/perl」のパスを「#!/usr/bin/perl」に変更し
cgi-binとbbsディレクトリのパーミッションは755に変更。
後は以下のように変更しました。
wforum.cgi(755)
wforum.log(644)
wf_admin.cgi(755)
index.cgi(755)
1.html(644)
pastno.dat(644)
index.html(644)
title.gif(644)
jcode.pl(644)
fold.pl(644)
accesslog.log(644)
code.log(644)

ですが、どうしても「500 Internal Server Error」と出てしまい動きません。
たぶんパーミッションが間違ってるのかな?と思いますが
どう変えれば良いのかがわかりません。
誰か教えて下さい、お願いします。
ちなみにFTPソフトは「Fetch3.0.3J2」を使ってます。

905 :名無しさん@お腹いっぱい。:01/09/16 21:13 ID:C6oahyos
モロ、無修正画像サイト発見!

http://www.sex-jp.net/dh/01/
http://www.sex-jp.net/dh/02/
http://www.sex-jp.net/dh/03/
http://www.sex-jp.net/dh/04/

906 :名無しさん@お腹いっぱい。:01/09/16 21:34 ID:???
>>904
ぜんぶ777にして動けばパーミッション。
うまくいったら ちょっとずつきつくしておけ。

907 :名無しさん@お腹いっぱい。:01/09/16 22:20 ID:???
f2sだとディレクトリ777にしちゃイカンらしいが

908 :906:01/09/16 23:38 ID:???
>>907
あら,そうだったか。知らんかった。
とりあえずKCatchとかでエラー表示するようにしてみて。

909 :名無しさん@お腹いっぱい。:01/09/17 01:55 ID:???
Internal Server Errorは日本語(sjis)処理で、スクリプトが壊れているのでは?
EUCに書き直すか、文字化け対策が必要かと・・・。

910 :名無しさん@お腹いっぱい。:01/09/17 11:09 ID:J4kttWM2
掲示板を作ってみたら、256バイト以上の書き込みだとコケてしまう。
それってどう回避すればいいでしょうか?
サーバーはトクトクですが、トクトクの仕様ですか?
聞いたことありますか?

911 :名無しさん@お腹いっぱい。:01/09/17 12:27 ID:???
>>910
GET してるの?

912 :904:01/09/18 00:46 ID:/T6g5o8U
みなさんのおかげでwf_admin.cgiとindex.cgiは動くようになったのですが
肝心のwforum.cgiのがどうしても動きません。
それで、KCatch.pmを使ってみたところ、
[wforum.cgi:859:die] Missing right bracket, at end of line syntax error at (eval 1) line 856, at EOF
と出たのですが、さっぱり意味がわかりません。。。。
何をすれば直せるのでしょうか?

913 :名無しさん@お腹いっぱい。:01/09/18 01:49 ID:???
英語で書かれているため「さっぱり意味がわからない」ということなら板違いです。

English@2ch掲示板
http://mentai.2ch.net/english/

914 :名無しさん@お腹いっぱい。:01/09/18 02:09 ID:VD7kGZj.
>>912
どっかで}を書き忘れてるということです。
どこかまではわからないので自分で探すしかありません。
インデントを調整しておくと,後でソース見る時に便利です。

あと,>>901-902で「新スレ係」との指名が入っています。

915 :にょ:01/09/18 02:21 ID:hHvLBZhU
hyyks-m@oct-net.ne.jp

916 :910:01/09/18 03:43 ID:NbgShBZI
>>911
いいえ、POSTです。
GETにしたほうがいいですか?

917 :名無しさん@お腹いっぱい。:01/09/18 04:57 ID:???
>>912
英語を日本語に訳す事くらいはしようね。
あと新スレよろしく。

>>916
256byteっていうからGETって予測されたと思われ。
POSTならば、作ったスクリプトに問題があるのでは?
とりあえずエラーチェックしてみるとか。

918 :名無しさん@お腹いっぱい。:01/09/18 05:29 ID:???
>>916
あんまり聞かないけど LimitRequestBody 掛かってんじゃない?
スクリプト側で制限していないのなら可能性あるね。
エラーログは見た?

919 :910:01/09/18 06:20 ID:NbgShBZI
数字でためしたら、余裕でかけました。(256byte以上でも)
日本語だとダメだったんですが…。

エラーは、時間がかかるうえに「サーバーがみつかりません」が
出ます。そしてロックファイルが残っています。

ローカルのhttpdで試したら、
「(略)我々が今日やるべきことはマックにいって新しい
ハンバー << HERE ガーをほおばることです。 (略)」
になりました。

<< HEREが勝手に追加されてる部分で、よく数えたら
266byte目でした。(でもそのうち半角が10byte分)

iswebでも試したけど同じでした。

920 :名無しさん@お腹いっぱい。:01/09/18 07:41 ID:LPKH4NdA
モロ、無修正画像サイト発見!

http://www.sex-jp.net/dh/01/
http://www.sex-jp.net/dh/02/
http://www.sex-jp.net/dh/03/
http://www.sex-jp.net/dh/04/

921 :910:01/09/18 09:48 ID:dx7/rVjI
チェックしました。
open(IN, "wwwboard.tmp");
$locka = 0;
while (<IN>) {
if ($_ =~ /^$FORM{'MESSAGE'}/) {
$locka = 1;
}
}
close(IN);

ここがよくないらしい。
二重投稿を防ぐためのものです。
変数lockaが1だったら、tmpに追加するルーチンを飛ばします。

俺自身、もう一度、とほほのPerl入門を読み直すけど、アドバイス
あったらお願いしたいです。

922 :名無しさん@お腹いっぱい。:01/09/18 17:05 ID:???
バイト数とか関係ないでしょう。
/^\Q$FORM{'MESSAGE'}\E/
これで試してみれ。
単に、$FORM{'MESSAGE'} がJSISで'ー'の2バイト目が '[' なので
正規表現がエラーになってるという、ありがちなバグ。

あと $locka = 1; のあとに last; でループ抜けたほうがいいよ。

923 :912:01/09/18 18:22 ID:plR9HC2E
ttp://www4.tkcity.net/~elmo/accessory/wforum.html
で「変えた方が良い」と書いてあったところしか変えてないのに
「}」を書き忘れるって、どうして。。。

取りあえずご指名あったので新スレ立てて来ました。
移動お願いします。
http://corn.2ch.net/test/read.cgi?bbs=php&key=1000804655

924 :名無しさん@お腹いっぱい。:01/09/19 02:26 ID:1PCMynM2
サーバー名、www.domain.com
として、クッキーをpath=/;で送ると、
http://www.domain.com/
の時は、取得できない。
http://www.domain.com/index.html
だと取得できる。
ちなみに、ANhttpdだと、
http://www.domain.com/
でも取得できる。
apache1.3.20だと、
http://www.domain.com/
は取得できない。
どうしよう。
むりやり、
http://www.domain.com/
http://www.domain.com/index.html
にリダイレクトさせようか。
っていうか、どうして?
ねえ?どうして?

925 :924:01/09/19 03:01 ID:???
失礼
xBitHackのグループビットが立ってました。

926 :名無しさん@お腹いっぱい。:01/09/20 10:50 ID:MTc8pgUs
簡単な掲示板を作ったのですが構成はbbs.cgiで処理をして、
書き込み等をbbs.htmlで処理しています。
bbs.cgiを単独で実行すると書き込んだログが表示されるようになってます。
それぞれ単独で実行させると表示されるのですが下記のように一画面に書き込みと
ログを表示させようとするとうまく表示されません。
単独で実行するとうまく機能するのでそれぞれのスクリプトには問題ないと思う
のでもしかしたらHTMLに原因があるのではないかと思い書き込みさせていただきました。

<FRAMESET ROWS=40%,60%>
<FRAME SRC="bbs.html">
<FRAME SRC="bbs.cgi">
</FRAMESET>

もしよければお知恵をお借りできればと思います。

927 :名無しさん@お腹いっぱい。:01/09/20 11:15 ID:zlFlBPrI
>>926
NAME属性が無い以外は問題無いと思うが・・・?

928 :名無しさん@お腹いっぱい。:01/09/20 13:12 ID:???
>>926
というか、新スレ逝け。

929 :アナログから光までオッケー:01/09/20 22:07 ID:wUD8Nx2s
みなさんのインターネットのスピードは
早いですか? それとも遅いですか?

このサイトはみなさんのインターネット環境の
スピードを計ってくれます。また、遅いと思う
人は設定を少し変えることによって無料で
スピードを早くすることができます。
お金を出す前に一度試してみては
いかがでしょうか。

http://cym10262.omosiro.com/

930 :名無しさん@お腹いっぱい。:01/09/20 22:23 ID:???
http://corn.2ch.net/test/read.cgi?bbs=php&key=1000804655

-----------------------------終了-----------------------------

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

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

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