【Perl】掲示板を使ろう!
ども。
俺のは下のURLに変えているので、
http://www.panton.f2s.com/bbs/lib/IndexedFile.pm
訂正させてください。
一応説明させていただくと、
データファイルの高速ランダムアクセスを、
インデックスファイルにより実現するモジュールです。
データの要素にはハッシュが格納できます。
構想中のBBSシステム用に作った物ですが、汎用のモジュールなので、
使ってみてバグを見つけてくれるとうれしい。 暇だからpanton氏のも試してみるかな。
347氏もそろそろハンドルを名乗るのがいいと思われ。
ほういちさんの所は止まってるなあ・・・
570氏のはどうだろう・・・・
gunzipさん最近見かけないな。病院が忙しいのかな? 「作ろう!」だな・・・・
一体どんな打ち間違いをしたのか・・・ 。。。。。。。コピペしたから気付かなかった。。。。。。 >>11
(1) みんな黄金週間で遊びまわっている。
(2) 世間が黄金週間のうちに仕事の遅れをとりもどそうと必死。
私は(2)です・・・ >>4
名無しさんの逆ってのが良くてそのまま使ってましたが。。。
これじゃだめかな?
しばらくやれるかどうか。。。 >>14
なるほど・・・・言われてみれば確かに逆。
いやいやハンドルは何だっていいです。頑張って ■■■■■■■□□□□□□□□□□□□□□□□□□□
0 20 40 60 80 100
■終わった
-IxAccessFile.pm (ログ、スレッド管理の入出力関係用)
-Article.pm (各投稿記事用クラス)
-post.cgi (1スレッド用・・・極めていいかげん)
-rm.cgi (投稿者/管理者記事削除)
□手を付けてない
-投稿制限 #後回し
-記事訂正 #コレは簡単
-admin.cgi (そのまま) #面倒くさい
-setup.cgi (そのまま) #たぶん要らない
-post.cgi (複数スレッド用) #時間無い
▽あるといいな(なくてもいいな)
Storable or FreezeThaw or Data::Dumper
▽気が向けば
-tmpl_parse.pl (テンプレートファイルからコードを書かせ・・・たいなあ)
#コメント
入出力関係のは出来ているので(一応)、後は割とラクダと思う。
GW殆ど(というか全く)休めず、時間が全くとれないので捗らん(ぐは) >>panton氏
=line 248
>my $pointer = $self->_getpointer($id);
この部分は不要ですよね。既に$idからファイル内の位置が得られているのですから。
----------
あと、ドキュメントのBUGSとTODOに記載されている各項について
("バリューに改行が入っているデータは扱えない。"・・・とか)
何か書こうかと思ったけれど・・・ちょっと後回しにします。
#「配列、スカラーへの対応」とかはどうするのかなあ・・・と興味が。
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < あんまり無理するなよ
〜(___ノ \_______________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < 楽しみに待ってるぞ >>all
〜(___ノ \_______________ みんな死んでる........................................... >>17 _gunzip氏
(248行目でしたが・・)確かにそうですね。修正します。
> ("バリューに改行が入っているデータは扱えない。"・・・とか)
> 何か書こうかと思ったけれど・・・ちょっと後回しにします。
> #「配列、スカラーへの対応」とかはどうするのかなあ・・・と興味が。
うーん、考えどころです。
StorableとかFreezeThawとか使っちゃえば、必然的にそこらへん
全て解決するし、もっと言えば、メッセージオブジェクトとか
突っ込んじゃえばさらに楽だよなぁ・・・とか。 長らくご愛顧頂き誠にありがとうございました。
===========終了=========== 気を取り直して
=======================再開============================ 特に2ch型とかにしなくてもいいから、とりあえず基本中の基本、
みたいなシンプルなヤツを誰か書いてくれんだろうか…
Perl上手い人ほど、わざわざシンプルなのって書かないんだよね。 いつぞやの七行BBS
#!/usr/local/bin/perl
%f=map{tr/+/ /;s/%(..)/pack("H2",$1)/eg;s/</&</;s/>/&>/;$_}split/[&=]/,
$ENV{QUERY_STRING};$f{n}||="名無し";open F,"+<bbs.dat";flock F,2;$e=
"$f{n} &>$f{m}<BR>\n"if($f{m});@e=($e,<F>)[0..20];seek F,0,0;print F @e;
print"content-type: text/html\n\n<title>BBS</title><h1>BBS</h1><form
action='bbs.cgi'><p>名前<input name=n value='$f{n}'><br>記事<input name=m
size=50><br><input type=submit></p></form><hr><p>@e</p><hr>";
__END__
>>32
シンプルだぞ(笑) >>33 そのスクリプトすごい好き。7行なのに名無し機能まである。 >>33
元スレの25だけど、無駄なファイルアクセス避けるためには、
$e="$f{n} &>$f{m}<BR>\n"if($f{m});@e=($e,<F>)[0..20];seek F,0,0;print F @e;
は、下みたいにしたほうがいいかもね。
@e=<F>;if($f{m}){seek F,0,0;print F @e=("$f{n} &>$f{m}<BR>\n",@e)[0..20]} >>35
なるほど。発言があったときのみ書き込むわけですね。
ぢつは33=元スレの20だけど、こりゃ20原案25作成ですね。
フォームの解析なんてホント目から鱗でした。
マジ勉強になります。 >>33
それ、スゴーク好きなんだけど、もうちょっと何か…(;´ー`)y-~~
でも勉強になりました。 なんか7行見て引いちゃったんだけどさ
漏れみたいな素人がminibbsパクッタのでもいいかい? >>38
誰か、Tiny BBSのソース上げておくれ。 mx使って認証してるのか?
@以下のアドレスを@geocities.co.jpとかでDLしろよ >>39
use strictな掲示板ならどんなんれもいいのれすー panton氏のIndexedFile.pmを見ましたが、いいですねぇ。
BBSを作るのがかなり楽になりそうです。
恩恵に預かるだけでは良くはならないので、
ソース中で幾つか気になった点を書いておきます。
* line 154
これは
sub articles{ return @{ $_[0]->{_idxlist} } }
でいいのではないでしょうか。
* IO::File
IO::Fileはかなり大きいので使わずに済ませてもいいのでは?
CGIスクリプトとしての動作が前提なので、軽くしてまずいという事は無いかと。
* "$_"
気付いておられると思いますが、
所々暗黙の$_を使用していますね。
これもついでに。 >>45
素人&場違いで悪いんだけど
$_って駄目なの? >>46
いや、$_がダメってことは無いですよ。
ただ使うならばlocal宣言して欲しい…ということです。
# 消えるとまずいデータは極力$_に入れないようにしてはいますが >>47
確かにそれ関係でばぐった時はちょっとやっかいだった PERLなんて奇特なもんしりゃーせんです、ハイ。
知ってるのは“REMEMBER PEARL HABOR”くらいッス。
www.tripod.lycos.comとかはどうやって ウェブサイトや掲示板を作るかよくわかりません。
とりあえずトライポッドに無料サイトを開設して掲示板を設置したいのですが、
ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。
メモ帳でcgiファイル?を作ってアップする?とか意味がわかるようでわからないです。 >ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。
プ >>51
知らなかったら勉強しろ。
ここでも逝け。
ttp://wakusei.cplaza.ne.jp/twn/
ネタニマジレスカナ いま掲示版作っています。
データファイルをCSVに使用と思ってるのですが、CSVって、クオーテーションマークだけをエスケープすれば委員ですよね。
あと、CRとかLFとかもエスケープしたいのですが、どうすればいいですか・?
<br>に変換するにはあんまり美しくない気がして。 >>55
パーサの仕様によっては、カンマもエスケープの必要有りでは? >>55
CRLFも、クオーテーションマークでくくれば、
エスケープの必要なし。 >>58
ただのBASICではなくてHu-BASICだというところが泣かせる。 >>58
改行はだめだろ、レコード区切りだから
ところで、CSVの仕様書ってどこかにあるの? CSVについて
" " で囲みさえすれば、エスケープする必要があるのは、" 自身だけではないのでしょうか。 掲示板のデータファイルを考えているのですね。
CSVのモジュールを使えば、そんなこと考えなくてもいいのでは。 >>45 rubbish_lister様
遅レスで申し訳ないです。
> * line 154
> これは
> sub articles{ return @{ $_[0]->{_idxlist} } }
> でいいのではないでしょうか。
あれ?こうすると、配列でなくリストで返されて、スカラーコンテキストだと、
採用されるのは要素数ではなく最後の要素になっちゃうと思ったんですけど、
違うんですね。勉強になりました。
オーバーヘッド的にはどうなんでしょう?
挙動から予想すると、配列全部ではなく、
要素数が帰ってるみたいなので、大丈夫なんでしょうか?
IO:Fileはそのとおりです。
以前TODOに入れてたような気がしたけど、ないですね。TODOで。
$_ は個人的に混乱しない限り使わせていただきます。
Perl大好きっ子なんで。
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < さっぱりだよ。
〜(___ノ \_______________ 初歩的な質問ですみませんが、
データファイルって、読み込みの時にもロックした方がいいですか?
それから、レスを多次元配列に入れてから書き出したいのですが、
配列全体のサイズが100KBとかになっても問題ないですか >>68
おれはflockが使えるときは読み込みのときでも
flock(FILE, LOCK_SH) ってやってるよ。
ただしsymlinkを使ったりする場合は読み込みではロックしない。
配列サイズは、サーバのメモリ容量とアクセス頻度を考慮して
判断すべきだから一概にいえないけど、
うちの環境では100KBならまず気にしない。1MBだと気にするかも。 専用鯖なんじゃないの?
共用鯖だったら締め頃したくなるところだが >>70
そっか、そうすると
たとえばデータファイルで100行分、まあ、レス100を表示するとすると、
データファールから1行読み込んで、書き出し、1行読み込んで書き出し
みたいにするのが現実的デスカ。
たとえばスレッドID、はじめのレス番号、最後のレス番号を与えると、
そのレスの内容を配列で返す。みたいな関数を作って、というのが楽そうだったのだけど、
あまりおすすめできないと言うことですね。 そうすると、>>69はファイルロックの話も含めて、ネタか? >>73
ファイルロックは必要。しないとログファイル壊れるよ。 更新時に、
lock
更新対象読み込み
更新対象変更
更新対象書き込み
unlock
すれば、壊れないよ。
ただ、更新中に読む奴がいたら表示は狂う。
いちばんいいのは、全部一時ファイルに書き出して一気にrename。
これなら事実上ほとんど表示も狂わない。
ただ、読み込みアクセスが多いと更新失敗する確率は高くなるけど。 オヒザシブリデゴザイマス
IndexedFile.pm を更新しました。
http://www.panton.f2s.com/bbs/lib/IndexedFile.pm
http://www.panton.f2s.com/bbs/lib/IndexedFile.html
IO::Fileの使用廃止と、色々バグ修正があります。
前のバージョンには重大なバグがありました。
見つからなかったってことは、全然使われてねーんだな。
っと思って、手抜きテスト用ボードなんか用意してみました。
http://www.panton.f2s.com/bbs/sbbs.txt
http://www.panton.f2s.com/bbs/sbbs.txt (ソース)
たいしてテストしてないのでまだバグあるでしょう、・・見つけてよーん。 では二つ三つ.......。
--------------------------
キー名に英数字以外のものが含まれているとおかしくなりますね。
("@threads"とか"perl-user"とか。)
196行目の
>my %hash = ('DUMMY', split /^(\w+?):/m, readline($self->_dathandle));
を
my %hash = ('DUMMY', split /^(.+?):/m, readline($self->_dathandle));
にすれば回避は出来ますが...。
--------------------------
modify_row()使用時、更新されたデータは、
データファイルの末尾に追加+インデックス更新されるわけですが、
頻繁に同じ項目を更新するような場合、ファイルの肥大化が問題にならないかな....。
例えば、掲示板のスレッド毎に情報をハッシュの形で格納してある場合
%thread = (
count => 77, #投稿数
subject => "【Perl】掲示板を使ろう!",
key => 988890976,
server => "http://corn.2ch.net/",
dir => "php"
);
投稿がある→そのスレッドの情報を取得( get_by_id() )→(何らかの処理)
→投稿数をインクリメント→スレッド情報更新( modify_row() )
Ex.
$thread = $logfile->get_by_id($id);
$thread->{ count }++;
$logfile->modify_row($id, $thread);
とすると、投稿の度にハッシュ$threadの内容は末尾に追加されるので
(スレッドの情報ログのサイズ) = ( (スレッドの情報サイズ) * (投稿回数) ) * (スレッド数)
になってしまいますね。
・・・と、ここまで書いたときにsynchronize()を思い出した....。
例えば、スクリプト側で
if( $thread->{ count }++ % 5 ){
$logfile->synchronize();
}
としておけば問題ないね。
いくらかのパディングを余分に取っておいて、
更新された情報が元の場所に収まりそうならそのまま上書きし、
無理なら末尾に回す、とするのもイイかもかも。
あと、198行目の
>chomp $hash{$_} foreach keys %hash;
は、スライスで
chomp @hash{ keys %hash };
と書けたりします。(参考までに) はじめまして。現在機能優先で掲示板を作っていて、コードの
効率は後回し中なのですが、いくつか質問があります。
・一般ではOpenでテキストを読み書きするのが多いようですが、
(MINIBBS程度の規模でも)TieやDBOPENを使ったものが見かけないのは
なぜですか?負荷について問題があるのでしょうか?
・発言データに関して、追加書き込みモードを基本にしてもファイルロックは
必要でしょうか?またどの程度の堅牢性を期待すべきでしょうか?
・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
していますが、While(<FILE>)やその他の方法のうち、お勧め
なのはどれでしょうか?また、Seekを使った読み出しについて
教えてくださいませんか? >>81
ageで書いてもいいんじゃないかと思うけどなんでsage?
> ・TieやDBOPENを使ったものが見かけないのはなぜですか?
> 負荷について問題があるのでしょうか
掲示板の場合リニアなデータ構造が多いのでハッシュがメインの
タイは不向きといえば不向き。配列を結びつける事も出来るが、
インターフェイスが不完全。
> ・追加書き込みモードを基本にしてもファイルロックは
> 必要でしょうか?
必要です。堅牢性についてはデータの重要性によります。
> ・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
> していますが、While(<FILE>)やその他の方法のうち、お勧め
> なのはどれでしょうか?
>>69あたりからを読んでください。
seekに関しては、固定長なら使えるけど、掲示板のように
データ長が不定なデータだと不向き。
そこら辺を解決するためにIndexedFile.pmを作ってるんですが・・・ >>82
age忘れです。
リニアな構造ということですが、発言IDやTIMEをキーにして
残りは従来のままスカラーでもよいと思ったんですが、、、。
負荷についてわからないというのは、ハッシュでは数百発言とも
なると負荷がかかるのかとか、あるいは値のサイズによって
負荷が変わるのかとかも考えたのですが。
追加書き込みモードについては、一般に恐れているのは
全部読み出し>退避+追加>全部書き出しの過程での全データ
消失だと思うので、追加書き込みでの危険性があまり認識
できないのです。 >>83
リニアというのは、掲示板は発言の並びに順番があるということです。
TIMEなどをキーにしてkeysでsortなんかをすることも出来ますが、
DBMの起動オーバーヘッドなんかを考えると、
あえて使う必要も無いかなという程度です。
記事数や値のサイズによる負荷の増加は気にするほどではないと思いますが、
よく知りません。
ファイルロックについては、いろんなところで調べてみるといいと思います。
追記モードでも同時に起こると、ファイルの同じ位置に書き込もうとして
データがおかしくなります。 >>84
ありがとうございます。
あと他にも、疑問が生じたときに、理由は自分で考えてみたのですが
これでいいのでしょうか?
while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
早くcloseを行うのでよさげ
・・・・>読み込み時は共有可、書き込み時はどっちみちロック
ANHTTP環境ではflock不可
・・・・>Renameロックかflockコメント化で我慢
全読み>全書き込みvs追加モード
・・・・>ファイルアクセスより管理性重視?
レスポンスお願いします。 特定の行を抜き出すとき、
$line = (<FILE>)[5];
っていう方法はどうなんですかね。 >>86
それは最悪でしょう。
そいういうものこそDB_FileのDB_RECNOを使うほうが良いと思いますがね。 >>85
> while (<FILE>)よりも@line <FILE>のほうが
なんでそんな結論になったのか知らないけど、普通ダメ。過去ログ読めよ。
> ANHTTP環境ではflock不可
HTTPDとflockは関係ありません。
> 全読み>全書き込みvs追加モード
質問の意味がわかりません。
なんか基本的なところがわかってないんじゃない?
CGI-MLとかの過去ログでも漁って勉強してきましょう。
>>88
全部読み込んでから[5]だけ残して他は捨てるっていう動作。 >>85
> while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
> 早くcloseを行うのでよさげ
いくらclose()したって、ねぇ…。
89さんの言う通り、避けるべきかと。
「負荷」とか「メモリ」という言葉を(以下略 >>90
それは今になってみたら分かります。が、
初心者はこんなことを思っていたという、、、、。
>> ANHTTP環境ではflock不可
>HTTPDとflockは関係ありません。
御免なさい、WIN95+ActivePerl+〜というべきでした。
>> 全読み>全書き込みvs追加モード
>質問の意味がわかりません。
何で追加モードがあるのに、わざわざ全読み全書き込みするのか、という
ことです。 >>91
つまり貴方には「全読み込み+全書き込み」と「追加書き」が同じ様に思えると?
正直ワケ分かりませんが。 >>91
追加は追加。増える一方。
書き換えも行わない。
全読み全書きは、中途での処理の可能性を残している。
本当に全部書いてるのか?
加えて、書き換えてるんなら同じじゃない。
実際にテストして考えてから書き込んでくれ。 (既存の掲示板スクリプトは)何で追加モードが・・・
ってこと?
そういうのばかりでもないし、そうする必要があるのかもしれないし、
ただ馬鹿なだけかもしれない。
どっちにしろ他人のスクリプトなんてどうで良い。 eval{flock(FILE,2)};
eval{flock(FILE,8)};
flockはevalをかければ非対応の環境でも致命的エラーにならない。 そんな貴方に
set PERL5OPT=-m-flock
flock.pmは自分で用意してね♥ >>100
その代わり実は効いていないのに気がつかない可能性がある #!/usr/local/bin/perl
use CGI $a=new CGI;print"Content-type: text/html\n\n<form action=n.cgi>";
print"<input name=n><input name=t>\n";$n=$a->param('n'),$t=$a->param('t');
if($t){$t=~s/,|<|>|:/*/g;if(!$n){$n="名無しさん@お腹いっぱい";}open(I,">>y"),print I"$n,$t\n";}
open(I,"y"),@I=<I>;for($i=$#i;$i>$#i-10;$i--){($j,$k)=split(/\,/,$I[$i]),print"<hr>$j: $k";}
5行 一時間で書いたから最低なソースだ。
素人丸出し。
でも一応動く。
動けばいいよね。
だめ? #!/usr/local/bin/perl
use CGI $a=new CGI;print$a->header,"<form action=n.cgi><input
name=b><br><input name=c>";($b,$c)=($a->param('b'),$a->param('c'));
if($c){$c=~s/<|>|:/*/g;if(!$b){$b="名無しさん";}open(A,">>d");
print A"<hr>$b:$c\n";}open(A,"d");@e=<A>;@f=reverse(@e);print @f;
少しだけ短くなったかな? なんかアドバイスきぼーん。
もっと短くしたいです。 CGI.pmをつかって「もっと短く」と言われてもなぁ…と思ってしまう。 #!/usr/local/bin/perl
use CGI $a=new CGI;print$a->header,"<form><input name=b><br><input name=c>";
($b,$c)=($a->param('b'),$a->param('c'));if($c){$c=~s/<|>|:/*/g;if(!$b){$b="名無し";}
open(A,">>d");print A"<hr>$b:$c\n";}open(A,"d");@e=<A>;@f=reverse(@e);print @f;
<form action=n.cgi> => <form> #actionはデフォルトで自分自身らしい。
名無しさん => 名無し #これはどうでもいいか・・・。
これで横に長いが何とか4行 どうでもよい話かもしれないが、actionは#REQUIREDです。 >>112
DOCTYPE宣言がない以上ほんとにどうでもよい話ですね。 #!/usr/local/bin/perl
use CGI $a=new CGI;print$a->header,"<form><input name=b>";$b=$a->param('b');
if($b){$b=~s/</</g;open(A,">>c");print A"$b";}open(A,"c");print<A>;
これ以上はむりかな。
だんだん飽きてきた。
つーかこんなのは掲示板じゃない。 >>113
一応補足しておくと、action が #REQUIRED である限りクライアントによってはうまく動作しないことがあるかも知れないという意味を含めていました。 沈みすぎなのでアゲ。
IndexFile.pm改め、IxFile.pmを作りました。
ハッシュだけでなく配列やスカラなどにも対応。
データ構造が変わったので、IndexedFile.pm とはデータ互換性なしです。
詳しくは、
http://www.panton.f2s.com/bbs/lib/IxFile.html
http://www.panton.f2s.com/bbs/IxFile.tar.gz (ブツ)
http://www.panton.f2s.com/bbs/sbbs.cgi (テスト用掲示板) あ、ホントだ (^^
開発に疲れちゃったんだろーなー >>ほういち氏
八月半ばに他のQ&A-BBSでも見かけたよ。
でも2chにはこない…。 タイトルのtypo発見した、ちょっとトクした気分だ。。。 use base 'IxFile';で継承すると
殆どのフィールドを継承できない(フィールド名が_で始まっている為)のですが、
それは仕様ですか? お、意外にも使おうとしている方が・・・
仕様と言えば仕様ですね。
お好みで適当に変えちゃってください。
ただ、今全面的に仕様変更考えてるので微妙です。
特に、インデックスの内部保持方法とその保存形式、
ハッシュや配列へのTieインターフェイスとかいろいろ。
仕事忙しいのでいつになるかわからないけど・・・
なんか意見あったら言ってください。 ナルホド。
弄り始めたばかりですし、特に今のところ意見は無いです。
応援してますんで頑張ってください。 「〜を作ろう」っていうスレで何かが完成した験しは全然無いな。 # IxFile拡張
# IxFIle::clear - IxFileデータベースをクリアする
# $status = clear $ixf;
sub IxFile::clear{
my IxFile $self = shift;
$self->_initialize(2);
$self->{_pointer} = 0;
$self->{_stat} = 0;
$self->{_idxlist} = [];
$self->{_idxhash} = {};
my $idx_ok = truncate $self->_idxhandle, 0;
my $dat_ok = truncate $self->_dathandle, 0;
return $idx_ok && $dat_ok;
} >>135さん
ありがとうございます。clear メソッドはあったほうが良いですね。
マージさせていただいて良いですか?
関係ない話ですけど、
Apache::AntiSpam::HTMLEncodeを見てて、
メールアドレスの一部分だけでもHTML Entitiesに変換すれば、
ロボットのアドレス収集対策にかなり有効なんじゃないかと思いました。
たとえば、?anton@f2s.com とかみたいに。
もっとも、HTML Entitiesを解釈するロボットがあると元も子も無いけど。 あれ、&#112;anton って書いたつもりだったのに・・
bbs.cgiの仕様変わったのかな?
てすと: & > < > マージ
そのつもりで書いたので遠慮なくどーぞ。
> アドレス収集ロボ対策
JAPUさんが会社でやってますね。
ってあまり宣伝しすぎると効果が無くなるんでしょうけど。 s/&#[\d;]*/?/g って感じかな。
>>138
ありがとうございます。
ロボット対策> あら、ほんとですね。さすが。<- JAPUさん このスレ終わっちゃったのカー (゚д゚lll)
テキストに飽きてきたから、使ってみるう おれはいますよ。すんません。
仕事に殺されています。<-言い訳。 IxFileの配列版File::Arrayを構想中。 >>45
> * IO::File
> IO::Fileはかなり大きいので使わずに済ませてもいいのでは?
根拠は?たかだか3889バイトですが?
# と、Google検索でここにきたのでついでに書き込むテスト >>144
IO::Fileは
Carp、Symbol、SelectSaver、IO::Seekable、File::Spec
といろんなモジュールを呼んでますし、呼ばれたモジュールも
色々モジュールを呼んでるので全部あわせると結構な量です。 slashdot型掲示板作られた方は
いませんか? slashdotってひたすら流れがつかみにくいと感じるのは俺だけ? YaBBで似たようなことできるね。
ニュース系サイトなら更新するのに
わざわざ、エディタ&FTP使わなくても
ブラウザだけで更新できるから便利だと思うんです。 >>147
slashdotならslashcode持ってくればいいのでは? ふと思いついて>>143をFileIxって名前で作ってみました。
速度は(Perlということを踏まえた上で)まずまず高速です。
ビルトイン配列とほぼ同じインターフェイスで扱えるのが楽です。
アップしましょうか? 私がたまたまこのスレを見たのも何かの縁でしょうからよろしければアプしてください。
ttp://isweb36.infoseek.co.jp/computer/perldev/cgi-bin/upload/upload.cgi >>154 1.5ちゃんねるも遺物になったりして。。(笑 Perl超初心者なんですけど、
ログの処理を一気に配列化して読み込むと負荷が高いと聞いたので、
1件1件処理するようにしたいのですが、
それはどうやればできるのですか?
kentさんはforeach関数で重いらしいんですけど、やっぱりwhileなんですかね? >>163
while使えるところだったらみんな使った方がいいよ。 foreachだとファイルの中身を全部配列に展開するからメモリを食う。 これ日本語かできないよ〜。
read(STDIN, $str, $ENV{"CONTENT_LENGTH"});
@parts = split('&',$str);
foreach(@parts) {
($variable, $value) = split("=");
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-0a-fA-F])/pack("C",hex($1))/eg;
&jcode'convert(*value, 'euc');
$cgi{$variable} = $value; >>168
ハァ?
無理だと思うなら素直にCGI/CGI::Lite/CGI:Minimal/cgi-lib.pl使えよヴォケ >>168
それは日本語化するルーチンじゃなくてハッシュ化するルーチンなわけだが。
それは置いといて間違ってるところは
5:split(/=/, $_);#splitの使い方間違ってます
7:$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
#[0-0a-fA-F]←0-0では1-9だった場合に変換されません。
9:$CGI{variable} = $value;
ハッシュは大文字にしたほうがわかりやすいです。強制はしませんが。以上。 ハッシュ化じゃなくよーするにデコードだろ。
単純ミスでギャーギャーわめくよりはモジュール使った方がよほどいいと思うがね。
ついでに、splitの第一引数は単なる文字列でも問題なく動くぞ。
まぁ/pattern/の形のほうが良いとは思うが。 >>172
たかがデコードするのにモジュールなんて使っちゃダメだよ。
どうしてもめんどいor出来ないときだけモジュールを使う。
これ処理を早くするための鉄則。 >>173
デコードルーチンが頭に入ってるなら、もちろんそれでも構わないが。
(まぁそこまで解ってるなら普通は自作モジュールだろうが)
だが「ミスを犯すくらいなら」処理を隠してくれるモジュールが得策だと思わないか? 掲示板で、KENT-WEB(http://www.kent-web.com/)の掲示板は書き込んだあとに
ブラウザの更新ボタンを押すと、エラーで帰ってくるのですが、
tacky(http://tackysroom.com/)の掲示板だと、書き込み後リロードボタンを押しても、
エラーにならず二重登録もされていません。どの辺が違うのでしょうか?教えてください。
Locationですか? &errorでエラーサブルーチンの飛ばすんじゃなくて。
Locationにして掲示板に飛ばしてるんじゃないかな?
あっごめん
>>175に書いた。
あと
エラーサブルーチンの×
エラーサブルーチンに○
間違えた。
でPetitの場合は&html_logでそのまま掲示板に飛ばしてましたよ。
動作確認しました。 http://www.imjnews.com/bcp/cgireqbbs2/wwwforum.cgi?id=14&az=thread&number=575
つーかマルチポストうざい。
2/23からの間お前何やってた?少しは努力したか?少しは調べようとしたか?
ひょっとして他の掲示板にマルチポストして回ってたのか?
全然変わってねーじゃねーか。
ふざけんなボケ。
>>176-178
ありがとうございました。
>>179
マルチポストは別に悪いことじゃないと思うよ(藁)。 >マルチポストは別に悪いことじゃないと思うよ(藁)。
何が(藁)だよ。氏ねカス。 モノを教えてもらうのにこんな態度をでかくしていられるのか、人として不思議に思う。 よくわからんが怖くてやさしい人なのね。
マルチポストがいけないのではなく、
恩返しがないことがいけないことなのかも。
サポート受けたらあなたのリンクをクリック必須とかどう?(藁)。 perlで出来た掲示板の表示を早くする方法ってないですか?
ほとんどの掲示板はtableタグでレイアウトを整えてるじゃないですか。
でも、tableタグは<table>から</table>までが読み込まれたときに、画面に表示されるようなことを聞きました。
どうやったら、早くなりますか。 掲示板の検索機能ってありますよね?
あれをトップページから検索できるようにしたいのですが
どのようにすればいいのでしょうか?(スレ違いなら違うところで質問します >186
テーブルを外してみるのがてっとりばやいね。
最近のデザイン主義のBBSじゃ難しいだろうけど。
>188
トップページからCGIを起動すればできるよ。
トップページのフォームから掲示板の検索機能へ直接値を渡してやるの。
CGI側がRefererを規制してるならそのURLだけは加えてやるのことも必要。 >>189
その詳しいやり方が今一わからなくて..。
どこかに参考になるサイトってありますか? HTMLタグとか分かる?
分かるんだったらBBSの過去ログ検索ページのソースを貼り付けるだけでいけるよ。 >>192
それやっても無理でした。エラーが出ました。 KENTWEBじゃないけど、まぁ同じ様なもんです。
なんしか、トップページに掲示板と同じ(掲示板のログを検索できる)
検索窓をつけたいのですが、うまくできませんです。。 >195
だから教えてくれないと何行目をいじるとか教えられへん。
エラーってどんなエラー?
「refererリファラが違います」とか「いたづらはやめてください」とかだろ?
>>196
一度、KENT WEBでやってみたのでその時の話を。
(ちなみにシンプル掲示板です。)
ワード検索のソースを見て
トップページに貼り付けたのですが、検索結果は出なかったんです。
検索のボタンを教えてもトップページに変わるだけで。 >197
トップページに戻る?
<FORM>が間違ってんだろ。 cgiがeucで表示してるhtmlがS-JISなんておちじゃないだろうね? まさか。 >>199-201
201さんのようなオチではないっす。
<FORM>も丸ごとコピペしたんですが、無理でした。
なんか参考になる、又はこの件に関した技が載っている
サイトってないですかね?何か単純なミスをしてるっぽいです。。
(あと、使っている掲示板はKENTのシンプル掲示板で話を
進めていただけたら。。それでもできないので) action="../bbs.cgi"
相対パスがちがうとか
つーかお前なんかに誰も興味ないから
素直に使ってる掲示板かけや 第三者だがいくらなんでも
>つーかお前なんかに誰も興味ないから
>素直に使ってる掲示板かけや
は酷すぎると思うが..。興味なかったら放置しろよ。
久々にマジで酷い煽りを見た。 >>204
それと、君もシンプル掲示板のソースをもっと見た方がよい。
たぶん、そんなに難しくない。 >>206
まぁまぁ。これが2ちゃん。
確かに同じ教えるにしても、煽るにしても、言い方ひとつ。 >>206
たまにもの凄い酷い煽りがあるからね。
単に氏ねとか馬鹿とか逝ってよしとかよりも
なんか”本心”で言われているような煽りって
はたから見てても気分が悪い。 >>206=204 分かり易すぎ。
204が要領得ん書き方だから煽られるんだろ。
何使ってるのかって数回聞かれてるのに無視してるし。アホか。 >>210
凄いですね〜それなら206-209まで全部自作自演ですね〜
2重カキコに引っ掛かるのにね(w
2ちゃんでも保護レスする人いますよ。ていうか、悪い奴ばかりじゃないし。 つーか、206だけど保護レスというか
205の書き方があまりにも酷いと思わないか? >>212
>凄いですね〜それなら206-209まで全部自作自演ですね〜
ハァ?アホか おっと、ID出しておくよ。ジサクジエンになるからね(w >205の書き方があまりにも酷いと思わないか?
何使ってるっていう再三の情報提供要望を無視して
要領得ないアホな質問を繰り返すよりはマシ。 >>217
シンプル掲示板使っているって書いてあるよ。
あ、漏れもジサクジエンになりますか?(w 197 名前:nobodyさん 投稿日:02/03/21 13:00 ID:Evst2w+i
>>196
一度、KENT WEBでやってみたのでその時の話を。
(ちなみにシンプル掲示板です。)
ワード検索のソースを見て
トップページに貼り付けたのですが、検索結果は出なかったんです。
検索のボタンを教えてもトップページに変わるだけで。
198 名前:nobodyさん 投稿日:02/03/21 13:01 ID:Evst2w+i
教えても→押しても
199 名前:nobodyさん 投稿日:02/03/21 13:26 ID:hXbohRxd
だから何をつかってるのよ
205=199だと思うが、すでに197でシンプル掲示板と書いてある。 >>219
教えて君ってのは元来そういう人間なんだよ。
http://www.nn.iij4u.or.jp/~nabe/osietekunn.html 今、このスレは自作自演のヤシが2人でバトルしてます(w >>223
え!?KENTの掲示板の種類(しかも超有名)だけど... 元々レベルの高いスレだったのに糞スレ化したなぁ。panton氏とかは何処行ったんだ。 今思ったんだが、もしかして199はシンプル掲示板が
なんなのか分からない厨房で、だから
どういう掲示板かわからないから再三、種類を教えろと聞いていた。
しかし、200と201はちゃんと答えて返事書いてる。
これってどっちが厨房になるんだろ... >>226
激しく微妙だな...そう思うと、205の煽りがおもしろくなる(w 194 :nobodyさん :02/03/21 12:45 ID:???
何使ってんねん。KENT-WEB?
195 :nobodyさん :02/03/21 12:49 ID:Evst2w+i
KENTWEBじゃないけど、まぁ同じ様なもんです。
なんしか、トップページに掲示板と同じ(掲示板のログを検索できる)
検索窓をつけたいのですが、うまくできませんです。。
KENTWEBじゃないつってるじゃん 結局どっちなのよ。KENT-WEBのシンプル掲示板?
それとも違うのかよ。 >>228
その2レス後にシンプル掲示板って言ってるよ。
KENTWEBって書いてあるし。 197 名前:nobodyさん 投稿日:02/03/21 13:00 ID:Evst2w+i
>>196
一度、KENT WEBでやってみたのでその時の話を。
(ちなみにシンプル掲示板です。) で、知りたいのは今使ってるヤツでのことじゃないの? シンプル掲示板でもできないのに
他の掲示板(たぶん、難しいやつだろう)でもできるか? シンプル掲示板が有名、って言われてもナー
とりあえずスクリプトぐらいうpしろよ。
>>216
KENTのスクリプトを知らないヤシは厨房ですか(w
んなもん使わないし、仮に使ってても名前なんて覚えてねーよ。 思ったんだが、205って煽り方がちょっと変だけど
別に悪意はないんじゃないか?だって
>つーかお前なんかに誰も興味ないから
>素直に使ってる掲示板かけや
興味ないって言ってるのに、使っている掲示板を教えろって
言ってるし。と言うことは教えてあげるつもりだっただろうし.. ていうか、205が正解をいっている(はず)
シンプル掲示板で試したらできたよ。 ASKA BBS
(シンプル掲示板)
- 2番人気 - できねーんなら、トップページに IFRAME で
検索画面を表示させればいーんじゃねぇの なんで俺が攻撃されてるんだ、、面倒だなぁ。
使ってる掲示板の種類を書かないって事は
「もし自分が2ちゃんに書き込みしてるのがバレたらヤダから詳しい事は書かない」
とか考えてるんだと理解し、
誰もお前自身のことなんかに興味はないから
使ってる掲示板の種類書けばもっと適切な助言してやるよさっさと掲示板の名前出せ
といった趣向のことを二、三行で書くと>>205のようになったのです、
と言えば理解して頂けますでしょうか。 >>226
askaとシンプル掲示板だったら、askaという呼び方の方がメジャーだろ。
それをしきりにシンプル掲示板って言ってた 188 が厨房に決まってら。
それも改造したいスクリプトは言わないしな。
つーか、ここは質問スレなのか? 客「ノートパソコンが動かないんだが」
店「了解しました。お使いのパソコンのメーカーと機種をお願いします」
客「それは言えないが、ソニーのVAIOだと思ってくれ」
http://www.pureweb.jp/~suicidal/cgi-bin/petitf/petitf.cgi
暇だから使ってみた(パクリ) Perlをあまり知らない奴でも
掲示板を1から作れるサイトってない?
KENTのAskaBBS程度のものを作るのが目標。 Perlも知らない、検索も知らないんじゃどうしようもないな 検索の仕方は知らないです。イパーイでてくるので。 >>259
データをかきこむ。
de-taをよみこんで、ひょうじする。
最低限。 data という言葉を間違えない程度の知能。最低限。
なんか、目新しいCGIを作りたいんだけど、これってのがない。
そこで疑問に思ったのだが、2chみたいなスレッド形式の掲示板が
ベストなんだろうか? 猫も杓子も2chを真似てスレッド形式掲示板
を設置しているがもっと使いやすい、見やすい形式の掲示板がある
のではないだろうか?
P2Pの掲示板なんてのもあるみたいだが、やっぱ初心者はブラウザ
さえあれば見れるCGI掲示板に群がるだろう。
みんなどう? >>264
あなたにとって使いやすい、見やすい掲示板の表示上のデザインを、htmlで書いてみてくれ
#スレッド形式掲示板は、すべて2chを真似ているわけではないと思う。 ↓こんなスレがあったのね。
http://pc.2ch.net/test/read.cgi/php/995359658/l50
>265
>スレッド形式掲示板は、すべて2chを真似ているわけではないと思う。
真似てってのは、2chが流行ったからみんな避難所ていうか、
二番煎じみたいなサイトを作ってるって意味。
>あなたにとって使いやすい、見やすい掲示板の表示上のデザインを、htmlで書いてみてくれ
具体的には自分でもよく分からないけど、今のところ思い付く不便さは
1、スレッド一覧が見にくい(かちゅつかえばいい?)
2、参照(>>??ってやつ)をたどるときしんどい。
くらいかな。 >>267
どんな内容よ?
素人向け講座なら腐るほどあるだろ。 >>269
どんな感じよ?
要点を説明するか自分で作れ。 カスタマイズしてつくったのですが、どーしても
ログの検索がうまくいきません。
http://www.saiin.net/~ch/sample/
においています。
最新100とか、1−50とか、全部、、とやると、
処理してくれているようですが、なぜかデータがブラウザに出ず、
ダウンロードを指示されてしまいます。
実際にダウンロードし(つまりディスクに保存し)、
その後ブラウザで読み込めばきちんと表示されます。
どーしたらいいのでしょうか?
しろうとなりに工夫してきましたが、どーしてもここでいきづまっています。 gzipでもしてんの?
ちゃんとContent-type吐き出してる? 見たけどこんなのはいてるぞ。
Content-Type: application/x-httpd-cgi >>274
それをはくってのはおかしなことなんですか?
何をはくようにすればいいのでしょうか?
しろうとですみません。 もうね、馬鹿かと、あふぉかと。
Content-Type: text/html
吐けと。 >>276
ありがとうございます。
そこらへんをさがしています。
>>277
探さなくても検索すれば・・・まぁいいか、
(夏がまだ残っている・・ <php?
for($i=0;$i<999;$i++)
{
print("竹之内豊");
}
?> 今度、自分の学校のサイトを作ることになりました。
掲示板も作りたいと思いますが、次のようなことはperlで可能
なのかどうか、教えてください。
1年(6クラス)2年(6クラス)3年(7クラス)合計19クラスあります。
それぞれにまったく同じタイプの掲示板を作成したいのです。
@とりあえず1つの掲示板を作成する。
A19クラスそれぞれにIDを振ってIDが1のときは
1年1組に該当するログを表示する。ような分岐処理をする。
このようなことは可能でしょうか?
参考サイトなどあるとうれしいです。
アドバイスお願いします。
可能です、そんな基本的な質問してつくる気あるの?
スクリプト配布サイト調べてみ。 どうせ作るなら19個掲示板作って、管理だけ一つのCGIで出来るようにした方がらくでない? >>286
?でログファイル名渡した方が楽だす。
19個も作ったらデザインちょっと変更
したい時なんてやってられない〜。 いや、各クラスがデザインを自由に変えられるというのが楽しいかなぁと思ったので。
apeskinみたく、デザインを外部ファイルから取るとか(爆) 今perl勉強中なんですけどperlで作る掲示板について
詳しく説明してあるサイトないですか? ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━― ∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉 2chで板にアクセスが多くなり過ぎて板分割するのって、
スクリプトを増やすってこと? Frameをつけてみた。
http://ideas.paunix.org/testbbs/mldforum.cgi?cgi_mode=FRAME
2chとphpbbsの間の子みたいな感じに。
動作テスト中なので、適当な文字列を投稿して
試してみて下さい。 >>295
すごいかっこいい
でも
おもいとおもった
>>304
朝鮮系はですねぇ、、機能よりも見かけなんだよ。 >>305
朝鮮系にしないでくれ。(;;
infoseekの機械翻訳を使って英語、中国語にも
対応しています。ただ、今のレベルの機械翻訳
精度では、使えるのは日韓くらいですが。
CGI掲示板での、連続投稿負荷の処理能力は、サーバーのCPU性能にも
依るのでしょうか?
自宅のPCでサーバー立てて、掲示板をmethod=getでも投稿できる
ようにして、imgタグにその投稿時URLを埋め込んだものを100くらい
書いたHTML docをローカルにブラウザで読み込ませて100連続投稿
させると、掲示板ログデータが崩れてしまいます。
30程度なら大丈夫なようですが。
それとも、スクリプトが煩雑すぎる(?)の問題でしょうか? ファイルロックが問題なんですね。
さっそくログ書き込みの部分に
flock()を入れてみました。 >>309
そんなテストの仕方がわかるのに、flockを知らないって…
どういう風にperlを学んだんだYO。 こんなのどう?
ログファイルのバックアップ処理。
# 更新間隔
$span = 30 * 24 * 60 * 60;
# 最終変更時間取得
$log_mtime = (stat($log_file))[9];
$backup_mtime = (stat($backup_file))[9];
if ($log_mtime > $backup_mtime + $span) {
open(BACKUP, "$backup_file") || &error("file open error");
# 更新
print BACKUP @logs;
close(BACKUP);
}
書き込み処理らへんに組み込めばそこそこ使えるかな?
時間じゃなくて書き込み件数で更新したほうが良さそう。 Webで公開されてる掲示板スクリプトとか
Perl初心者入門で入った それで簡単な掲示板は作れるようになったけど、
他には何か面白いscriptあるかな。 パスワードというのは掲示板の管理パスワードのこと。
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄ ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ 質問なんですが、OTDとかteacupとかの有名どころはどんなCGIで動いてるのかな?
OTDはC言語らしいけど。 (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン 掲示板のデータファイルって
何KBくらいまで動作に支障を
きたさずに保存できるの? >>335
どの掲示板のシステムでどんなスペックのサーバの話ですか? >>336
scriptは自作です。
サーバーはDEC Alpha DS10, NetBSD 1.6.1, Memory 3072MB。
2chはスレごとに固有のデータファイル使用してるの?
それで1000投稿くらいは保存できると。 大きいファイルを作ったくらいで動作が不安定になるOSは無いだろうから、
そういうファイルをどう扱うかがポイント。 自鯖に画像を置かずに、リンク経由で画像が表示できる画像掲示板を作りたいのですが、
参考になる掲示板はご存知ありませんか?
入力フォームで画像のURLを添付すれば、掲示板にその画像が表示されるという感じの・・・。
>>344
どこにでもある、書き込み者がURI書くと
<A HREF=・・・ ができるのがあるでしょ?
あれを <IMG SRC=・・・ に変えるだけでできると思うんだが・・・ リンクだけならまあ許せるが、他のとこの画像を引っ張ってきて
表示させるようなBBSは迷惑だからやめろ!怒 >345
そうなんですか。
自分はオリジナルの掲示板が作りたく、これからPerlを勉強してみようと思っているド素人なもので・・・。
たいへんレベルの低い質問をしてしまったようですね。(笑)
すみませんでした。
確かに勝手に直リンっていう状況になるだろうから
マナー的にイクナイ 直リンは著作権的には良いが、imgタグで勝手に人の絵をはっつけるのはNGじゃなかったか? >>349
著作権法上の「複製」には当たらないと思うが、権利の侵害にはなりうるね。
もし著作権法に触れないとしても、民事で訴えられたらかなり不利だと思われる。 Google のイメージ検索とか、どうなるんだろ? あんな大手検索エンジンにケンカ売るアホはいない。
検索で引っかかるってのは広告出してもらってるのと同じなんだから。 まあ、世の中にはどんなアホがいるか分からないから……(笑)。
でも、Google でも一応、イメージをクリックしたら「この画像には著作権が」云々
が出るから、一応、気をつかってるんだよね。
掲示板でも縮小表示してクリックすると引用元に飛ぶってのなら、どうだろ?
やっぱ、マナー違反かな? 画像の「引用」はある程度認められるだろうけど、
直リンクはどうなんだろうね。
引用ってどういうこと?
自分のサーバー・ディレクトリにコピーを置いちゃうってことかな?
考えようによっちゃ、直リンクより問題がありそうな気も……。 >>351
コピー(複製)はしてないし、リンク元の情報を明記してるからセーフ。
>>353
それに加えてリンク元のURLと、権利者が別に存在することを
明記すれば法的にはセーフかな。マナーは知らんが
>>354
著作権法上の「引用」って著作物の部分的なコピーを指すんだが・・・。 知的財産権について無知なのが多いみたいだけど
直リンごときで訴訟持ち出すやつぁいねーよ
親告罪って言葉を調べてみろ
問題なのはマナーだってのになんで法律の話もちだしたがるかな >>357
一番無知なのはお前だな。今まで何件も訴訟起きてるが。
画像じゃないが直リンによる訴訟で一番有名なのが
トータルニュース社事件。
不実表示、不正競争、商標権・著作権侵害で提訴したが、その後
トータルニュース社が直リンを解除する形で和解。 >>358
直リンって言葉は共通してるけどさ…
もう少し上の話から読めないの?
確かに>>357には画像って書いてないけど。
そもそも企業と個人の目的も…いや、いいや >>359
画像の直リンでも訴訟起きてるって。大きな事件にならなかったせいもあって
ソースが出せないから書かなかったけどさ。
画像の方が一般的にクレジット入ってない分ソースが確定しにくいから不実表示や
不正競争では争いやすい。
個人かどうかも関係ないね。上のトータルニュース社も会社形態は取ってるけど、
スタッフ5人、資本金なんてあってないようなママゴト企業だったわけだし。
とにかく、
>直リンごときで訴訟持ち出すやつぁいねーよ
この一文がデタラメであることと、>>357が知的財産権について恐ろしく
無知である事実に変わりはない。 >>360
はいはい、わかったよ、訴訟オタだってことは。
程度とケースによる法解釈はできないわけ?
2ちゃんに直リン貼ったやつを告訴するか?
winnyだのMXだので違法コピーしてるやつを全員告訴するのが現実的?
このスレで語ってる使い方で訴訟にあげられるのが現実的だと思うのか?
しても警告どまりだろ。だからマナーの問題だって書いてんだよ。
俺は恐ろしく無知かもしれないが、お前は恐ろしくなんでもかんでも一括りで解釈しすぎだよ。
ああ、っていうか無知って書いたのが
気にくわなかったのか。
それなら撤回する。
知識だけある人間がいるんだな。
これ以上はスレ違いの話題だし叩かれそうだから消えるよ。
>>360もひとしきり主張して飽きたら長居しないほうがいいぞ。 >>357
ウザイし適当なこと言うな
人の無知を指摘する前に充分に予習しろ
>>360
ウザイし「写真とるだけで訴えるやつはいない」って言っても
「田代まさしは云々」言って無知だとか言うのか
結論として両名ともにウザイので逝って良し >>361
> 直リンごときで訴訟持ち出すやつぁいねーよ
上記の文が間違ってると指摘しただけなんだがな。
訴訟持ち出すヤツなんて沢山いる。
> 2ちゃんに直リン貼ったやつを告訴するか?
今回「直リン」と呼んでるのは、IMGタグ等で直接コンテンツを
貼る行為だったはずだが。知ってて拡大語句解釈して楽しいか?
もし2chでIMGタグが貼れて、著作権のある画像を貼りまくるやつが
現れたらそいつは告訴される可能性は高いね。
> winnyだのMXだので違法コピーしてるやつを全員告訴するのが現実的?
「違法コピーごときで訴訟持ち出すやつぁいねーよ」といわれたら「ウソつけ」と答えるが。
なんでそういちいち拡大解釈するかね。
> ウザイし「写真とるだけで訴えるやつはいない」って言っても
盗撮したら訴えられて当然だと思うが。比喩表現が下手だな。 まあ、掲示板の場合は、
>>353 >>356 に加え、
・画像を貼る場合は元サイトが転載等を禁止していないか、充分ご配慮下さい。
・貼られた画像に問題がある場合は、お知らせ下さい。ただちに削除します。
の注意書きを加えるということで、ファイナル・アンサー? >>364
もういいって。その話は。
これ以上煽り合いしたいんなら>>357と一緒によそ行ってくれ。
どっち側の書きこみも重箱の隅突っつきながら
自分の都合のいい解釈しかしてないんだから見苦しい。 質問。当方if文for文が書けて簡単なアンケートが作れる程度のものです。
掲示板のCGIを、画像を貼れるように改造したいのですが参考になるソースをご教授願いたく。
アップローダーでなく、URL貼り付けでその画像が表示されるようなものです。
具体的に
[img]http://xx.com/image.jpg[/img]
と書いた場合に、<img src="http://xx.com/image.jpg">というタグが挿入されるような。
アドバイスおねがいいたします。。 >>370
じゃ質問変えて
[url]http://yahoo.co.jp[/url]
と書くと
<a href="http://yahoo.co.jp">リンク</a>
というタグが挿入されるような。
同じですけど urlをimgに変えようってつもりだろ?教えないよ。 >>372
いえ、改心してURLのほうにしました。
ぜひ教えてください urlをimgに変えようってつもりだろ?教えないよ。 つか、この程度いろいろ実験するだけでできると思うのだが >>375
[url]~~[/url]の間までを、変数に入れることができればなんとか・・・。
×〜×間を、という指定がわからず。。。 変数なんて言ってる時点でダメダメ。方法はいくらでも載ってる。検索しれ。 リンク問題は製作板に専用スレあるからそっちでやっとくれ。
>371
置換とか正規表現とかその辺りの言葉で検索してきてくれ。
まずはそれからだ。
二次元配列で掲示板の内容の並べ替えをしたいんですが
ソートがうまくいきません
指定した列で並べ替えるソートかけるにはどうしたらよいのでしょうか? PERLスレの方で配列に関しては回答いただきました
掲示板に適用してみまっす ここのIDのようなものはどのように生成しているのでしょうか。
ただ単にIPをcryptやらrandして生成しているのでしょうか? >>382
間違っても>>383のリンクは踏まないように。
こいつがかの有名な本7というやしだ。
関わるとやけどしちゃうぞ。 2chのIDなんか検索すればいくらでも見つけられるよ ログイン方式以外に安全に個人を認証する方式はないものでしょうか クッキーは認証の継続には使えるが
認証そのものに使うわけじゃないだろ? そのものに使おうかと思ってたりします。 やっぱり危険かな… 安全ならどこでも使ってるぐらい想像つくだろう・・・ そう言われればそうですね(汗
やはりログインしかないかぁ ユーザIDとパスワードを入力させて、セッションIDを
Cookieに保存するのが普通。当然、セッションクッキーとして扱う。
これでもセッションハイジャックの危険性は残る。
詳しくはぐぐればそれなりに解説サイトが見つかるはず。
って、「Perlで掲示板を作ろう」ってこのスレでなぜ? >>398
レスありがとうございます
一応perlで掲示板を制作していたものでしてここでいいのかなぁと思い書き込んだ次第です。 半角カタカナを使えるようにしたいんですがどうしたらいいですか? >>402
スレ違いだろうなぁ〜
こんな死んでるスレで質問したって…
と、マジレスしてみる。 >>402
出力HTMLのcharsetをShift_JISかEUC-JPかUnicode(UTF-8, UTF-16)か
にすりゃあ、余計なことしなけれりゃいわゆる半角カナは使えるが。 2chのIDはcryptで作ってるらしいというのはわかりました。
でもcryptって8文字までですよね? IPは12文字ですがどうやってすべてを
パスワードに反映させるんでしょうか。
まさか3回クリプト? >>405
ぐぐれよ
そんなソースはいくらでも見つかるから open(UNKO, ">unko.log")or die("鹿クが見つかりません。"); perlやCGIに関する知識がゼロの人間が掲示板を作るにあたって
お勧めの本とか何かありませんか?
あまり飛び道具的な知識とかは不要で分かりやすいのがいいのですけど、、 >>411
とほほのperl入門
http://tohoho.wakusei.ne.jp/wwwperl.htm
掲示板と言えども基礎は覚えとかないと出来ないし、
ある程度関数も知ってないと出来ないと思うよ。 ありがとう御座います、とほほのperl入門よんでみます。 ぐぐってもコーティングスレで聞いてもわからないし、出来ないのですが
そういう場合はどうしたらいいのでしょうか?
ちなみに、書き込みページ数を制御する方法です。
(10件たまったら次のページへいくとか) >>414
おれは、ここを参考にしたよ。↓。よっかたらどーぞ。
ttp://village.infoweb.ne.jp/~fwnd7095/perl/chapter03.htm ・・質問です・・
私の環境ではサーバで、cgi-bin以下でしかcgiが置けません。
ブラウザで見るときのパブリックディレクトリはhomeのインデックスです。
user/
歪gi-bin/
鷲oge.cgi
鷲ome/
亙ndex.html
鷲oge.html
この環境で、画像リンクなどではなく、
直接hoge.cgiをロードすることは出来ますでしょうか?
≧≦ こうすると、めのSITAに熊画DEきるんですよ。知ってる人もいますが。 2ちゃんねるプラウザの形をした
掲示板のスクリプトを作って下さい
おねがいします >>424
フレームで上下に分けれじゃいいじゃん。
ってか昔2chってそんなスタイルじゃなかった? perlに詳しい皆さんに質問です。
実は私の管理しているバイト先の掲示板(perl)で荒らしが一人来まして、
特定の人の中傷などを繰り返しているのです。
その掲示板はバイトの連中しかアドレスを知らないので内部犯行間違いなしなのです。
んで、何とか投稿している携帯の機種だけでも分かれば犯人が特定できると思い、
方法はないかと質問させていただきました。
ちなみに私の借りている掲示板にはブラウザ名を表示するような機能はないのですが
そういった機能がある掲示板も見かけますのでなんとか改造したりできれば…とおもってます。
Yahoo!などに見られるサインアップCGIって、ないもんですか? panton氏が作ってたソース、どこいっちゃったんでしょう? ↓のようにCGIテストはうまくいくのですが、
http://umikaze.mydns.to/test.cgi
KENTさんのCGIとか普通のCGIが開けません。
アクセス権の問題だと思うのですが、どのように設定すれば
よいのでしょうか?参考になるページやアドバイスなど
よろしくお願いします。 431ですがOSはwin XP professional使っています。 携帯用掲示板サイト作りたいヤシはここがいいぞ。タグが使えないけど初心者にはかなりおすすめ!!携帯からでも作れる。
http://www.xtend.co.jp/xaffregst.cgi?sid=X00664 スレッドフロート掲示板の改造を作成しようと考えてる者です。
同じ結果を出すにも幾通りものやり方が考えられて迷ってしまう。
ただ単にメインのスレッド表示の部分をきちんとセルで区画整理したい
だけなのだが
スレッドタイトルの出力にセルのタグをいっしょに乗っけていくのか
それともファイルの下地にタグを書いといてマッチングさせてハメこんでいけばいいか。
どちらにせよ<tr>を工夫して入れていけなければいけない。
五つ目のスレッドごとに</tr><tr>はさもうと思っていますが
どちらのほうがベターなのだろうか。
前者だとループカウントで五で割れる数で入れていくか
後者だと最初から<tr>入れておけるやり方でいいと思うのですが。
まあ、他にも多種多様なやり方が考えられるのだろうけども。
意見を聞いてるだけだろ。
偉そうなこといってんじゃねえよ。
てめえに聞いてねえし。
しっかし、常時張りついてやがんだな。
レス投げてから五分も経ってねえぞ。
>436
おまえ人間スクリプトか?
ソース書いてるより
張りついてる時間のほうがあるんじゃねえのか?
レスねえなあ(w
結局ループカウンタ(i%5){
でやってうまくいったわ。
つうかよ、ベターなやり方がわからなくても
先ずは手をつけろだな。 マルチスレッドの掲示板を作ろうとたくらみましたが、レス記事の処理に困る。
通常の掲示板だったら、ログに普通のデータを保存していけばよかったんですが、レス記事も管理しないといけないとなると、別途ファイルが必要となります(一つのファイルでやるというのも手ですが)。
ファイルを分離するとなると、記事削除などのもろもろの処理が大変そうなんですが、どうなんでしょ?
考えてるのは
./bbs.log
記事番号<>投稿者名<>投稿日時・・・
./bbs_r.log
親記事番号(上での記事番号と一致させる)<>投稿者<>・・・
親記事を削除したときの子記事をどうするか、それが問題です。
放置しても問題無さそうですが・・・出来るだけ綺麗に処理したいので。
アドバイスがあればお願いします。 >>441
記事削除の処理はそれほど難しくないと思いますよ。bbs_r.logを走査して、該当する親記事番号を持っている行を削除すればいいだけですから。。。
処理をキレイに・・・というのがちょっとよくわかりませんが、親記事のないレスを残しておいても容量を食うだけですので、削除しちゃったほうがいいと思います。。 親記事と子記事をそれぞれ1ファイルにするメリットがよくわかんないんだけど。普通は下記パターンに必要ならインデックス系のファイルを追加するくらいじゃないの?
1投稿/1ファイル
1スレッド/1ファイル
全部/1ファイル
ファイル構造も↓で統一すればいいのでは?
記事番号<>親記事番号<>投稿者名<>投稿日時・・・
2ch型フローなら記事番号は必要ないかもね。記事に返信するわけではなく、スレッドに返信するわけだから。記事単位で表示とか削除するなら必要だけど。 open FH, "+<log.txt";
print "Content-Type: text/html\n\n", <FH>, $_="$ENV{QUERY_STRING}<hr>";
print FH if $_ ne '<hr>';
close FH; 掘り起こしします。。
習作でperlで認証制掲示板を作っています。
懸案の一つに、「各種ログ.datを直接見られないようにするためにどうすべきか」というのがあるんですが、
対処方法としてはどういうものが考えられるんでしょうか?
なるべく多くのwebスペースで動くスクリプトにしたいと思っているので、.htaccessは使わない方向で考えています。
とりあえず
・データ保存フォルダの権限をきちんと設定すること
・データ保存フォルダの名前をスクリプト内の変数に設定できるようにして、設置者に任意の名前のフォルダを作ってもらう
という二点を考えたのですが、これ以外にどういうことが考えられるでしょうか。
また、私の知識ではデータ保存フォルダの名前が分からない限りアクセス方法が無いと思うのですが、
上記の対応をしても見られてしまうものなのでしょうか?
ご教授お願いします。。 似たような考え方をしているものを知っているけど、クラックされたことがある。
それはファイル一覧がネットから丸見えになった瞬間があったらしいけど。 このどっちかを満たせれば十分でしょ。
HTTPでアクセスできないディレクトリに置く。
拡張子をcgiにして、CGIディレクトリに置く。 >>446
見られてヤバいモノをdocument_rootに置くなよと。
まあ、大企業が次々とそういうポカミスをやっちまうくらいだから仕方ないのかも知れんが。 質問なんですけど
jcode.plってActivePerlでも問題なく動きますか?? ありがとうございます
解決しました。(・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・デコードしてませんでした・・・ ttp://s3p.net/~channel2/webpro/marunage/joyful/img/271.zip
投げてやる!
煮るなり焼くなり好きに汁! 止まっているスレに投稿するのは気がひけるんですけど質問です。
DesignBBS(tp://www.pris.jp/moon-web/)にCGI ROOMのワードチェックを
取り付けているのですが、特定の文字列を投稿すると設定しているNGワード
がないにも関わらず引っかかってしまいます。
これはどうしてなんでしょうか。
また解決方法がありましたら教えてください。
ワードチェックCGI内で指定している内容は以下の通り。
・ローマ数字1〜4まで大小
・半角カタカナ全部
・´`ωд∇∀゚
・スタイルシート使用不可にするため style=
(フォント装飾タグは認める設定なので、スタイルシートだけを禁止させられなかった(^^;←知識不足です
ごめん、ミス(;;)
自分なりに原因ぽいものを思いついて投稿しようとしていたんですが
もうちょい考えようと・・・消したのはいいが投稿ボタンをおしちゃいました 原因わかりました。
>>455
>・半角カタカナ全部
こいつが原因でした。
どのカタカナかは追求しませんでした(>>456のほかにも引っかかることがあるので)
どういう風にすれば半角カタカナを投稿できないようにできるでしょうか。
どこかの掲示板スクリプトにあったような気がしますが・・・ やってみたいけど、テンプレのサンプルとかリンク先消えててかなしい……。 中学生向けの掲示板を運営しているものですが、
中学生にとって教育上よろしくない言葉はスパム制限をかけて、
書き込みできなくしてあります。
しかし、中学生がキーボードの乱発打による書き込みには
制限をかける方法を見つけられていません。
このような場合は、書き込み規制をかける方法を
ご存じの方いらっしゃいましたら、教えて下さい。 言葉に絶対にならない物(略などには注意)や、
文字数制限をしてみてはどうですか? >>463
> 言葉に絶対にならない物
そんなのを判定する軽いアルゴリズムがあったら教えて欲しい。 サイトを転々としながらPerlを学んでるんですが、構成が頭で作れても
それを文にすることができない。。
たとえば、掲示板の二重投稿制限はIP抜き取って二回目の投稿でIPが一致したら
24時間投稿を制限させる など。「こんな感じかなー」
と、頭では分かっているのに書けない。。
こんな俺に合いそうな書籍やらサイトやらありませんかね?
是非紹介して欲しいです。。 >>465
ヒント:IPアドレス保持 条件判定 規制
アルゴリズム勉強したほうがいいと思うけど、書籍とかはーオライリーが高いけどいいかな
>>465
頭でわかって書くことができないのは練習が足りないだけ。
とにかくまず書いてみる。書いたものが自分の期待通りの動きか確認する。
たぶんバグっているので書き直す、の繰り返し。
本を読むだけでは絶対にかけるようにはならないので何でもいいから作ってみ。 画像アップ可能な掲示板プログラムを、PDFもアップ可能に改造したいのですが、
難しいのでしょうか? メール送信フォームで前回送ったアドレスとか名前とかを、メール送信フォームに戻った時に残ってる様にするにはどうすりゃいいかな?
<html><head><title>掲示板</title><body><p>うんこちんこまんこ</p></head></body> ∧_∧
( ・∀・) | | ガガッ
と ) | |
Y /ノ .人
/ ) .人 < >_∧∩
_/し' < >_∧∩`Д´)/
(_フ彡 V`Д´)/ / ←>>329
/ ←>>293 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
D07AXWOOYT ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。
8AOP7