// 内部文字エンコーディングをEUC-JPに設定
mb_internal_encoding("EUC-JP");
header("Content-Type: text/html; charset=UTF-8");
require_once(dirname(__FILE__) . "/../common/function.php");
include("init.php");
session_register("sLoginFlg"); // ログインフラグ
session_register("sHostName"); // ホスト名
session_register("sDiaryLog"); // ログファイル
session_register("sDiaryId"); // ID
$gLoginDirVar = substr(strrchr(getcwd(), "/"), 1);
// 管理者モード
if( $_GET["login"]==1 ){
f_ChkPass();
}else if( $_GET["logout"]==1 ){
$_SESSION["sLoginFlg"] = false;
}
if($_GET["mode"]=="ins"){
f_InsLog();
}else{
// ログデータ取得
f_GetLog();
// HTML表示
f_ShowHtml();
}
//****************************************
// 『ログインチェック』
//****************************************
function f_ChkPass(){
global $gInit, $gLoginDirVar;
if(gf_IsNull($_POST["admin_pass"])){
gf_ErrPage("管理者用パスワードを入力してください", "");
}
if($gInit["admin_pass"] != $_POST["admin_pass"]){
gf_ErrPage("管理者用パスワードが違います", "");
}
setcookie("admin_pass", $_POST["admin_pass"], time()+259200);
$_SESSION["sLoginFlg"][$gLoginDirVar] = true;
}
//****************************************
// 『ログインサート』
//****************************************
function f_InsLog(){
global $gInit;
// 値が入っていなかったら
if( count($_POST)==0 ){
gf_ErrPage("値が取得できませんでした", ADMIN_MAIL);
}
// ログファイル取得
$wFileName = $gInit["log_file"];
if(!file_exists($wFileName)){
gf_ErrPage("DIARYログファイルが見つかりません", ADMIN_MAIL);
}
// 読み込み
$wFp = @fopen($wFileName,"rb") or gf_ErrPage("DIARYログファイルが見つかりません", ADMIN_MAIL);
flock($wFp, LOCK_EX);
$i = 1;
while (!feof($wFp)) {
if( $i >= $gInit["MaxNum"] ){ break; }
$wFileVal .= fgets($wFp, 999999);
$i++;
}
flock($wFp, LOCK_UN);
fclose ($wFp);
$wDiaryDate = $_POST["date_y"].$_POST["date_m"].$_POST["date_d"].date("His");
$wDiaryTitle = ereg_replace(",", "‚", StripSlashes($_POST["diary_title"]));
$wDiaryText = ereg_replace(",", "‚", StripSlashes($_POST["diary_text"]));
$wDiaryText = ereg_replace("(\n|\r|\r\n)", "
", $wDiaryText);
$wDiaryFile = gf_UpdImg("file_name","diary_img/");
$wFileVal = ereg_replace("(\n|\r|\r\n)", "\n", $wFileVal);
$wFileVal = $wDiaryDate.",".$wDiaryTitle.",".$wDiaryText.",".$wDiaryFile."\n".$wFileVal;
// 書込み
$wFp = @fopen($wFileName, "w") or gf_ErrPage("DIARY書き込み時にエラーが発生しました", ADMIN_MAIL);
flock($wFp, LOCK_EX);
fputs($wFp, $wFileVal);
flock($wFp, LOCK_UN);
fclose ($wFp);
$_SESSION["sDiaryLog"][] = array($wDiaryDate,$wDiaryTitle,$wDiaryText,$wDiaryFile);
// 多次元配列ソート
if(!gf_IsNull($_SESSION["sDiaryLog"])){
usort($_SESSION["sDiaryLog"], 'sort_by_regist_date');
}
header("Location: diary.php?id=".$_GET["id"]."&page=".$_GET["page"]);
}
//****************************************
// 『ログデータ取得』
//****************************************
function f_GetLog(){
global $gInit;
// セッション削除
session_unregister("sDiaryLog");
if( $_SESSION["sDiaryId"] != $_GET["id"] or $_SESSION["sHostName"] != $_SERVER["HTTP_HOST"] ){
session_unregister("sLoginFlg");
$_SESSION["sDiaryId"] = $_GET["id"];
$_SESSION["sHostName"] = $_SERVER["HTTP_HOST"];
}
// ログファイル
$wFileName = $gInit["log_file"];
if(!file_exists($wFileName)){
$wFp = @fopen($wFileName,"w") or gf_ErrPage("DIARYログファイル作成時にエラーが発生しました", ADMIN_MAIL);
fclose($wFp);
chmod ( $wFileName, 0606);
}
// ログのバックアップ
gf_LogBackUp($wFileName);
// ログファイルオープン
$i = 0;
$wFp = @fopen ($wFileName, "rb") or gf_ErrPage("DIARYログファイルが見つかりません", ADMIN_MAIL);
flock($wFp, LOCK_EX);
while (!feof($wFp)) {
$wBuf = fgets($wFp, 999999);
$wBuf = ereg_replace("\n", "", $wBuf);
if(!gf_IsNull($wBuf)){
$_SESSION["sDiaryLog"][$i] = split(",",$wBuf);
$i++;
}
}
flock($wFp, LOCK_UN);
fclose ($wFp);
// 多次元配列ソート
if(!gf_IsNull($_SESSION["sDiaryLog"])){
usort($_SESSION["sDiaryLog"], 'sort_by_regist_date');
}
}
//********************************
// ソート条件
//********************************
function sort_by_regist_date($p1, $p2) {
if ($p1['0'] == $p2['0']) return 0;
return ($p1[0] > $p2[0]) ? -1 : 1;
}
//********************************
// html表示
//********************************
function f_ShowHtml(){
global $gInit, $gImgPath, $gLoginDirVar;
?>