バグ修正

2020年7月9日

8月9日のエントリーで作成した
paintchat3.66用の利用者リスト
絵茶
なんと2人以上になると表示がバグるという
致命的なバグを持ってたことが発覚wwwwwww
というのも、2人入っても利用者1名になり
リストは名前が繋がった状態というアーッ!な感じになってました。
というわけで修正
前回の青文字部分の一部

$i++;
echo “<div>" . $i . “:" . $u_list . “</div>\n";

これらを削除して代わりに

$arr = explode(“</in>",$u_list);
for($i=0; $i <count($arr)-1; $i++){
echo “<div>";
echo $i+1 . “:" . $arr[$i] . “</in></div>\n";

を追加。
echoが2列になってるのは、何故か最初のdivタグが無視されたから。
相変わらずスマートなソースにならないのはスキル不足の為。
自宅鯖だから許されるけど、レンタルスペースでこんな事ばかりやってたら
リソース共有してる他のユーザーから怒られそうだ。
どうでもいい解説として、今回の不具合は
作成後のテストを1人でしかやらなかった為であり
2人以上になった場合、ユーザーが全員くっついた
文字列変数になってる事に気付いてなかったのが要因である。
てっきりwhile文で1人ずつ処理していると思っていたら
実は128バイトずつ区切って変数格納してるので
128バイト未満の場合は連結されて出力されていたのである。
取得した時点で配列に突っ込んでくれれば楽なのに
何故かそうしてくれないので
名前と一緒にくっついてくる不要な<in>タグを区切りとして配列を作って
for文で配列最後の1つ手前まで配列の中身を表示するようにしています。
何で1つ手前までかというと、
何故か配列の最後に1バイトだけの中身が入ってしまってるので。
多分ユーザーリストの</in>タグの後にゴミがついてるんだと思う。
それが</in>タグで区切って格納してるから
最後に余分な配列が出来てしまう要因。
本来ならその辺すら無駄にならないようにソース組めば
自ずからスマートになっていくんだろうけど
本来の機能が実装できればどうでも良いのだ。
本職じゃないし。