SecureVar("name");
SecureVar("mail");
SecureVar("url");
SecureVar("word");
$cnf=File("config.txt");
if($name!=""){SetCookie("hdlcookie",$name,time()+3600000);}
else{SetCookie("lflag","looked");};
/*アクセスカウンタ*/
while(filePerms("lck")!=-1){;}
$out=fopen("lck","wt"); /*ロックファイル作成*/
$count=File("count");
settype($count,"integer");
$count=$count+1;
if($lflag==""){
$out=fopen("count","wt");
fputs($out,"$count");
fclose($out);
}
unlink("lck"); /*ロックファイル削除*/
$gW="$word$name$mail$url"; /* 流れ込む全ての文章のタグをチェック */
>
function show(
global $format,$cnf;
$lines=File("log.dat");
$j=0;
$limit=count($lines);
if($limt>50){$limit=50;} /* 表示は30件 */
while($j<$limit){
$i=0;while($i<50){$tok[$i]="";$i++;}; /*リセット*/
$i=0;
$tok[$i] = strtok($lines[$j],"#");
$f=$format;
while($i<15){$i++;$tok[$i] = strtok("#");}
echo"
";
/*$len=strlen($lines[$j]);echo"length:$len
\n";*/
echo"名 前:$tok[0]
\n";
if($tok[1]!=""){echo"メール:$tok[1]
\n";}
if($tok[2]!=""){echo"ページ:$tok[2]
\n";}
echo"日 時:$tok[5] $tok[6]
\n";
if($cnf[7]=="on"){echo"ホスト:$tok[4]
\n";}
$tok[3]=ERegi_replace("\$r","
",$tok[3]);
echo"$tok[3]
\n";
$j++;
}
);
/* ホストのチェックを行い,アクセスを拒否する */
function reject_host(
global $cnf;
$rcode=0;
$reject=$cnf[6];
$tok = strtok($reject,",");
while($tok);
if(ereg($tok,$REMOTE_HOST)){$rcode=1;}
$tok = strtok(",");
endwhile;
return($rcode);
);
/* 書き込みを行う */
function add(
global $name,$mail,$url,$word;
if($word && ereg($PHP_SELF,$HTTP_REFERER)){
$lines=File("log.dat");
/* 連続書き込み対策!リリース時に必ずもとに戻すこと! */
if(ereg($REMOTE_HOST,$lines[0])&&ereg(Date("H:i"),$lines[0])){;}
/*if(ereg($REMOTE_HOST,$lines[0])&&ereg(Date("H:i:s"),$lines[0])){;}*/
else{
$out=fopen("log.dat","wt");
$date=Date("y/m/d");
$time=Date("H:i:s");
/* 0 1 2 3 4 */
fputs($out,"$name#$mail#$url#$word#$REMOTE_HOST#");
fputs($out,"$date#$time#$HTTP_X_FORWARDED_FOR\n");
/* 100行まで保存,それ以上は捨てる */
$limit=count($lines);
if($limt>100){$limit=100;} /* 保存は100件 */
$i=0;
while($i<$limit){
$an=strlen($lines[$i]);
/*echo"length=$an
";*/
if($an>10){ /* 改行コード倍増防止 */
fputs($out,"$lines[$i]\n");
}
$i++;
}
fclose($out);
}
}
);
/* ディスクからデータを読んで表示する */
function read_dat $name(
global $hdlcookie;
$data=File("$name");
$i=0;
while($data[$i]){
$data[$i]=ERegi_replace("#cookie","value=\"$hdlcookie\"",$data[$i]);
echo "$data[$i]\n";
$i++;
}
);
/* タグチェックを行う */
function reject_tag(
global $gW,$cnf;
$w=" $gW"; /* 先頭に空白を追加*/
$rcode=0;
if(ERegi("on", $cnf[8])==1 && EReg(60, $gW) == 1){return(2);} /*タグ禁止*/
if(ERegi("on", $cnf[8])!=1 && EReg(60, $gW) == 1){ /*タグ許可*/
$w=ERegi_replace(47,"",$gW);
$cnt=0;
/* 先頭の空白をスキップ */
$tok = strtok($w,60); $tok = strtok(60);
while($tok){
$key=substr($tok, 0, 2);
switch($key) {
case "fo"; $rcode=0; break;
case "a "; $rcode=0; break;
case "a>"; $rcode=0; break;
case "im"; $rcode=0; break;
default; $rcode=1; break;
}
/*echo"$cnt = $key($rcode)
";*/
if($rcode==1){return(1);} /*ここで返す*/
$tok = strtok(60);
$cnt++;
}
/*echo"rc=$rcode
\n";*/
}
return($rcode); /* ハンドルにタグを使われるとここまで来ない */
);
/* 文字のチェック */
function reject_word $word(
if(ERegi(10, $word) == 1){return(1);}
if(ERegi(13, $word) == 1){return(1);}
if(ERegi("cgi", $word) == 1){return(1);}
if(ERegi(35, $word) == 1){return(1);}
return(0);
);
>
$mode=1;
if(ERegi("on", $cnf[9]) == 1){$mode=4;}
else{
$rtag=reject_tag();
if($rtag==1){$mode=3;$err="使用できないタグが含まれています";}
if($rtag==2){$mode=3;$err="現在タグの使用は禁止されています";}
if(strlen($word)>1000){$mode=3;$err="書き込みが長すぎます";}
if(reject_host()!=0){$mode=3;$err="ご使用のホストは制限対象となっています";}
$word=EReg_replace(10, "", $word);
$word=EReg_replace(13, "\$r", $word);
$mix="$word$name$mail$url";
if(reject_word($mix)==1){$mode=3;$err="使用できない文字が含まれています";}
if($mode!=3 && $funct!=""){
if(($name=="") || ($word=="")){$mode=3;$err="必要な項目が記入されていません";}
else{if(ereg($PHP_SELF,$HTTP_REFERER)){add();$mode=2;}}
}
}
>
InteractiA Note
background=""
>
[戻る]・
InteractiA Note 0.00
・[設定]
if($mode==2);SetShowInfo(0);>
InteractiA Note
">