// 内部文字エンコーディングを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("sLinksLog"); // ログファイル session_register("sHostName"); // ホスト名 session_register("sLinksId"); // 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); } // ログファイル取得 $wFileName = $gInit["log_file"]; if(!file_exists($wFileName)){ gf_ErrPage("LINKログファイルが見つかりません", ADMIN_MAIL); } // 書込み $wFp = @fopen($wFileName,"rb") or gf_ErrPage("LINKログファイルが見つかりません", ADMIN_MAIL); flock($wFp, LOCK_EX); $wFileVal = fread($wFp, 999999); flock($wFp, LOCK_UN); fclose ($wFp); $wCategory = $_POST["category"]; $wSiteName = ereg_replace(",", "‚", StripSlashes($_POST["site_name"])); $wSiteAdd = ereg_replace(",", "‚", StripSlashes($_POST["site_add"])); $wFileVal = ereg_replace("(\n|\r|\r\n)", "\n", $wFileVal); $wFileVal = $wFileVal.$wCategory.",".$wSiteName.",".$wSiteAdd."\n"; $wFp = @fopen($wFileName, "w") or gf_ErrPage("LINK書き込み時にエラーが発生しました", ADMIN_MAIL); flock($wFp, LOCK_EX); fputs($wFp, $wFileVal); flock($wFp, LOCK_UN); fclose($wFp); $_SESSION["sLinksLog"][] = array($wCategory,$wSiteName,$wSiteAdd); // 多次元配列ソート if($gInit["sort_flg"]=="0" AND $_SESSION["sLinksLog"]!="" ){ usort($_SESSION["sLinksLog"], 'sort_by_site_name'); } header("Location: links.php?id=".$_GET["id"]); } //**************************************** // 『ログデータ取得』 //**************************************** function f_GetLog(){ global $gInit; // セッション削除 if( $_SESSION["sLinksId"] != $_GET["id"] or $_SESSION["sHostName"] != $_SERVER["HTTP_HOST"] ){ session_unregister("sLinksLog"); $_SESSION["sLinksId"] = $_GET["id"]; $_SESSION["sHostName"] = $_SERVER["HTTP_HOST"]; } // ログファイル $wFileName = $gInit["log_file"]; if(!file_exists($wFileName)){ $wFp = @fopen($wFileName,"w") or gf_ErrPage("LINKログファイル作成時にエラーが発生しました", ADMIN_MAIL); fclose($wFp); chmod ( $wFileName, 0606); } // ログのバックアップ gf_LogBackUp($wFileName); if(!isset($_SESSION["sLinksLog"])){ // ログファイルオープン $i = 0; $wFp = @fopen ($wFileName, "rb") or gf_ErrPage("LINKログファイルが見つかりません", ADMIN_MAIL); flock($wFp, LOCK_EX); while (!feof($wFp)) { $wBuf = fgets($wFp, 4096); $wBuf = ereg_replace("\n", "", $wBuf); if(!gf_IsNull($wBuf)){ $_SESSION["sLinksLog"][$i] = split(",",$wBuf); $i++; } } flock($wFp, LOCK_UN); fclose ($wFp); // 多次元配列のソート if($gInit["sort_flg"]=="0" AND $_SESSION["sLinksLog"]!="" ){ usort($_SESSION["sLinksLog"], 'sort_by_site_name'); } } } //******************************** // ソート条件 //******************************** function sort_by_site_name($a, $b) { return strcmp($a[1],$b[1]); } //******************************** // html表示 //******************************** function f_ShowHtml(){ global $gInit, $gImgPath, $gLoginDirVar; ?>