#!/usr/local/bin/php $value){ $value = stripslashes($value); $value = htmlspecialchars($value); $value = ereg_replace(",", ",", $value); $value = ereg_replace("\r", "", $value); $value = ereg_replace("\n", "", $value); $FORM{$key} = $value; } } if ($GET){ foreach($GET as $key => $value){ $value = stripslashes($value); $value = htmlspecialchars($value); $value = ereg_replace(",", ",", $value); $value = ereg_replace("\r", "", $value); $value = ereg_replace("\n", "", $value); $FORM{$key} = $value; } } return $FORM; } function GetTime($time){ if(!$time){ $time = time(); } //グリニッジ標準時間で $times = $time + 32400; $date = gmdate("Y/m/d D G:i",$times); # $timep = gmdate("G:i",$times); return $date; } function ViewLogs(){ #-------- --------- --------- --------- --------- # ログ閲覧モードのHTML作成表示 #-------- --------- --------- --------- --------- # my ($mCntErr,@mData,$mLog,$mWhatsNew,$mNext,$mBefore,$mErr2,$mErr,$mCnt); global $G_TIME_NOW,$G_VER,$G_LOG_FILE,$G_OLD_LOGS_DIR,$G_NICK_LOG_FILE; global $G_NETA_COUNT_FILE,$G_MAX_NUM_OF_NETA,$G_MAX_NUM_OF_RES; global $G_KANJI_CODE,$G_NICK_TIME_OUT,$G_THIS_NAME,$G_TITLE,$G_SAVE_OLD_LOGS; global $G_MAX_NUM_OF_OLD_NETA_PER_FILE; global $gForm; $m_array_Data = array(); # ネタ番号カウンタ読み込み list($mCntErr,$mCnt) = LoadFromFile($G_NETA_COUNT_FILE); # ネタ番号が指定されている場合 if ($gForm{"no"}){ # 過去ログファイル番号を計算 $mFileName = intval ($gForm{"no"} / $G_MAX_NUM_OF_OLD_NETA_PER_FILE); # ファイル読み込み list($mErr,$m_array_Data) = LoadFromFile("$G_OLD_LOGS_DIR/$mFileName.txt"); # ネタが新しい順に並べ替え $m_array_Data = @array_reverse ($m_array_Data); # ページリンクのネタ番号設定 $mNext = $gForm{"no"} - $G_MAX_NUM_OF_OLD_NETA_PER_FILE; $mBefore = $gForm{"no"} + $G_MAX_NUM_OF_OLD_NETA_PER_FILE; if ($mNext < 1){ $mNext = 0; } } # ネタ番号が指定されていないもしくはネタ番号指定でのログ読み込みが失敗した場合 if (($gForm{"no"} == "") || (!$mErr == "")){ # ログファイル読み込み list($mErr2,$m_array_Data) = LoadFromFile($G_LOG_FILE); # ページリンクのネタ番号設定 $mNext = $mCnt[0] - count($m_array_Data); $mBefore = 1; } # ログが読めなかった場合のエラー表示 if(!$m_array_Data){ echo "\n

[エラー] ログファイルを読み込めませんでしたよ! [^v^]/

\n"; echo "戻る\n"; return; } # リンクしないモードでログをHTMLに list($mLog,$mWhatsNew) = FormLog('nolink',$m_array_Data); # 閲覧室のHTML表示 $mLog = "

過去ログ閲覧君

最高${G_MAX_NUM_OF_OLD_NETA_PER_FILE}件毎表\示 戻る
前のページ次のページ
$mLog
前のページ次のページ
"; echo $mLog; } function WriteRes(){ #-------- --------- --------- --------- --------- # レスをファイルに記録 #-------- --------- --------- --------- --------- global $G_TIME_NOW,$G_VER,$G_LOG_FILE,$G_OLD_LOGS_DIR,$G_NICK_LOG_FILE; global $G_NETA_COUNT_FILE,$G_MAX_NUM_OF_NETA,$G_MAX_NUM_OF_RES; global $G_KANJI_CODE,$G_NICK_TIME_OUT,$G_THIS_NAME,$G_TITLE,$G_SAVE_OLD_LOGS; global $G_MAX_NUM_OF_OLD_NETA_PER_FILE; global $gForm; $m_array_Log = array(); $m_array_Res = array(); $m_array_NewLog = array(); list($mErr,$m_array_Log) = LoadFromFile ($G_LOG_FILE); # ファイルを読み込めなかった場合のメッセージ処理 if ($mErr){ $mErrMessage .= "

[エラー] メインログファイルを読み込めませんでしたよ! [^v^]/

\n"; } # ファイル書き込み用のログデータ作成ルーチン foreach ($m_array_Log as $current){ $current = Chop ($current); # ひとつのスレッドを読み込み $m_array_Res = explode(",", $current); $mNo = array_shift($m_array_Res); $mNeta = array_shift($m_array_Res); $mTime = array_shift($m_array_Res); # ネタ番号が見つかったら if ($mNo == $gForm{"no"}){ # 最大レス数になってたら書き込めないように if (count($m_array_Res) + 1 > $G_MAX_NUM_OF_RES){ $mErrMessage .= "

[エラー] これ以上レスはつけられませんよ! [^v^]/

\n"; $mWriteFlag = 0; break; } # レスの追加とフラグ処理 array_push ($m_array_Res, $gForm{"res"}); $mBuf = implode (",", $m_array_Res); array_push ($m_array_NewLog,"$mNo,$mNeta,$G_TIME_NOW,$mBuf\n"); $mWriteFlag = 1; }else{ array_push ($m_array_NewLog,"$current\n"); } } # レス先のネタ番号が存在してレス追加してたらファイルに書き込み if ($mWriteFlag){ list($mErr) = WriteToFile ($G_LOG_FILE,"w",$m_array_NewLog); }else{ # ネタ番号が存在しなかった場合のエラーメッセージ $mErrMessage .= "

[エラー] 指定されたネタ番号には書き込めませんでしたよ! [^v^]/

\n"; } # ファイルを書き込めなかった場合のメッセージ処理 if ($mErr){ $mErrMessage .= "

[エラー] メインログファイルに書き込めませんでしたよ! [^v^]/

\n"; } # エラーがあったら"0% 無事、登録されました。"に if ($mErrMessage){ $mMessage = "0% 無事、登録されました。"; }else{ $mMessage = "99.9% 無事、登録されました。"; } echo " $mErrMessage たぶん2秒後に自動的に戻ります

$mMessage

ここをクリックして下さい。


"; } function DispResForm(){ #-------- --------- --------- --------- --------- # レス用のフォーム表示 #-------- --------- --------- --------- --------- # my ($mErr,@mLog,$mFindFlag,$mErrMessage); global $G_TIME_NOW,$G_VER,$G_LOG_FILE,$G_OLD_LOGS_DIR,$G_NICK_LOG_FILE; global $G_NETA_COUNT_FILE,$G_MAX_NUM_OF_NETA,$G_MAX_NUM_OF_RES; global $G_KANJI_CODE,$G_NICK_TIME_OUT,$G_THIS_NAME,$G_TITLE,$G_SAVE_OLD_LOGS; global $G_MAX_NUM_OF_OLD_NETA_PER_FILE; global $gForm; $m_array_Log = array(); $m_array_Res = array(); list($mErr,$m_array_Log) = LoadFromFile ($G_LOG_FILE); # ファイルを読み込めなかった場合のメッセージ処理 if ($mErr){ $mErrMessage .= "

[エラー] メインログファイルを読み込めませんでしたよ! [^v^]/

\n"; } # 指定された番号のネタを探す foreach ($m_array_Log as $current){ $current = Chop ($current); # ひとつのスレッドを読み込み list($mNo,$mNeta,$mTime,$m_array_Res) = explode(",", $current); # ネタ番号が見つかったらおしまい if ($mNo == $gForm{"no"}){ $mFindFlag = 1; break; } } # ネタ番号が見つかったらレス画面表示 if ($mFindFlag){ echo "

ネタフリは $mNeta だったようです。

ゲンキダセヨ [^v^]/

レス

戻る "; }else{ # レスするネタ番号が見つからなかった場合の表示 echo " $mErrMessage

[エラー] ネタ番号が見つかりませんでしたよ! [^v^]/

戻る "; } } function DispIntroduce(){ #-------- --------- --------- --------- --------- # 自己紹介表示 #-------- --------- --------- --------- --------- global $G_TIME_NOW,$G_VER,$G_LOG_FILE,$G_OLD_LOGS_DIR,$G_NICK_LOG_FILE; global $G_NETA_COUNT_FILE,$G_MAX_NUM_OF_NETA,$G_MAX_NUM_OF_RES; global $G_KANJI_CODE,$G_NICK_TIME_OUT,$G_THIS_NAME,$G_TITLE,$G_SAVE_OLD_LOGS; global $G_MAX_NUM_OF_OLD_NETA_PER_FILE; global $gForm; # フォームからコメント取得 $mIntroduce = $gForm{"comment"}; # タイトル設定 $mTitle = "自己紹介"; # 改行コマンドの処理 $mIntroduce = eregi_replace("%%BR","
",$mIntroduce); $mIntroduce = eregi_replace("%%P","

",$mIntroduce); echo "

$mTitle

$mIntroduce
戻る
"; } function WriteNeta(){ #-------- --------- --------- --------- --------- # ネタフリをファイルに記録 #-------- --------- --------- --------- --------- global $G_TIME_NOW,$G_VER,$G_LOG_FILE,$G_OLD_LOGS_DIR,$G_NICK_LOG_FILE; global $G_NETA_COUNT_FILE,$G_MAX_NUM_OF_NETA,$G_MAX_NUM_OF_RES; global $G_KANJI_CODE,$G_NICK_TIME_OUT,$G_THIS_NAME,$G_TITLE,$G_SAVE_OLD_LOGS; global $G_MAX_NUM_OF_OLD_NETA_PER_FILE; global $gForm; $m_array_Data = array(); $m_array_Tail = array(); $m_array_NewData = array(); # ログファイル読み込み list($mErr,$m_array_Data) = LoadFromFile($G_LOG_FILE); # ネタ番号カウンタ読み込み list($mErr2,$mCnt) = LoadFromFile($G_NETA_COUNT_FILE); if ($mErr || $mErr2){ # 読み込みエラー処理 echo "

[ エラー ] ログファイルを読み込めませんでしたよ! [^v^]/

\n"; $mMmessage = "0% 無事、登録されました。"; }else{ # ネタカウンタをひとつ増やしカウントファイルに書き込み $mCnt[0]++; $mErr = WriteToFile($G_NETA_COUNT_FILE,"w",$mCnt); if ($mErr){ # ネタカウンタ書き込みエラー処理 echo "

[ エラー ] ネタカウントファイルに書き込めませんでしたよ! [^v^]/

\n"; $mMmessage = "0% 無事、登録されました。"; }else{ # ログデータの先頭に新規ネタフリ追加 $mBuf = $mCnt[0]; $mBuf .= ","; $mBuf .= $gForm{"neta"}; $mBuf .= ","; $mBuf .= "$G_TIME_NOW\n"; array_unshift ($m_array_Data, $mBuf); # 最大数を超えたネタを $m_array_Tail に格納 for($i=0;$G_MAX_NUM_OF_NETA > $i;$i++){ $m_array_NewData[$i + 1] = $m_array_Data["$i"]; } for($i;count($m_array_Data)>=$i;$i++){ array_push($m_array_Tail,$m_array_Data["$i"]); } # $m_array_Tail にネタが入っていて過去ログ保存機能が有効になっていたら if ($G_SAVE_OLD_LOGS && $m_array_Tail){ $mLogIndex = count($m_array_Tail) - 1; $m_array_Tail = array_reverse($m_array_Tail); foreach ($m_array_Tail as $current){ # ネタカウントを元に保存するファイル番号を計算 $mFileName = intval (($mCnt[0] - $G_MAX_NUM_OF_NETA - $mLogIndex) / $G_MAX_NUM_OF_OLD_NETA_PER_FILE); # 過去ログファイルに追可保存 $m_array_Buf = array($current); $Err3 .= WriteToFile("$G_OLD_LOGS_DIR/$mFileName.txt", "a", $m_array_Buf); $mLogIndex--; } } # ログ書き込み $mErr = WriteToFile($G_LOG_FILE,"w",$m_array_NewData); if ($mErr || $Err3){ # 書き込みエラー処理 echo "

[ エラー ] ログファイルに書き込めませんでしたよ! [^v^]/

\n"; $mMmessage = "0% 無事、登録されました。"; }else{ $mMmessage = "99.9% 無事、登録されました。"; } } } echo " たぶん2秒後に自動的に戻ります

$mMmessage

ここをクリックして下さい。


"; } function FormLog($mOption,$m_array_Data){ #-------- --------- --------- --------- --------- # ログ整形 # HTMLデータ = FormLog(オプション,ログデータ); # #-------- --------- --------- --------- --------- global $G_TIME_NOW,$G_VER,$G_LOG_FILE,$G_OLD_LOGS_DIR,$G_NICK_LOG_FILE; global $G_NETA_COUNT_FILE,$G_MAX_NUM_OF_NETA,$G_MAX_NUM_OF_RES; global $G_KANJI_CODE,$G_NICK_TIME_OUT,$G_THIS_NAME,$G_TITLE,$G_SAVE_OLD_LOGS; global $G_MAX_NUM_OF_OLD_NETA_PER_FILE; global $gForm; $m_array_Res = array(); $m_array_WhatsNewList = array(); # ★の色変え位置 $M_DIVIDE_POINT = 5; $mWhatsNew = "新着|"; # ログデータをHTMLに整形して$mLogに格納 foreach ($m_array_Data as $mLine){ $mLine = Chop ($mLine); # ひとつのスレッド読み込み $m_array_Res = explode(",", $mLine); $mNo = array_shift($m_array_Res); $mNeta = array_shift($m_array_Res); $mTime = array_shift($m_array_Res); # 新着の作成 if(!$mTime){ $mTime = time(); } $mTime2 = GetTime($mTime); $m_array_WhatsNewList{"$mTime"} = "$mNo ( $mTime2 ) "; # オプションが'link'ならネタ番号にレス画面へのリンクを if ($mOption == 'link'){ $mLog .= "\n\n