▼スレッド
│
└◇519:Re[2]:新規登録直後 [masaki] 04/27 12:26
└◇520:Re[3]:新規登録直後 [moon] 04/27 13:24
└◇522:Re[4]:新規登録直後 [masaki] 04/27 14:51<-last
$myspには何も代入されていませんでした(;;スレッド一覧
新規登録直後というのがわかりません(;;
普段はちゃんと$myspに代入されているのですが・・
怪しいのは↓ですが
foreach $line (@lstlines) {
($pid,$pnm,$pps,$pjb,$pig,$psp,$pbp,$pbn,$pak,$pdd,$php,$pxp,$pab,$pdb,
$pav,$pwn,$plz,$pdt,$pmn,$pbg,$pxi,$ptm,$plf,$pfe,$pcm,$pis,$pht,$pfg,$prw,$pkl,$ptw,$pcs,$psg,$pmsgcount,$pFs,$pFa,$pexp,$pFl) = split(/<>/,$line);
if ($Fm{'id'} eq $pid) { $mysp = $psp; $mybp = $pbp; $hp = $php; $myjb = $pjb }
もしかして、make_newのほうでしょうか?(^^;
make_newは↓
# Sub Make New #
sub make_new {
if (!$def_ne) { &error("新規登録受付停止中") }
if ($Fm{'name'} eq "") { &error("名前を入力してください") }
if ($Fm{'pass'} eq "") { &error("パスワードを入力してください") }
if ($Fm{'pass'} ne $Fm{'pass2'}) { &error("2つのパスワードが一致しません") }
if ($def_pa && $Fm{'job'} eq $def_pb && $Fm{'pass'} !~ /$def_pp/) {
&error("質屋は管理者以外使用することができません");
}
&get_file; &list_in; &get_host; &find_user;
&error("その名前は既に使用されています") if $xpoint ne 'del';
&error("同一のホストが既に存在しています") if $zpoint;
$Fm{'ps'} = $Fm{'pass'};
@joblines = &opendat($jobdat);
foreach $line (@joblines) {
($jbn,$jig,$jsp,$jhp,$jxi,$jak,$jdd,$jmn,$jcs) = split(/<>/,$line);
if ($jbn eq $Fm{'job'}) { last }
}
$id = "0000";
while (-e "$usrdir$id\.dat") { $id++; $id = sprintf("%04d",$id) }
$line = join('<>',$id,$Fm{'name'},$Fm{'pass'},$jbn,$Fm{'face'},$jsp,'','',$jak,$jdd,$jhp,$jhp,0,0,'alive',0,0,0,$jmn,'',$jxi,time,'','','???','',$host,'',0,0,2,$cs,'','0','','Normal','0','???',"\n");
&writedat("$usrdir$id\.dat",$line);
chmod(0666,"$usrdir$id\.dat");
$Fm{'id'} = $id; &cookie_set; &play_form;
}
長くなってしまってすみません(jДj
よく考えてみたら新規登録直後にnormal_actionで一部のデータが反映されないというのはデフォルトの仕様です。(@lstlinesに自分のデータが追加されていないので・・・)スレッド一覧
うちではnormal_actionでのデータ取得をデフォルトとは程遠いものにしているのですっかり忘れていました。
改善策としては、make_newの&writedat("$usrdir$id\.dat",$line);の上にでもpush(@lstlines, $line);を追加すれば大丈夫だと思います。
> よく考えてみたら新規登録直後にnormal_actionで一部のデータが反映されないというのはデフォルトの仕様です。(@lstlinesに自分のデータが追加されていないので・・・)スレッド一覧
> うちではnormal_actionでのデータ取得をデフォルトとは程遠いものにしているのですっかり忘れていました。
>
> 改善策としては、make_newの&writedat("$usrdir$id\.dat",$line);の上にでもpush(@lstlines, $line);を追加すれば大丈夫だと思います。
できました(^^
ありがとうございました!