$ACTION = "msg.php3"; //スクリプト名
$LOG_FILE = "/home/ftp/sample/log.txt"; //ログファイル
$RORATE = 200; //保存する記事の数
$SHOW = 30; //表示する記事の数
$WEEKDAY = array( "日", "月", "火", "水", "木", "金", "土");
//曜日の文字を格納した配列
?>
if($cmd == "write"){ //書きこみが行なわれた時の動作
$name_c=$name;
$mail_c=$mail;
$url_c=$url;
setcookie( "name_c", "$name_c",time()+2592000);
setcookie( "name_c", "",time()+2592000); //cookieの初期化
setcookie( "mail_c", "$mail_c",time()+2592000);
setcookie( "mail_c", "",time()+2592000); //cookieの初期化
setcookie( "url_c", "$url_c",time()+2592000);
setcookie( "url_c", "",time()+2592000); //cookieの初期化
if(empty($name)){ //名前が入力されていないときはエラー
echo "名前を入力して下さい。";
exit;
}
if(empty($mail)){ //メイルアドレスが入力されていないときはエラー
echo "メイルアドレスを入力して下さい。";
exit;
}
if(empty($subject)){ //subjectが入力されていないときはエラー
echo "subjectを入力して下さい。";
exit;
}
if(empty($msg)){ //本文が入力されていないときはエラー
echo "本文を入力して下さい。";
exit;
}
/* ここからフォームからの入力の漢字コードをEUCに変換する。*/
$name = i18n_convert($name, "EUC");
$mail = i18n_convert($mail, "EUC");
$url = i18n_convert($url, "EUC");
$subject = i18n_convert($subject, "EUC");
$msg = i18n_convert($msg, "EUC");
/* ここまで */
//ログファイルの区切文字(",")と区別するために文字コード(,)に書きかえる。
$msg = str_replace( ",", ",",$msg);
//HTMLタグ非許可のため、"<"、">"を置き換える。
$msg = str_replace( "<", "<",$msg);
$msg = str_replace( ">", ">",$msg);
$msg = nl2br($msg); //改行文字の前に
を代入する。
$msg = str_replace( "\r", "", $msg); //\rを文字列から消す。
$msg = str_replace( "\n", "", $msg); //\nを文字列から消す。
$day = getdate(); //現在の時刻を得る。
$tmp = $WEEKDAY[$day[ "wday"]]; //曜日の文字列を取得する。
$now_date = date( "Y年m月d日($tmp) H時i分s秒");
//現在の時刻を得る。
//入力と日付を "," を狭んで連結する
$input_msg = implode( ",", array($name,$mail,$url,$subject,$msg,$now_date,$REMOTE_ADDR,$HTTP_USER_AGENT));
@$message = file($LOG_FILE); //今までのログを配列に格納する。
//ファイルを書きこみモードでopenする。
if(!($fp = fopen($LOG_FILE, "w"))){
echo "Can't open file write mode"; //開けなかったらエラー
exit;
}
rewind($fp); //ファイルの先頭にポイントを戻す。
fputs($fp, "$input_msg\n");
//array_unshiftが使えないから入力の文だけ先に加える。
//今までのログをファイルに書きこむ。
if($RORATE <= sizeof($message))
$msg_num = $RORATE - 1; //-1は最新の記事の文
else
$msg_num = sizeof($message);
for($i = 0; $i < $msg_num; $i++)
fputs($fp, $message[$i]); //文字列をファイルに書き込む。
fclose($fp); //ファイルのクローズ
unset($message); //一応、配列を解放する。
}
?>
CGI/PHP利用方法にもどる
\n"; echo "$out_message"; echo "
\n"; echo "\n"; echo "$out_message"; echo "
\n"; echo "