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デザイン開始---*/ ?> ".strip_tags($_SESSION["pageData"]["title"])."[管理モード]\n"); print ("\n"); } else { print ("".strip_tags($_SESSION["pageData"]["title"])."\n"); printStyleSheet(); } ?> "); print("\n"); } //登録No.列に対するヘッダー if($_SESSION["pageData"]["tourokuNo"] == "on"){ print("\n"); } //各項目列のヘッダー foreach($_SESSION["formData"] as $form){ if($form[5] == "checked"){ print("\n"); } } //返信数列に対するヘッダー if($_SESSION["pageData"]["countHensin"] == "on"){ print("\n"); } print("\n"); } //セッション変数からデータを取得して一覧形式で表示する function printCsvData(){ $displayArray = array(); //ページが指定されている場合には、そのページに該当するデータのみを表示するようにする if($_SESSION["page"] == "all"){ if($_SESSION["flagUpdate"] == true){ $displayArray = $_SESSION["csvArray"]; $_SESSION["flagUpdate"] = false; }else{ print($_SESSION["printCsvData"]); return; } }else{ $displayArray = array_slice($_SESSION["csvArray"],($_SESSION["page"]-1)*ROW_MAX_COUNT,ROW_MAX_COUNT); } $printCsvData = null; //CSVデータ行数分くりかえす foreach($displayArray as $key => $csv){ $key++; /*-----------一般モードデータテーブル-----------*/ if($_SESSION["kanriMode"] == false){ //行の高さの設定 if($_SESSION["formData"][0][4] != null){ //偶数行の配色 if($key %2 && $_SESSION["pageData"]["gusu"] != null){ $printCsvData .= "\n"; } //奇数行の配色 elseif(!($key %2) && $_SESSION["pageData"]["kisu"] != null){ $printCsvData .= "\n";} //それ以外(設定しない時) else{$printCsvData .= "\n";} } //行の高さの設定が無い場合 else{ //偶数行の配色 if($key %2 && $_SESSION["pageData"]["gusu"] != null){ $printCsvData .= "\n"; } //奇数行の配色 elseif(!($key %2) && $_SESSION["pageData"]["kisu"] != null){ $printCsvData .= "\n";} //それ以外(設定しない時) else{$printCsvData .= "\n";} } }else{ if($key %2){ $printCsvData .= "\n"; } //奇数行の配色 elseif(!($key %2)){ $printCsvData .= "\n";} } //管理モードのみ編集ボタンを表示する if($_SESSION["kanriMode"] == true){ $printCsvData .= "\n"; } //登録No.列 if($_SESSION["pageData"]["tourokuNo"] == "on"){ $printCsvData .= "\n"; } //列数分くりかえす $flagBlank = false; foreach($_SESSION["formData"] as $form){ if($form[5] == "checked"){ $printCsvData .= "\n"; } } //返信数 if($_SESSION["pageData"]["countHensin"] == "on"){ $printCsvData .= "\n"; } $printCsvData .= "\n"; } if($_SESSION["page"] == "all"){ $_SESSION["printCsvData"] = $printCsvData; } //改行コードを
へ変換 $printCsvDate = str_replace("\r\n","
",$printCsvData); print($printCsvData); } print("
"); if($_SESSION["kanriMode"] == true){ print("
Collexy Collexy
HELP VIEWDB LOGOUT  
データの新規登録デザイン設定ファイル管理\"データの新規登録\"
"); print("\"デザイン設定\"
"); print("\"ファイル管理\"
"); } print("\"フォーム設定\"
"); print("\"ログイン設定\"
"); print("
データ数 ".$_SESSION["csvTotalCount"]."件
"); ?>


 
0){ print("全検索"); print("この検索結果以下から検索"); }else{ $_SESSION["all"] = "checked"; $_SESSION["siborikomi"] = null; } print ("
"); if($_SESSION["pageData"]["tourokuNo"]=="on"){ print("No.で検索\n"); } foreach($_SESSION["formData"] as $form){ if($form[7] == "checked"){ $itemName = ( strpos($form[1],"[]") === false ? $form[1] : substr($form[1],0,strlen($form[1])-2)); print("" . $form[0] . "で検索\n"); } } print("
"); /*--------------------管理モード検索窓ここまで------------------*/ } else { /*--------------------一般モード検索窓------------------*/ ?>
 
0){ print("全検索"); print("この検索結果以下から検索"); }else{ $_SESSION["all"] = "checked"; $_SESSION["siborikomi"] = null; } print ("
"); if($_SESSION["pageData"]["tourokuNo"]=="on"){ print("No.で検索\n"); } foreach($_SESSION["formData"] as $form){ if($form[7] == "checked"){ $itemName = ( strpos($form[1],"[]") === false ? $form[1] : substr($form[1],0,strlen($form[1])-2)); print("" . $form[0] . "で検索\n"); } } print("
"); } /*--------------------一般モード検索窓ここまで------------------*/ ?>

"); } else { print(""); print(""); } else { print("
"); } //処理メッセージを表示する if($msg != null){ print('' . $msg . ""); print("
"); } //編集画面で登録または削除が実行されたとき if($_SESSION["hensyuu"] != null){ //結果メッセージを表示する print('' . $_SESSION["hensyuu"] . ""); print("

"); $_SESSION["hensyuu"] = null; } ?>
"); } ?> 昇順   降順  
"); } else { ?> border='' bordercolor='' cellpadding='' cellspacing='' > 0){ //CSVデータの表示 printCsvData(); } ?>
","
",$work[$i+1]); $work[$i+1] = str_replace("
","\r\n",$work[$i+1]); $work[$i+1] = str_replace("
","\r\n",$work[$i+1]); $csv[$_SESSION["formData"][$i][1]] = $work[$i+1]; if($work[$i+1] != ""){ $flagDelete = false; } } //返信数の取得 $csv["countHensin"] = getHensinSuu($work[0]); //空データか判断 $csv["deleteData"] = $flagDelete; //一般モードのとき削除データは保存しない if($_SESSION["kanriMode"] == true || ($_SESSION["kanriMode"] == false && $csv["deleteData"] == false)){ $_SESSION["csvArray"][] = $csv; } } if(fclose($fp) == false){ $msg = "CSVファイルのクローズに失敗しました。"; return false; } } //ページ設定の情報を元にデータをソートする usort($_SESSION["csvArray"], "cmp"); //CSVファイルに登録されている全データの件数を取得する $_SESSION["csvTotalCount"] = count($_SESSION["csvArray"]); return true; } //usortで呼び出す比較関数 function cmp ($a, $b) { //ソート指定されている項目がフォーム設定により無くなっている場合はソートできないので何もしない if(isset($a[$_SESSION["sortItem"]]) == false){ return 0; } if($a[$_SESSION["sortItem"]] == $b[$_SESSION["sortItem"]]){ return 0; } if($_SESSION["sort"] == "asc"){ return ($a[$_SESSION["sortItem"]] < $b[$_SESSION["sortItem"]]) ? -1 : 1; }else{ return ($a[$_SESSION["sortItem"]] > $b[$_SESSION["sortItem"]]) ? -1 : 1; } } //検索条件に一致するデータを取得する function checkData(){ global $msg; //検索条件をキーワードずつに分割して配列にセットする $keyword = null; $keywordArray = array(); for($i=0;$i\n"); //表示しない項目の表示幅を他の項目に割り当てる $sumAddWidth = 0; if($_SESSION["kanriMode"] == false){ $sumAddWidth += 6; } if($_SESSION["pageData"]["tourokuNo"] == "off"){ $sumAddWidth += 7; } if($_SESSION["pageData"]["countHensin"] == "off"){ $sumAddWidth += 7; } if(count($_SESSION["formData"]) > 0){ foreach($_SESSION["formData"] as $form){ $addWidthArray[$form[1]] = $form[3] + floor($sumAddWidth / count($_SESSION["formData"])); } $addWidthArray[$_SESSION["formData"][0][1]] += $sumAddWidth % count($_SESSION["formData"]); } //管理モードの編集ボタン列に対するヘッダー if($_SESSION["kanriMode"] == true){ print("
"); print(" "); print(""); print("No."); print(""); print("" .$form[0] . ""); print(""); print("返信数"); print("
"; $printCsvData .= "
"; $printCsvData .= ""; $printCsvData .= "
"; $printCsvData .= "
"; $printCsvData .= $csv["tourokuNo"]; $printCsvData .= ""; // if($csv[$form[1]] != null){ //半角全角にかかわらず、51文字目以降は"..."で省略して表示(文字数にタグは含めない) //または
が存在する場合は文字数に関係無くそこで終了 $str = cutString($csv[$form[1]],50); //--------------------------------------------- // 画像の場合はサムネイル表示 // データの並び↓ // 1085044699upload2.JPG // if(eregi("^<',$str); if(!empty($str_tmp[1])) { $str = '<' . $str_tmp[1]; } else { $str = $str_tmp[0] . '>'; } } //--------------------------------------------- //リンク指定されているときはリンクを付加する if($form[6] == "selected"){ //そのリンクが通常表示の場合 if ($_SESSION["pageData"]["newwindow"] == "on"){ //新しい画面表示:リンクにボールド指定されている場合はボールドを付加する if($form[8] == "checked"){ $printCsvData .= "" . $str . ""; } else { $printCsvData .= "" . $str . ""; } } else { //通常表示:リンクにボールド指定されている場合はボールドを付加する if($form[8] == "checked"){ $printCsvData .= "" . $str . ""; } else { $printCsvData .= "" . $str . ""; } } //リンク指定がされていない場合は通常表示 }else{ if($form[8] == "checked"){ $printCsvData .= "" . $str . ""; } else { $printCsvData .= $str; } } }else{ //削除データの場合は最初に表示される列のみに「空」と表示する if($csv["deleteData"] == true && $flagBlank == false){ $printCsvData .= "空"; $flagBlank = true; }else{ $printCsvData .= " "; } } $printCsvData .= "
"; $printCsvData .= $csv["countHensin"]; $printCsvData .= "
"); } if(count($_SESSION["csvArray"]) == 0){ print(" "); }else{ //ページ数を求める $totalPage = floor(count($_SESSION["csvArray"]) / ROW_MAX_COUNT); $totalPage += (count($_SESSION["csvArray"]) % ROW_MAX_COUNT) != 0 ? 1 : 0; //ページ単位のリンクを表示する for($i=1;$i<=$totalPage;$i++){ if($_SESSION["page"] == $i){ print("| " . $i . " | \n"); }else{ print("|" . "" . " " . $i . " " . "" . "| \n"); } } if($_SESSION["page"] == "all"){ print("|全件表示|"); }else{ print("" . "|全件表示|" . ""); } } if($_SESSION["kanriMode"] == true){ print("

"); }else{ print("
"); } if($_SESSION["kanriMode"] == true){ ?>
Version 1.0, Copyrights © 2005-2006 Collexy Project & DATAPOT. All Rights Reserved.
output(); ?>