POTI-boardのエラーを減らすために 数値以外の値編

Warning: A non-numeric value encountered
警告:数値以外の値が発生しました
一体何が…。
数値以外の値がなんなのか中身をechoで表示してみる事に…。
echo $ltime; //問題の変数
echo '|'; //区切り
if(RENZOKU && $time - $ltime < RENZOKU){error(MSG020,$dest);}
if(RENZOKU2 && $time - $ltime < RENZOKU2 && $upfile_name){error(MSG021,$dest);}
出力された値とエラーメッセージ。
1528807931|1528805950|1528544331|1528530938|1528527552|1528520321|1528512258|
1528508742|1528505146|1528502788|OB1528490148|
Warning: A non-numeric value encountered in C:\xampp\hoge\potiboard.php on line 946
お絵かき機能を使って投稿するとログファイルの13桁のUNIX timeの先頭にKASIRAで設定したOBが入りOB1528490148799となる事が原因でした。

現在の時間からOB1528490148を引いても数字ではないので…。
if(strlen($ltime)>10){$ltime=substr($ltime,0,-3);}
でOB1528490148799の後ろからマイクロ秒の3桁を取り除いてもOB1528490148になりますが
if(strlen($ltime)>10){$ltime=substr($ltime,-13,-3);}
とすれば10桁のUNIX time、1528490148になりになります。
(Tips)これから100年のunix時間は10桁数字。5桁の固定長文字列でも表現できる。

21世紀ののUnix時間はほぼ10桁で表せる
10桁なら…という前提付きですが、これから先100年は大丈夫…という事で。
KASIRAを廃止すれば従来の
if(strlen($ltime)>10){$ltime=substr($ltime,0,-3);}
で、問題ないんですけどね。
futaba.phpがPOTI-boardになった時点で、
//連続投稿秒数
define('RENZOKU', '10');
//画像連続投稿秒数
define('RENZOKU2', '20');
の計算が正しくできなくなっていた可能性が高い…です。
例えば、画像連続投稿秒数を60秒に設定して、お絵かきだけを繰り返すとOBの付いた数字ではないものでは引き算ができないので、60秒経過しなくても投稿できていた筈です。
しかし、画像アップロードと、テキストの投稿の時には正常に動作していたので誰も困っていなかった…のかもしれません。

この問題は、POTI-board改 v1.42.2 lot.180614で修正されました。

お絵かき掲示板はこちら。

この記事へのコメント

コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。