_HTML_; //フッター $foot= <<<_HTML_ _HTML_; //ニュース管理画面用フッター $foot2 = <<<_HTML_ $footerfile _HTML_; switch ($mode) { //メインのswitch //ニュース表示 default: //ログファイル読み込み $lines = @file($logfile); $endline = count($lines); //ログ行数 //ログの総行数が一画面表示数を超えないorページ表示変数がなければ表示ページに1をセット if ( $endline < $newmax || !isset($page) ) { $page = 1; } //読み込み表示ログの最初と最後の行番号をセット $startlog = ($page - 1) * $newmax; $endlog = $startlog + $newmax; //ログ読み込み&html化 for ($i = $startlog; $i < $endlog; $i++) { if ($i >= $endline) { break; } //ログ行数を超えるようならループを抜ける $newsline = explode(",", $lines[$i]); //ログの1行を「,」で分割 $newstext = AutoLink($newsline[2]); //URLがあったらリンクタグをつける $naiyou .= "■".$newsline[1]."
\n".nl2br($newstext)."\n
\n"; } //現在表示ページ&他ページへのリンク生成 $pagenum = ceil($endline / $newmax); if ($endline <= $newmax) { $pagelink = ""; } else { $pagelink = "
Page : "; for ($i = 1; $i <= $pagenum; $i++) { if ($i == $page) { $pagelink .= "[ ".$i." ] "; } //表示中のページにカッコをつけてリンクはつけない else { $pagelink .= "".$i." "; } //他のページのリンクをつける } $pagelink .= "
"; } //管理ページへのリンク $loginpage = "
"; //html出力 echo $head; //トップページ以外からの呼出の場合、トップへのリンクをつけるよ if (ereg("kk-aito\.co\.jp",$HTTP_REFERER) == False) { echo "
トップページはこちら
"; } echo $naiyou; echo $pagelink; echo $loginpage; echo $foot; break; //ログイン画面 case "login": //クッキーの設定と読み込み session_cache_limiter('private_no_expire'); //IEでページの有効期限切れ対策 session_set_cookie_params(time() + 90 * 24 * 3600); //3ヶ月後に削除 session_start(); if ($_COOKIE['aitosessionid'] == session_id()) { $loginpass = $_SESSION['aitonewspass']; $boxcheck = "checked"; } $naiyou = <<<_HTML_
新規投稿 編集・削除

Pass
パスワードを保存する
_HTML_; echo header_cre("ログイン画面"); echo $naiyou; echo $foot2; break; //ニュース作成・修正 case "edit": if ($pass !== $adminpass) { $_COOKIE['aitosessionid']=""; header("Location: ".$PHP_SELF."?mode=login"); } //クッキーを食べるならクッキー送信 if ($cookiechk == "on") { //セッション送信 session_set_cookie_params(time() + 90 * 24 * 3600); //3ヶ月後に削除 session_start(); $_SESSION['aitonewspass'] = $pass; //クッキー送信 setcookie('aitosessionid', session_id(), time() + 90 * 24 * 3600); //3ヶ月後に削除 } else { session_start(); $_SESSION = array(); //すべてのセッション変数を初期化 session_destroy(); //セッションを破棄 setcookie("aitosessionid"); //クッキー破棄 } do { $end = "end"; //ログ取得 $lines = @file($logfile); $endline = count($lines); //ログ行数 //********** ニュース作成 if ($newssousa == "create" || $_POST['EDIT']) { $newstxt = ""; //修正から飛んできたら内容を入れておく if ($editno) { for ($i = 0; $i < $endline; $i++) { $newsline = explode(",", $lines[$i]); //ログの1行を「,」で分割 //番号を見て同じなら内容を読み込んでおく if ($editno == $newsline[0]) { $newsdays = $newsline[1]; $newstxt = str_replace("
", "\n" ,$newsline[2]); } } } else { $editno=""; } //新規ニュースの場合、日付とeditnoを生成し、フラグをセット if (!$editno) { $editno = time()+9*3600; $newsdays = gmdate("Y",$editno)."年".gmdate("n月j日", $editno); $newnews = "new"; } //内容生成 $newstxt = trim($newstxt, "\n"); $naiyou = <<<_HTML_
{$newsdays}のニュース

_HTML_; //html出力 echo header_cre("新着・更新情報の作成"); echo $naiyou; echo $foot2; } //ニュース投稿ifの終わり //********** ニュース修正・削除の指定 if ($newssousa == "editdel") { //ログ内容整形 for ($i = 0; $i < $endline; $i++) { $newsline = explode(",", $lines[$i]); //ログの1行を「,」で分割 $naiyou .= <<<_HTML_ {$newsline[1]} {$newsline[2]} _HTML_; } //html出力 echo header_cre("ニュースの編集・削除"); echo <<<_HTML_
編集・削除したい箇所にチェックを入れて、下のボタンを押してください。
_HTML_; echo $naiyou; echo <<<_HTML_
   
_HTML_; echo $foot2; } //ニュース修正・削除ifの終わり //********** ニュース削除 if ($_POST['DELETE']) { //リファラーチェック if ($GAIBU == 1 && !eregi($HTTP_HOST, $HTTP_REFERER)) { die("投稿フォームから操作してください"); } //editnoを調べて一致する行を削除する for ($i = 0; $i < $endline; $i++) { $newsline = explode(",", $lines[$i]); //ログの1行を「,」で分割 if ($editno == $newsline[0]) { $lines[$i] = ""; } } $newssousa="editdel"; $_POST['DELETE']=""; $end = "no"; //書き込み処理 $fp = @fopen($logfile, "w"); @flock($fp, 2); @fputs($fp, implode("", $lines)); @fclose($fp); } } while($end =="no"); //********** ニュース書き込み if ($_POST['NEWSPOST']) { //リファラーチェック if ($GAIBU == 1 && !eregi($HTTP_HOST, $HTTP_REFERER)) { die("投稿フォームから投稿してください"); } //ニュース本文がなければエラー if ($newsmes == "") { echo header_cre("エラー")."本文が書き込まれていません

"; echo "戻る
".$foot2; die; } //最大文字数を超えていればエラー if (strlen($newsmes) > $commax) { echo header_cre("エラー")."本文の文字数が多すぎます

"; echo "戻る
".$foot2; die; } //本文の文字整形 $newsmes = CleanMsg($newsmes); //$newsmes = mb_convert_encoding($newsmes,"SJIS"); //新規ニュースだったらログの最初に付け足す if ($newnews == "new") { //各項目を一行にまとめる $newline = implode(",", array($editno,$days,$newsmes,"\n")); array_unshift($lines, $newline); //修正だったら本文を入れ替える } else { for ($i = 0; $i < $endline; $i++) { $newsline = explode(",", $lines[$i]); //ログの1行を「,」で分割 //同一editnoの本文を入れ替え if ($editno == $newsline[0]) { $lines[$i] = implode(",", array($editno,$days,$newsmes,"\n")); } } } //ログ保存数を超えた分は削除 $endline = count($lines); //ログ行数 for ($i = $logmax; $i < $endline; $i++) { $lines[$i] = ""; } //書き込み処理 $fp = @fopen($logfile, "w"); @flock($fp, 2); @fputs($fp, implode("", $lines)); @fclose($fp); //バックアップ作成 $fpb = @fopen($backuplog, "a"); @flock($fpb, 2); @fputs($fpb, implode(",", array($editno,$days,$newsmes,"\n"))); @fclose($fpb); header("Location: http://".$url); } break; } //$modeのswicth終わり //本文整形 function CleanMsg($str){ $str = trim($str);//先頭と末尾の空白を取り除く if (get_magic_quotes_gpc()) { $str = stripslashes($str); }//magic_quotes_gpcがonなら余分な\とかを消す $str = str_replace(",", ",", $str);//,を,に $str = htmlspecialchars($str);//htmlタグを無効化 $str = str_replace("\r\n", "\n", $str);//CRLFを改行コードに $str = str_replace("\r", "\n", $str);//CRを改行コードに $str = nl2br($str);//改行文字の前に
を入れる return str_replace("\n", "", $str);//改行コードを消して戻す } //オートリンク function AutoLink($str){ $str = ereg_replace('(https?|ftp|news)(://[^<>[:space:]]+[[:alnum:]/[:alnum:]])'," こちらをクリック",$str); return $str; } //管理画面用ヘッダー function header_cre($str) { global $headerfile; $head2 = <<<_HTML_ 株式会社アイト|新着・更新情報管理ページ
$headerfile
$str
_HTML_; return $head2; } ?>