<?php
/*----------------------------------------------
 *  PHPショートメッセージ by ToR  
 *  http://php.s3.to
 *
 *  拡張子.phpにして、空のファイル(msg.txt)といっしょに
 *  アップロードして、msg.txtのパーミッション606以上にして下さい。
 *  msg.txtにログが残ります
 *
 *  改造等は自由です。
 *  2000/5/30  完成
 *  2001/1/24 整形
 *  2001/10/18 タグ閉じ忘れ追加
 *  2002/05/26 <aタグバグ、メールリンク追加   ,,,VERS→VARS
 *  2011/12/05 英語Only禁止
 *----------------------------------------------*/
//---------設定-----------
$logmax   100;            //ログ保存行数
$max      10;                //表示件数
$logfile  "msg.htm";        //ログファイル名(htmlにすればリンク貼って、過去ログ見れます)
$tag      0;                //タグ使用する?(yes=1 no=0)
$allow_tag"<b><i><s><u>";    //許可タグ(自動リンクがあるので<a>タグは入れない事
$jonly    1;              //英語のみの投稿を禁止する?(yes=1 no=0)

if(phpversion()<"4.1.0") {
  
$_POST $HTTP_POST_VARS;
  
$_SERVER $HTTP_SERVER_VARS;
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<font face="Arial"><b>-ShortMessage- 自由に書き込んで下さい</b> <small>b,i,s,uタグ可</small></font><br>
<b>N:</b><input name="name" type="text" size="10"
maxlength="10" value="<?php echo $_POST['name']; ?>">
<b> : </b><input name="message" type="text" size="40" maxlength="60">
<input name="submit" type="submit" value=" Send "><br>
<?php
$lines 
file($logfile);    //ファイルを配列に読み込む
//名前と本文がある場合書き込む
if ($_POST['message'] && $_POST['name']){
  
$message $_POST['message'];
  
$name $_POST['name'];
  if (
preg_match("/(<a\b[^>]*?>|\[url(?:\s?=|\]))|href=|http:/i"$message)) die("禁止ワードエラー!!");
  if (
$jonly && preg_match('/^[0-9a-zA-Z_-\s;\/?:\@&=+\$,%#-_.!~*\'():]+$/'$message)) {
        die(
"本文が英語のみの投稿はできません");
  }
  if (!
$tag){
    
$message htmlspecialchars($messageENT_QUOTES);//タグ不可なら
  
}
  if(
get_magic_quotes_gpc()){//SJISなら¥除去
    
$message stripslashes($message);
    
$name stripslashes($name);
  }
  
$name strip_tags($name);
  
$message strip_tags($message$allow_tag);//許可タグ以外除去
  
$message eregi_replace("(style|onmouse)[^=]*="""$message);

  
//メールリンクつける場合
  
$message eregi_replace("([[:alnum:]_\-\.]+)@([[:alnum:]_\-\.]+)","<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",$message);
  
//自動リンクつける場合
//  $message = ereg_replace("(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
//                "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$message);
  
$message preg_replace("/(<(\w+)[^>]*>)([^<]*)/","\\1\\3</\\2>",$message);//閉じ忘れ
  
$date gmdate("d(D) h:i a",time()+60*60*9);//日付のフォーマット
  
$message "\n$name >> $message <font size=1>-<i>$date</i>-</font><br>";
  
$fp = @fopen($logfile "w") or die($logfile."が開けません");//書き込みモードでオープン
  
fputs ($fp$message);            //先頭に書き込む
  
for($i 0$i $logmax$i++)        //いままでの分を追記
    
fputs($fp$lines[$i]);
  
fclose ($fp);            //ファイルクローズ
  
echo $message;                //すぐ表示
}
for(
$i 0$i <= $max$i++)
  echo 
$lines[$i];
?>
</form><div align=right><a href=msg.htm>&gt;&gt;</a>-<font size=1><a href="http://php.loglog.jp">レッツPHP</a></font></div>