▼スレッド
│
└◇481:Re[5]:勢力の掲示板 [masaki] 04/19 21:31
└◇482:Re[6]:勢力の掲示板 [moon] 04/19 22:21
└◇483:Re[7]:勢力の掲示板 [masaki] 04/20 07:32
└◇484:Re[8]:勢力の掲示板 [moon] 04/20 10:19
├◇485:補足&訂正 [moon] 04/20 10:34
└◇486:Re[9]:勢力の掲示板 [masaki] 04/20 13:00
└◇487:Re[10]:勢力の掲示板 [moon] 04/20 14:12
└◇488:Re[11]:勢力の掲示板 [masaki] 04/20 15:27
└◇489:Re[12]:勢力の掲示板 [moon] 04/20 17:49
└◇490:Re[13]:勢力の掲示板 [masaki] 04/20 19:14
└◇491:Re[14]:勢力の掲示板 [moon] 04/20 21:46
> > abl_bbs_beforeを実行しようとしたときです(;;スレッド一覧
すみません(;;
abl_bbs_afterを実行しようとしたときでした(;;
本当にすみません。
> requireでエラーが出ていないかを確認するために、
> if ($Fm{'mode'} eq 'abl_bbs_before') { require 'ability_bbs.pl'; &play_form }
> を、
> if($Fm{'mode'} eq 'abl_bbs_before'){ # 全角空白を使用しているので注意
> &header;
> print "\n\n\n\n<!-- require before -->\n\n\n\n";
> require 'ability_bbs.pl';
> print "\n\n\n\n<!-- require after -->\n\n\n\n";
> &play_form;
> }
> として実行しHTMLソースを表示して上記で出力した文字列が書かれているかを確認してみてください。
<!-- require before -->
<!-- require after -->
と表示されました(^^;;
> require 'ability_bbs.pl';としてあるability_bbs.plのパスです。
う…。。
# ---------- FILE PATH
でしょうか?(^^;;
ここにはability_bbs.plは書いてないような(汗
> 投票開始になるときにそういう状態になったということはまた起こる可能性があるということなので気を付けてください。
わかりました!ありがとうございます!!
> abl_bbs_afterを実行しようとしたときでした(;;スレッド一覧
それなら、
&abl_add_bbs("[$id] $nmのコメント:「$Fm{'words'}」");
push (@msg,"アビリティ伝言板にコメントを残しました[$mynm/$nm]");
を、
print "\n\n\nabl_add_bbs before<br>\n\n\n";
&abl_add_bbs("[$id] $nmのコメント:「$Fm{'words'}」");
print "\n\n\nabl_add_bbs after<br>\n\n\n";
push (@msg,"アビリティ伝言板にコメントを残しました[$mynm/$nm]");
print "\n\n\npush after<br>\n\n\n";
としてabl_add_bbsやpushが実行されているかを確認してみてください。
# わかっていると思いますが、<!-- -->にしたり<br>を付けたりしているのはどうでも良い事なので自分がテストして確認しやすい方法で出力して大丈夫ですよ。
> それなら、スレッド一覧
> &abl_add_bbs("[$id] $nmのコメント:「$Fm{'words'}」");
> push (@msg,"アビリティ伝言板にコメントを残しました[$mynm/$nm]");
> を、
> print "\n\n\nabl_add_bbs before<br>\n\n\n";
> &abl_add_bbs("[$id] $nmのコメント:「$Fm{'words'}」");
> print "\n\n\nabl_add_bbs after<br>\n\n\n";
> push (@msg,"アビリティ伝言板にコメントを残しました[$mynm/$nm]");
> print "\n\n\npush after<br>\n\n\n";
> としてabl_add_bbsやpushが実行されているかを確認してみてください。
abl_add_bbs beforeまでしか表示されませんでした(;;
> abl_add_bbs beforeまでしか表示されませんでした(;;スレッド一覧
いまさらながらsatosiさんのところの改造方法を見てきました。(笑)
で、abl_add_bbsで考えられる原因は、
・abl_add_bbsの綴り間違い
・ファイルを分割している場合に、get_timeが読み込んでいないplファイルにある
・sosiki_nameが存在しない
です。
# &sosiki_name;の前のrequire 'ability.pl';は不要な処理のような気が。
> ・sosiki_nameが存在しないスレッド一覧
または、その中でエラーが出ている。
> # &sosiki_name;の前のrequire 'ability.pl';は不要な処理のような気が。
これは間違いです。
既に読み込んであるのはability_bbs.plであり、ability.plは読み込んでありませんでしたね。
> > abl_add_bbs beforeまでしか表示されませんでした(;;スレッド一覧
>
> いまさらながらsatosiさんのところの改造方法を見てきました。(笑)
> で、abl_add_bbsで考えられる原因は、
> ・abl_add_bbsの綴り間違い
探してみましたが、これはなさそうです(^^;
> ・ファイルを分割している場合に、get_timeが読み込んでいないplファイルにある
これがよくわからないのですが、sub abl_add_bbsがability_bbs.pl内にあり、そのなかにget_timeがありました(^^;(それしかないです)
> ・sosiki_nameが存在しない
sosiki_nameはability.pl内にありました(^^;
一応今のファイルはとっておいて、もう一度最初からやってみます。
> > ・ファイルを分割している場合に、get_timeが読み込んでいないplファイルにあるスレッド一覧
> これがよくわからないのですが、sub abl_add_bbsがability_bbs.pl内にあり、そのなかにget_timeがありました(^^;(それしかないです)
呼び出しているところではなくsub get_timeの場所です。
ただ、よく使うサブルーチンなのでsos2.cgi内にあると思うので大丈夫だと思います。
> > ・sosiki_nameが存在しない
> sosiki_nameはability.pl内にありました(^^;
> 一応今のファイルはとっておいて、もう一度最初からやってみます。
わざわざ最初からやらなくてもpushやprintでどこまで実行されているかを確認して修正していけば良いだけだと思うのですが・・・。
何のエラーが出ているかがわからない場合は、
AN HTTPDのPerlの実行ファイルへのパス(c:\perl\bin\perl.exeなどになっているはず)をperlis.dllのパスに変更してCGIを実行し、同フォルダに作成されるPerlIS-Err.logを見るとエラーメッセージが書かれています。
> わざわざ最初からやらなくてもpushやprintでどこまで実行されているかを確認して修正していけば良いだけだと思うのですが・・・。スレッド一覧
最初からやってもだめでした(;;
> 何のエラーが出ているかがわからない場合は、
> AN HTTPDのPerlの実行ファイルへのパス(c:\perl\bin\perl.exeなどになっているはず)をperlis.dllのパスに変更してCGIを実行し、同フォルダに作成されるPerlIS-Err.logを見るとエラーメッセージが書かれています。
Activeperlでも可能でしょうか?(^^;;
> Activeperlでも可能でしょうか?(^^;;スレッド一覧
「でも」ではなくてActivePerl「で」やることを前提に書いています。(笑)
> > Activeperlでも可能でしょうか?(^^;;スレッド一覧
>
> 「でも」ではなくてActivePerl「で」やることを前提に書いています。(笑)
やっとできました(;;
5時間以上やってて、結局1;が原因とは…。。(泣
moonさんの仰っていた、1;というのはplファイルなら、どれでも最後に必要なのですね(^^;;
また一つ勉強しましたw
(casino.plを見てて、最後に1;があったので気づきましたσ(^^;)
いろいろいじり過ぎたせいで、新たなバグが(泣
ログインしたときに、右側に表示されるものが全然違うキャラのデータになってしまうのです。
でも、お金とかはログインしたキャラのと同じ。
例えば
プレイヤーA 所持金1000Gでログインすると、プレイヤーBのデータが右側に表示されます。↓
プレイヤーB 所持金2800G
でも、これで2000Gの物を買おうとすると、「お金が足りません」と表示され買えません。1000G(プレイヤーAの所持金)までなら買えます。
探索でも、探索で手に入れたアイテムはBの所持品ではなく、Aの所持品に追加されます。
わかりにくいですが、「見た目だけプレイヤーBになってしまった」という状態です(;;
因みに、IDが一番大きいプレイヤーに変装してしまうようです(;;
> やっとできました(;;スレッド一覧
> 5時間以上やってて、結局1;が原因とは…。。(泣
> moonさんの仰っていた、1;というのはplファイルなら、どれでも最後に必要なのですね(^^;;
> また一つ勉強しましたw
> (casino.plを見てて、最後に1;があったので気づきましたσ(^^;)
ここは1;で無くても良いのですが慣例的に1;にするようです。("xyz";のような文字列でも大丈夫)
> いろいろいじり過ぎたせいで、新たなバグが(泣
> ログインしたときに、右側に表示されるものが全然違うキャラのデータになってしまうのです。
> でも、お金とかはログインしたキャラのと同じ。
> 例えば
> プレイヤーA 所持金1000Gでログインすると、プレイヤーBのデータが右側に表示されます。↓
> プレイヤーB 所持金2800G
> でも、これで2000Gの物を買おうとすると、「お金が足りません」と表示され買えません。1000G(プレイヤーAの所持金)までなら買えます。
> 探索でも、探索で手に入れたアイテムはBの所持品ではなく、Aの所持品に追加されます。
> わかりにくいですが、「見た目だけプレイヤーBになってしまった」という状態です(;;
> 因みに、IDが一番大きいプレイヤーに変装してしまうようです(;;
sub normal_actionの、
foreach $line (@lstlines) {
($pid,$pnm,$pps,$pjb,$pig,$psp,$pbp,$others) = split(/<>/,$line);
if ($Fm{'id'} eq $pid) { $mysp = $psp; $mybp = $pbp }
else { print qq|<option value="$pid">$pid:$pnm($pjb)\n| }
}
のあたりかな?
ここで$pidとかではなく$idなどにしているか、逆にplayer_dataのほうで$pidとかを利用しているとか、が考えられます。
どちらにしても他人のIDや名前が意図しないときに表示されているのはパスワードさえ載っている可能性があるのでかなり危険な状態ですね。