私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇518:
Re:新規登録直後 [moon] 04/27 11:08

 └◇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


518● Re:新規登録直後[ moon ] 2003 04/27 11:08
>         for($rt=1;$rt<$hp&&$rt<10;$rt++){

探索回数が5回になるのは、おそらく$hpに最後の人の体力が代入されておりかつその人の体力が6とかなのでは?
その他は、単純に$myspへの代入がされていないように思います。

デフォルトでいうと、if ($Fm{'id'} eq $pid) { $mysp = $psp; $mybp = $pbp }の部分が正常に動作していなさそう。(これを実行する前に$Fm{'ID'}を空にしてあるとか・・・)
とりあえず、これもpushやprintで$hpと$mysp、ついでに$Fm{'ID'}も出力してその時点で何が代入されているかを確認するのが手っ取り早いと思います。
スレッド一覧


519● Re[2]:新規登録直後[ masaki ] 2003 04/27 12:26
$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
スレッド一覧


520● Re[3]:新規登録直後[ moon ] 2003 04/27 13:24
よく考えてみたら新規登録直後にnormal_actionで一部のデータが反映されないというのはデフォルトの仕様です。(@lstlinesに自分のデータが追加されていないので・・・)
うちではnormal_actionでのデータ取得をデフォルトとは程遠いものにしているのですっかり忘れていました。

改善策としては、make_newの&writedat("$usrdir$id\.dat",$line);の上にでもpush(@lstlines, $line);を追加すれば大丈夫だと思います。
スレッド一覧


522● Re[4]:新規登録直後[ masaki ] 2003 04/27 14:51
> よく考えてみたら新規登録直後にnormal_actionで一部のデータが反映されないというのはデフォルトの仕様です。(@lstlinesに自分のデータが追加されていないので・・・)
> うちではnormal_actionでのデータ取得をデフォルトとは程遠いものにしているのですっかり忘れていました。
>
> 改善策としては、make_newの&writedat("$usrdir$id\.dat",$line);の上にでもpush(@lstlines, $line);を追加すれば大丈夫だと思います。
できました(^^
ありがとうございました!
スレッド一覧

CGIROOM