"; //外部ファイルを使う場合 //include("header.html"); } // ?に続く文字で各モードに分岐 switch ($_SERVER['QUERY_STRING']) { // すべての新着情報表示 case 'all': echo "

すべての新着情報


"; // 配列の先頭から、配列の終わりまでループ for($i = 0; $i < count($lines); $i++) { // 配列の$i行目を「<>」で各変数に分解 list($update, $title, $link, $desc) = explode("<>", $lines[$i]); // UNIXタイムを日にちにフォーマット $update = date("Y/m/d", $update); // HTMLに整形して表示 echo "■$title ($update)
$desc

"; echo "--------------
"; } // 管理モードへのリンクを張る echo "

管理
"; break; // パス入力・投稿画面表示 case 'adm': // POSTフォームからのパスを変数に代入 $pass = $_POST['pass']; // パスが空でなく、パスが違う場合はエラーを表示 if (!empty($pass) && $pass !== $pwd) die("パスワードが違うよ"); echo "
管理モード
"; // パスが空の場合はパス入力フォーム表示 if (empty($pass)) { echo <<

パスワードを入力して下さい

PASS; } // それ以外の場合は、投稿フォームを表示 else { echo <<

新着情報をいれてください。

タイトル
U R L
概 要
FORM; } break; // ログ更新・RSS作成処理 case 'reg': function sanitize($str) { $str = str_replace(array("&","<",">","\""), array("&","<",">","""), $str); return $str; } // 余分なクォート文字を取り除く if (get_magic_quotes_gpc()) { $_POST = array_map("stripslashes", $_POST); } $post = array_map("sanitize", $_POST); // 変数に入れ直す $title = $_POST['title']; $link = $_POST['link']; $desc = $_POST['desc']; // タイトルは必須にする if(empty($title)) die("タイトルを入力してください"); // URLも必須にする //if (!eregi("^http://", $link)) die("URLを入力してください"); //if (!preg_match("^http://", $link)) die("URLを入力してください"); // 制限文字数チェック if (strlen($desc) > $descmax) die("文字数をオーバーしています"); // 改行文字を\nに統一する $desc = str_replace("\r\n", "\r", $desc); $desc = str_replace("\r", "\n", $desc); // \nを
に変換する $desc = str_replace("\n", "
", $desc); // 新データを<>でつなげる。最後に改行 $new_item = time()."<>".$title."<>".$link."<>".$desc."<>\n"; // ログ配列の先頭に加える array_unshift($lines, $new_item); // ログを更新 $fp = fopen($logfile , "w"); //書き込みモードでオープン flock($fp, LOCK_EX); //ファイルロック fputs($fp, implode("", $lines)); //配列を結合して書き込む fclose($fp); // RSSを作成 $rss = << $ch_title $ch_link $ch_desc ja\n RSS_HEAD; // 配列を展開 foreach ($lines as $item) { // 各変数に分割 list($update, $title, $link, $desc) = explode("<>", $item); // UNIXタイムをRFC822形式の書式に変換 $pubdate = date("r", $update); // 概要からタグを除去 $desc = strip_tags($desc); // 変数$rssに追加していく $rss .= << $title $link $desc $pubdate \n ITEM; } $rss .= << RSS_FOOT; // UTF-8に変換 $rss = mb_convert_encoding($rss, "UTF-8", "SJIS"); // // RSSファイルを作成 // $fp = fopen("index.xml" , "w"); // flock($fp, LOCK_EX); // fputs($fp, $rss); // fclose($fp); // echo " - 更新完了 -
"; // 最新の新着情報表示 default: // ログ行数が表示件数に満たない場合は、ログ行数分表示 if (count($lines) < $viewmax) $viewmax = count($lines); // 配列の先頭から、$viewmaxまで取り出す for($i = 0; $i < $viewmax; $i++) { // 配列の$i行目を「<>」で各変数に分解 list($update, $title, $link, $desc) = explode("<>", $lines[$i]); // UNIXタイムを日にちにフォーマット $update = date("Y/m/d", $update); // HTMLに整形して表示 echo "■$title ($update)
$desc

"; echo "--------------
"; } // すべての新着情報にリンクを張る // echo "
>>
"; } // フッタ表示 if($_SERVER['QUERY_STRING']){ echo "
- Updater RSS -
"; //外部ファイルを使う場合 //include("foot.html"); exit; } ?>