//1.1.0
@header('Content-Type: text/html; charset=Shift_JIS');
@header('Content-Language: ja');
//セッションを開始する(セッションID付きで呼ばれた場合にはすでに存在するセッション情報を呼び出す)
session_start();
//Cookieでセッション情報を保存している場合、同じブラウザ上だと、URLを入力し直してもセッションを引き継いでしまうため、
//SESSIONにindex.phpの情報をセットして、内容が変化しているときは新しいセッションと判断する
if(isset($_SESSION["SCRIPT_NAME"]) == false){
$_SESSION["SCRIPT_NAME"] = $_SERVER["SCRIPT_NAME"];
}else{
if($_SESSION["SCRIPT_NAME"] != $_SERVER["SCRIPT_NAME"]){
session_unset();
@session_destroy();
header("Location: index.php");
exit;
}
}
//HTMLを圧縮して送信するための設定
require_once("Compress.php");
$http = new HTTP_Compress;
$http->start();
//共通サブルーチンの読み込み
require("common.sub");
//フォームからポストされた情報を保存する
isset($_POST["reset"]) ? $reset = true : $reset = false;
isset($_POST["kensakuText"]) ? $kensaku = true : $kensaku = false;
isset($_POST["password"]) ? $ninsyou = true : $ninsyou = false;
isset($_POST["sortOrder"]) ? $sortOrder = true : $sortOrder = false;
if($kensaku == true){
$kensakuType = $_POST["kensakuType"]; //[AND]、[OR]の取得
isset($_POST["kensakuMode"]) ? $kensakuMode = $_POST["kensakuMode"] : null; //[全検索]、[この検索結果以下から検索]の取得
// $_SESSION["kensakuText"] = $_POST["kensakuText"]; //検索条件文字列の取得
$_SESSION["kensakuText"] = htmlspecialchars($_POST["kensakuText"]); //検索条件文字列の取得
}
//画面モード判定のフラグ(false:一般モード true:管理モード)
if(isset($_SESSION["kanriMode"]) == false){
$_SESSION["kanriMode"] = false;
}
//新規データ登録画面で行った処理結果(false:未登録 true:新規登録を行った)
if(isset($_SESSION["sinkiTouroku"]) == false){
$_SESSION["sinkiTouroku"] = false;
}
//返信画面で行った処理結果(false:未登録 true:登録を行った)
if(isset($_SESSION["hensinResult"]) == false){
$_SESSION["hensinResult"] = false;
}
//編集画面で行った処理結果(null:未処理 完了メッセージ文字列:変更・削除を行った)
if(isset($_SESSION["hensyuu"]) == false){
$_SESSION["hensyuu"] = null;
}
//表示ページの保存エリア
if(isset($_SESSION["page"]) == false){
$_SESSION["page"] = "1";
}
//アップロード件数保存エリア
if(isset($_SESSION["countUpload"]) == false){
$_SESSION["countUpload"] = 0;
}
//CSVデータ新規登録、修正、削除、返信コメントを行ったか判断するフラグ
//全件表示のときに新しくデータを取得するかどうかの判断に使用する
if(isset($_SESSION["flagUpdate"]) == false){
$_SESSION["flagUpdate"] = false;
}
//ページ設定データの保存エリア
if(isset($_SESSION["pageData"]) == false){
readPageFile($_SESSION["pageData"]);
}
//フォーム設定データの保存エリア
if(isset($_SESSION["formData"]) == false){
readFormFile($_SESSION["formData"]);
}
if($_POST["gaibuform"] == 1){ $_SESSION["firstLoad"] = true;readCsvData();}
//検索対象項目を保存する
isset($_POST["tourokuNo"]) ? $_SESSION["condition"]["tourokuNo"] = $_POST["tourokuNo"] : $_SESSION["condition"]["tourokuNo"] = null;
foreach($_SESSION["formData"] as $form){
//チェックボックス、リストボックスの複数選択の場合はname属性に[]がついているのでそれを取り払らう
$itemName = ( strpos($form[1],"[]") === false ? $form[1] : substr($form[1],0,strlen($form[1])-2));
isset($_POST[$itemName]) ? $_SESSION["condition"][$itemName] = $_POST[$itemName] : $_SESSION["condition"][$itemName] = null;
}
//リセットボタンが押されたとき
//初めて画面が開いたとき
//アップロードのとき(登録したデータを画面に表示するので検索条件を初期化する)
//新規データ登録画面からデータを登録して戻ってきたとき(登録したデータを画面に表示するので検索条件を初期化する)
//各種検索条件などを初期化する
if($reset == true || isset($_SESSION["firstLoad"]) == false || $_SESSION["countUpload"] > 0 || $_SESSION["sinkiTouroku"] == true){
$_SESSION["and"] = " selected";
$_SESSION["or"] = null;
$_SESSION["all"] = "checked";
$_SESSION["siborikomi"] = null;
$_SESSION["kensakuText"] = null;
//検索対象項目の初期化
$_SESSION["condition"]["tourokuNo"] = null;
foreach($_SESSION["formData"] as $form){
$itemName = ( strpos($form[1],"[]") === false ? $form[1] : substr($form[1],0,strlen($form[1])-2));
$_SESSION["condition"][$itemName] = null;
}
$_SESSION["csvArray"] = array();
$_SESSION["csvTotalCount"] = "---";
//画面がすでに一回開いているかチェックするためのフラグ
if(isset($_SESSION["firstLoad"]) == false){
$_SESSION["firstLoad"] = true;
}
//初めて画面が開いたとき、リセットボタンが押されたとき、データをあらかじめ全件表示する
$kensaku = true;
$kensakuType = "and";
$_SESSION["page"] = "1";
//ページ設定データの取得
readPageFile($_SESSION["pageData"]);
//フォーム設定データの保存エリア
readFormFile($_SESSION["formData"]);
//セッション単位のソート設定保存エリア
if(isset($_SESSION["sort"]) == false){
$_SESSION["sort"] = $_SESSION["pageData"]["sort"];
}
if(isset($_SESSION["sortItem"]) == false){
$_SESSION["sortItem"] = $_SESSION["pageData"]["sortItem"];
}
}
//ページ番号のリンクが押されたとき、そのページ番号を保存する
if(isset($_GET["page"]) == true){
$_SESSION["page"] = $_GET["page"];
}
//編集ボタンが押されたとき、編集画面に移動する
if(count($_SESSION["csvArray"]) > 0){
foreach($_SESSION["csvArray"] as $csv){
if(isset($_POST["hensyuu" . $csv["tourokuNo"]]) == true){
header("Location: hensyuu.php?" . SID . "&tourokuNo=" . $csv["tourokuNo"]);
exit;
}
}
}
//認証ボタンが押されたとき、認証チェックを行う
if($ninsyou == true){
//パスワードのチェックを行う
$_SESSION["kanriMode"] = checkPassword($_POST["password"]);
if($_SESSION["kanriMode"] == true && count($_SESSION["csvArray"]) > 0){
$_SESSION["page"] = "1";
//CSVファイルから全データを取り込み件数も取得する
readCsvData();
//検索条件によりデータを絞り込む
$_SESSION["csvArray"] = checkData();
$_SESSION["flagUpdate"] = true;
}
}
//「一般モードに戻る」リンクが押されたとき、一般モードに戻る
if(isset($_GET["normalMode"]) == true){
$_SESSION["page"] = "1";
$_SESSION["kanriMode"] = false;
if(count($_SESSION["csvArray"]) > 0){
//CSVファイルから全データを取り込み件数も取得する
//ただし一般モードの場合には削除データは取得しない
readCsvData();
//検索条件によりデータを絞り込む
$_SESSION["csvArray"] = checkData();
$_SESSION["flagUpdate"] = true;
}
}
//検索ボタンが押されたとき、各種検索条件などをセッションに保存する
if($kensaku == true){
$_SESSION["page"] = "1";
if($kensakuType == "and"){
$_SESSION["and"] = " selected";
$_SESSION["or"] = null;
}else{
$_SESSION["and"] = null;
$_SESSION["or"] = " selected";
}
$count = count($_SESSION["csvArray"]);
//検索済みのデータがあり、[全検索・この検索結果から検索]のラジオボタンが画面に表示されているときのみ
if($count > 0){
if($kensakuMode == "all"){
$_SESSION["all"] = "checked";
$_SESSION["siborikomi"] = null;
}else{
$_SESSION["all"] = null;
$_SESSION["siborikomi"] = "checked";
}
}
if($_SESSION["all"] == "checked"){
//CSVファイルから全データを取り込み件数も取得する
//ただし一般モードの場合には削除データは取得しない
readCsvData();
}
//検索条件によりデータを絞り込む
$_SESSION["csvArray"] = checkData();
$_SESSION["flagUpdate"] = true;
}
//編集画面から保存・削除で戻ってきたとき
//新規登録のとき
//アップロードしたとき(1件以上アップロードできたとき)
//コメントを返信したとき
//フォームで列数を変えなかったとき
//再検索して表示し直す
if($_SESSION["hensyuu"] != null || $_SESSION["countUpload"] > 0 ||
$_SESSION["sinkiTouroku"] == true || $_SESSION["hensinResult"] == true || $_SESSION["formResult"] == true){
//新規登録、アップロードのときは、全件表示で表示し直す
if($_SESSION["sinkiTouroku"] == true || $_SESSION["countUpload"] > 0){
$_SESSION["sinkiTouroku"] = false;
$_SESSION["page"] = "1";
$_SESSION["countUpload"] = 0;
}
if($_SESSION["hensinResult"] == false){
//CSVファイルから全データを取り込み件数も取得する
//ただし一般モードの場合には削除データは取得しない
readCsvData();
//検索条件によりデータを絞り込む
$_SESSION["csvArray"] = checkData();
}
//「1件のデータが見つかりました。」などのメッセージは不要なので初期化する
$msg = null;
$_SESSION["hensinResult"] = false;
$_SESSION["flagUpdate"] = true;
}
//並び替えボタンが押されたとき、表示データの並び替えを行う
if($sortOrder == true){
$_SESSION["sortItem"] = $_POST["sortItem"];
$_SESSION["sort"] = $_POST["sort"];
$_SESSION["page"] = "1";
//ページ設定の情報を元にデータをソートする
usort($_SESSION["csvArray"], "cmp");
$_SESSION["flagUpdate"] = true;
}
//管理モードに移動する際に入力したパスワードが不正なときにはエラーメッセージを表示する
if($ninsyou == true && $_SESSION["kanriMode"] == false){
print('認証エラーです。');
exit;
}
/*---HTMLデザイン開始---*/
?>
//タイトルヘッダ(管理モード・一覧モード)
if($_SESSION["kanriMode"] == true){
print ("".strip_tags($_SESSION["pageData"]["title"])."[管理モード]\n");
print ("\n");
} else {
print ("".strip_tags($_SESSION["pageData"]["title"])."\n");
printStyleSheet();
}
?>
/*--------------------管理モードメニュー------------------*/
if($_SESSION["kanriMode"] == true){
?>