記事No | : 828 |
投稿日 | : 2007/06/12(Tue) 00:07:01 |
タイトル | : スレッド名を格納している変数名を教えてください |
ID情報 | : shinogu9 |
投稿者 | : しのぐ |
URL | : http://shinogu.homelinux.com/cgi-bin/dice/mtbbs.cgi |
改造に関する質問です。
mtbbsにおいてレス投稿時に該当スレッド名の右3文字を取得してその文字が数字の場合、発言内容の末尾に1からスレッド名の数字までの範囲内で乱数を追加で書き込むという機能を実装しようとしています。
乱数の方は作成できたのですが、発言時該当スレッドの内容を取得するのに失敗しています。
時間をかけてコードを拾えば確認できそうなのですが、簡単に教えていただけるなら、その方が助かりますので可能ならお願いします。
記事No | : 831 |
投稿日 | : 2007/06/12(Tue) 07:45:10 |
タイトル | : Re: スレッド名を格納している変数名を教えてください |
ID情報 | : kent |
投稿者 | : KENT |
> 改造に関する質問です。
> mtbbsにおいてレス投稿時に該当スレッド名の右3文字を取得してその文字が数字の場合、発言内容の末尾に1からスレッド名の数字までの範囲内で乱数を追加で書き込むという機能を実装しようとしています。
> 乱数の方は作成できたのですが、発言時該当スレッドの内容を取得するのに失敗しています。
> 時間をかけてコードを拾えば確認できそうなのですが、簡単に教えていただけるなら、その方が助かりますので可能ならお願いします。
サブルーチンの箇所によって違いますね。
たとえば、regist.cgi 242行目で
open(DAT,"+< $logdir/$in{'no'}.cgi");
eval "flock(DAT, 2);";
while(<DAT>) {
$i++;
my ($no,$date,$title,$name,$eml,$com,$id,$host,$abon) = split(/<>/);
$newlog = $no;
push(@log,$_);
# 最大レス超
if ($i >= $maxlog) { $full = 1; }
}
とあれば、
$logdir/$in{'no'}.cgi
がスレッド名です。
記事No | : 835 |
投稿日 | : 2007/06/12(Tue) 22:30:51 |
タイトル | : Re^2: スレッド名を格納している変数名を教えてください |
ID情報 | : shinogu9 |
投稿者 | : しのぐ |
URL | : http://shinogu.homelinux.com/cgi-bin/dice/mtbbs.cgi |
どうも私の質問の仕方がまずかったみたいです。
$gettitle = '';
open(DAT,"+< $logdir/$in{'no'}.cgi");
eval "flock(DAT, 2);";
while(<DAT>) {
$i++;
my ($no,$date,$title,$name,$eml,$com,$id,$host,$abon) = split(/<>/);
$newlog = $no;
#ここでスレッド名獲得
$gettitle = sprintf("%s%s",$gettitle,$title);
push(@log,$_);
# 最大レス超
if ($i >= $maxlog) { $full = 1; }
}
この後
$gettitleの内容を参照するとスレッド名を獲得できました。
お騒がせしました。