scm4.cgi修正情報
2004.03.02 修正
scm4.cgiはhtml形式のファイルを読み込ませて、携帯の種類によって表示の仕方を変えているのですが(微妙にタグの使い方が異なるので…)、その元のファイルにタグの締め忘れなどが有ると、無限ループになって、タイムアウトするというプログラムになっていた様なんです(怖)。(タグが正しければそのエラーは出ない)。それで、無限ループにはならないように修正するには、
sub chopparu{
・
・
・
return $pos1;
}
を以下のように置き換えます。
sub chopparu{
# &chopparu(0:元の文字列,:1開く括弧,2:閉じる括弧,3:探し始める位置)
local($pos1,$pos2);
$pos1=index($_[0],$_[1],$_[3]);
if($pos1>=0){
$pos2=index($_[0],$_[2],$pos1+length($_[1]));
if($pos2 >= 0){
$chop1=substr($_[0],0,$pos1);
$chop2=substr($_[0],$pos1+length($_[1]),$pos2-$pos1-length($_[1]));
$chop3=substr($_[0],$pos2+length($_[2]),length($_[0])-$pos2-length($_[2]));
}else{
$chop1=$_[0];
$chop2='';
$chop3='';
$pos1=-1;
}
}
return $pos1;
}
cgiファイルの頭の方に日付2004.03.02と入っているものは修正済みです。既にダウンロードして、いろいろな設定が済んでしまっている方は、恐れ入りますがこの部分のみ置き換えお願いします。
情報をお寄せくださいましたKさま、ありがとうございました。
元データファイルのチェッカーの様なものを準備しました。タグと無関係の>や<はHDMLではエラーになるようですし、今後いろいろチェック項目が増えるかもしれないので、それを織り込んで行ければいいと思います。
2004.3.3