// 内部文字エンコーディングをEUC-JPに設定 mb_internal_encoding("EUC-JP"); header("Content-Type: text/html; charset=EUC-JP"); require_once("../common/function.php"); include("init.php"); session_register("sLoginFlg"); // ログインフラグ session_register("sHostName"); // ホスト名 session_register("sGbLog"); // ログファイル session_register("sGbId"); // ID $gLoginDirVar = substr(strrchr(getcwd(), "/"), 1); // 管理者モード if( $_GET["login"]==1 ){ f_ChkPass(); }else if( $_GET["logout"]==1 ){ $_SESSION["sLoginFlg"][$gLoginDirVar] = 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); } // 書込み制限 if(!gf_IsNull($gInit["refusal"])){ if(ereg($gInit["refusal"],$_SERVER['REMOTE_ADDR'])){ gf_ErrPage("書込み制限により書き込みできませんでした",""); } } // ログファイル取得 $wFileName = $gInit["log_file"]; if(!file_exists($wFileName)){ gf_ErrPage("GUESTBOOKログファイルが見つかりません", ADMIN_MAIL); } // 読み込み $wFp = @fopen($wFileName,"rb") or gf_ErrPage("GUESTBOOKログファイルが見つかりません", 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); $wName = ereg_replace(",", "‚", StripSlashes($_POST["name"])); $wHp = ereg_replace(",", "‚", StripSlashes($_POST["hp"])); if( $wHp == "http://" ){ $wHp = ""; } $wMail = ereg_replace(",", "‚", StripSlashes($_POST["mail"])); $wFileVal = ereg_replace("(\n|\r|\r\n)", "\n", $wFileVal); $wFileVal = date("YmdHis").",".$wName.",".$wHp.",".$wMail.",".$_SERVER['REMOTE_ADDR']."\n".$wFileVal; // 書込み $wFp = @fopen($wFileName, "w") or gf_ErrPage("GUESTBOOK書き込み時にエラーが発生しました", ADMIN_MAIL); flock($wFp, LOCK_EX); fputs($wFp, $wFileVal); flock($wFp, LOCK_UN); fclose($wFp); $_SESSION["sGbLog"][] = array(date("YmdHis"),$wName,$wHp,$wMail,$_SERVER["REMOTE_ADDR"]); usort($_SESSION["sGbLog"], "sort_by_regist_date"); setcookie("name", htmlspecialchars($wName,ENT_QUOTES), time()+259200); setcookie("hp", htmlspecialchars($wHp,ENT_QUOTES), time()+259200); setcookie("mail", htmlspecialchars($wMail,ENT_QUOTES), time()+259200); header("Location: gb.php?id=".$_GET["id"]."&page=".$_GET["page"]); } //******************************** // ソート条件 //******************************** function sort_by_regist_date($p1, $p2) { if ($p1[0] == $p2[0]) return 0; return ($p1[0] > $p2[0]) ? -1 : 1; } //**************************************** // 『ログデータ取得』 //**************************************** function f_GetLog(){ global $gInit; // セッション削除 $_SESSION["sGbLog"] = ""; if( $_SESSION["sGbId"] != $_GET["id"] or $_SESSION["sHostName"] != $_SERVER["HTTP_HOST"] ){ session_unregister("sLoginFlg"); $_SESSION["sGbId"] = $_GET["id"]; $_SESSION["sHostName"] = $_SERVER["HTTP_HOST"]; } // ログファイル $wFileName = $gInit["log_file"]; if(!file_exists($wFileName)){ $wFp = @fopen($wFileName,"w") or gf_ErrPage("GUESTBOOKログファイル作成時にエラーが発生しました", ADMIN_MAIL); fclose($wFp); chmod ( $wFileName, 0606); } // ログのバックアップ gf_LogBackUp($wFileName); if(!is_array($_SESSION["sGbLog"])){ // ログファイルオープン $i = 0; $wFp = @fopen ($wFileName, "rb") or gf_ErrPage("GUESTBOOKログファイルが見つかりません", ADMIN_MAIL); flock($wFp, LOCK_EX); while (!feof($wFp)) { $wBuf = fgets($wFp, 4096); $wBuf = ereg_replace("\n", "", $wBuf); if(!gf_IsNull($wBuf)){ $_SESSION["sGbLog"][$i] = split(",",$wBuf); $i++; } } flock($wFp, LOCK_UN); fclose ($wFp); if(!gf_IsNull($_SESSION["sGbLog"])){ usort($_SESSION["sGbLog"], 'sort_by_regist_date'); } } } //******************************** // html表示 //******************************** function f_ShowHtml(){ global $gInit, $gImgPath, $gLoginDirVar; ?>