\n",$name,$option); // echo "\n"; } //////////////////////////////////////////////// // option を表示 // array 表示する配列 // selected 選択されている値 //////////////////////////////////////////////// function print_option ($array, $selected = null){ foreach ($array as $key => $value){ if (!$value){ continue; } if (is_array($selected)){ // multiple if (in_array($key, $selected)){ echo "\n"; } } //////////////////////////////////////////////// // checkbox を表示 // name チェックボックス名 // array 表示する配列 // checked 選択されている値 // shim 隙間 // option //////////////////////////////////////////////// function print_checkbox($name, $array, $checked = null, $option = null){ if ($option){ if (is_array($option)){ foreach ($option as $key => $value){ $options .= " {$key}=\"{$value}\""; } }else{ $options = " {$option}"; } } foreach ($array as $key => $value){ if (!$value){ continue; } if (is_array($checked)){ // multiple if (in_array($key, $checked)){ echo ""; }else{ echo ""; } }elseif($checked == "$key"){ echo ""; }else{ echo ""; } echo "{$value}\n"; } } //////////////////////////////////////////////// // radio を表示 // name チェックボックス名 // array 表示する配列 // checked 選択されている値 // option //////////////////////////////////////////////// function print_radio ($name, $array, $checked = null, $option = null){ if ($option){ if (is_array($option)){ foreach ($option as $key => $value){ $options .= " {$key}=\"{$value}\""; } }else{ $options = " {$option}"; } } foreach ($array as $key => $value){ if (!$value){ continue; } if (is_array($checked)){ // multiple if (in_array($key, $checked)){ echo ""; }else{ echo ""; } }elseif ($checked == "$key"){ echo ""; }else{ echo ""; } echo "{$value}\n"; } } //////////////////////////////////////////////// // QUERY を生成 //////////////////////////////////////////////// function get_query ($type, $array){ switch ($type){ case "insert": foreach ($array as $key => $value){ if ( ($value == "" || is_null($value)) && $value != "0"){ continue; } if ($count){ $temp1 .= ", {$key}"; $temp2 .= ", '{$value}'"; }else{ $temp1 .= " {$key}"; $temp2 .= " '{$value}'"; } $count++; } $query = " ( " . $temp1 . " ) values ( " . $temp2 . " ) "; break; case "update": foreach ($array as $key => $value){ if ($count){ $query .= ", "; } if( ($value == "" || is_null($value)) && $value != "0"){ $query .= "{$key} = null"; }else{ $query .= "{$key} = '{$value}'"; } $count++; } break; } return $query; } //////////////where文の作成///////////////////////////// //$tuikabun配列対応 /////////////////////////////////////////////////////// function attach_where($where_str,$setuzoku,$tuikabun){ if(is_array($tuikabun)){ $setuzoku_str = sprintf(" %s ",$setuzoku); $tuikabun_str = implode($setuzoku_str,$tuikabun); if($where_str == ""){ $where_str = sprintf("where (%s)",$tuikabun_str); }else{ $where_str = sprintf("%s %s (%s)",$where_str,$setuzoku,$tuikabun_str); } return $where_str; } else { if($where_str == ""){ $where_str = sprintf("where (%s)",$tuikabun); }else{ $where_str = sprintf("%s %s (%s)",$where_str,$setuzoku,$tuikabun); } return $where_str; } } //////////////////////////////////////////////// function create_like_where($key_word,$search_filed_var,$where){ $temp = mb_convert_kana($key_word,"KVas","UTF-8"); $keys = explode(' ', $temp); $sql_str = setSqlLike($search_filed_var,$keys); $where = attach_where($where,'and',$sql_str); return $where; } ////////////////チェックボックス/////////////////// function show_check_box($field_name,$value){ if($value == 1){ $out_str=sprintf("",$field_name); } else { $out_str=sprintf("",$field_name); } return $out_str; } /* function photo_resize($dist_w,$dist_h,$source_img_id){ //写真ファイルのリサイズ用 //$dist_w リサイズ後の幅 //$dist_h リサイズ後の高さ //$source_img_id 元画像のイメージID //リターン値 リサイズ後のイメージID $dist_img_id=imageCreatetruecolor($dist_w,$dist_h); ///バックを白で塗りつぶし/////////////////////////////// $white = ImageColorAllocate($dist_img_id,255,255,255); imageFill($dist_img_id,0,0,$white); //////////////////////////////////////////////////////// $source_w = imagesx($source_img_id); $source_h = imagesy($source_img_id); // printf("DEBUG:w=%s",$source_w); // printf("DEBUG:h=%s",$source_h); ///////リサイズ////////////////////////////////////////// if($source_w>$source_h){ //幅が大きい場合 $resize_height=$source_h/($source_w/$dist_w); $resize_h_posi=($dist_h-$resize_height)/2; imagecopyresized($dist_img_id,$source_img_id,0,$resize_h_posi,0,0,$dist_w,$resize_height,$source_w,$source_h); // imagecopyresampled($dist_img_id,$source_img_id,0,$resize_h_posi,0,0,$dist_w,$resize_height,$source_w,$source_h); } elseif($source_w<$source_h) {//高さが大きい場合 $resize_width=$source_w/($source_h/$dist_h); $resize_w_posi=($dist_w-$resize_width)/2; imagecopyresized($dist_img_id,$source_img_id,$resize_w_posi,0,0,0,$resize_width,$dist_h,$source_w,$source_h); // imagecopyresampled($dist_img_id,$source_img_id,$resize_w_posi,0,0,0,$resize_width,$dist_h,$source_w,$source_h); } else { //縦横同じ $resize_width=$dist_w; $resize_height=$dist_h; imagecopyresized($dist_img_id,$source_img_id,5,5,0,0,$resize_width-10,$resize_height-10,$source_w,$source_h); // imagecopyresampled($dist_img_id,$source_img_id,5,5,0,0,$resize_width-10,$resize_height-10,$source_w,$source_h); } return $dist_img_id; } */ function photo_resize2($dist_w,$dist_h,$source_img_id){ //写真ファイルのリサイズ用 //$dist_w リサイズ後の幅 //$dist_h リサイズ後の高さ //$source_img_id 元画像のイメージID //リターン値 リサイズ後のイメージID $source_w = imagesx($source_img_id); $source_h = imagesy($source_img_id); ///////リサイズ////////////////////////////////////////// if($source_w > $dist_w or $source_h > $dist_h){ //縦,横がエリアよりでかいまたは場合 if($source_w > $dist_w and $source_h > $dist_h){ //縦横ともエリアよりでかい場合 if($source_w > $source_h){ //横長写真 $resize_height=$source_h/($source_w/$dist_w); $resize_width = $dist_w; } elseif($source_w < $source_h) { //縦長写真 $resize_width=$source_w/($source_h/$dist_h); $resize_height=$dist_h; } else { //正方形 $resize_width=$dist_w; $resize_height=$dist_h; } } elseif($source_w > $dist_w and $source_h < $dist_h){ //横だけがでかい場合 $resize_height=$source_h/($source_w/$dist_w); $resize_width = $dist_w; } elseif($source_w <= $dist_w and $source_h > $dist_h){ //縦だけがでかい場合 $resize_width=$source_w/($source_h/$dist_h); $resize_height=$dist_h; } $dist_img_id=imageCreatetruecolor($resize_width,$resize_height); imagecopyresized($dist_img_id,$source_img_id,0,0,0,0,$resize_width,$resize_height,$source_w,$source_h); } elseif($source_w > $dist_w){ //横が大きい場合 $resize_height=$source_h/($source_w/$dist_w); $resize_width = $dist_w; } else { //縦横ともエリアより小さいまたは等しい場合 $dist_img_id = $source_img_id; //何もしない } return $dist_img_id; } /* /////////////////////////////////////////////////////// // ワイルドカードをsql用に置き換え // 「*」->「%」 「?」->「_」 /////////////////////////////////////////////////////// function wild2forsql ($change_word){ $changed_word = str_replace("*","%",$change_word); $changed_word = str_replace("?","_",$changed_word); return $changed_word; } */ //////////////////////////////////////////////////////// // サニタイズ // 配列対応 //////////////////////////////////////////////////////// function sanitize ($target){ if($target != ""){ if(is_array($target)){ foreach($target as $key => $value){ $target[$key] = sanitize($value); } } else { $target = htmlspecialchars($target,ENT_QUOTES); // バックスラッシュ削除 if (get_magic_quotes_gpc()) $target = stripslashes($target); } } return $target; } //////////////////////////////////////////////////////// // クロスサイトスクリプティング(数値チェック) // 配列対応 // 数値でなかったらFLASEを返す // 空白、NULLの場合はTRUE //////////////////////////////////////////////////////// function check_numeric ($target){ if($target != ""){ if(is_array($target)){ foreach($target as $key => $value){ if($value != ""){ if (!is_numeric($value)){ return FALSE; exit(); } } } } else { if (!is_numeric($target)){ return FALSE; exit(); } } } return TURE; } //////////////////////////////////////////////////////// // 指定なしの場合の表示用 //////////////////////////////////////////////////////// function null_check ($str,$para){ if($para == 1){ $message = "変更なし"; } else { $message = "指定なし"; } if($str == ""){ $str = $message; } else { $str = $str; } return $str; } /* //////////////////////////////////////////////// // ID PASSのチェック //////////////////////////////////////////////// function admin_id_pass_check($login_id,$login_password){ if($login_id == "" or $login_password == ""){ return FALSE; exit(); } // config.incのチェック if($login_id == ADMIN_ID and $login_password == ADMIN_PASS){ return TURE; } else { return FALSE; } } //////////////////////////////////////////////// // ID PASSのチェック(member用) //////////////////////////////////////////////// function member_id_pass_check($id,$password){ // DBチェック用 global $conn; unset($query); $query = " select user_tbl.* from user_tbl left outer join group_tbl on"; $query .= " user_tbl.group_id = group_tbl.serial_no"; $query .= " where user_tbl.mail = '{$id}'"; $query .= " and user_tbl.pass = '{$password}'"; $query .= " and user_tbl.delete_flg = 2"; $query .= " and group_tbl.user_division = 1"; $result = pg_exec($query); $count_all =pg_numrows($result); if($count_all != 1){ return FALSE; } else { $user_pref[0] =pg_result($result,0,'serial_no'); $user_pref[1] =pg_result($result,0,'handle_name'); $user_pref[2] =pg_result($result,0,'group_id'); // $user_pref[3] =pg_result($result,0,'upload_auth_flg'); // $user_pref[4] =pg_result($result,0,'news_auth_flg'); return $user_pref; } pg_freeresult($result); } */ //////////////////////////////////////////////////////// // ユーザログイン // $id // $pass // 認証失敗 return FALSE // 認証成功 return $user_parameter配列 // 注意 delete_flg //////////////////////////////////////////////////////// //ユーザのログイン処理(引数:入力ID、入力パスワード) function open_login($input_id, $input_passwd){ global $conn; $query = " select * from user_tbl"; $query .= " where id = '{$input_id}'"; $query .= " and pass = '{$input_passwd}'"; $query .= " and delete_flg = 2"; $query .= " and active_flg = 1"; $rtn = pg_exec($conn,$query); $count_all = pg_numrows($rtn); if($count_all == 1){ $data = pg_fetch_object($rtn); $user_parameter['login_id'] = $input_id; $user_parameter['login_pass'] = $input_passwd; $user_parameter['serial_no'] = $data->serial_no; $user_parameter['group_bit_flg'] = $data->group_bit_flg; // $user_parameter['user_division'] = $data->user_division; // $user_parameter['handle_name'] = sprintf("%s %s",$data->second_name,$data->first_name); /* //最終ログイン取得 $sql = "select * from log_tbl where"; $sql .= " user_serial_no = '".$user_parameter['serial_no']."'"; $sql .= " and action='login'"; $sql .= " order by registration_day desc offset 0 limit 1"; $rtn = pg_exec($conn,$sql); $log_data = pg_fetch_object($rtn); $user_parameter['last_login'] = $log_data->registration_day; */ $return_val = $user_parameter; } else { $return_val = FALSE; } pg_freeresult($rtn); return $return_val; } //ユーザがログインされているかどうかセッションを使ってチェック //変数:$_SESSION["user"]["login_id"] // $_SESSION["user"]["login_pass"] //どちらかがセットされていないばあいFALSE //DB上のmail,passが一致しない場合はFALSE function chkLoginSession(){ if (!isset($_SESSION["user"]["login_id"]) || !isset($_SESSION["user"]["login_pass"])){ return false; } else { global $conn; $query = " select count(*) as count_all from user_tbl"; $query .= " where id = '{$_SESSION["user"]["login_id"]}'"; $query .= " and pass = '{$_SESSION["user"]["login_pass"]}'"; $query .= " and delete_flg = 2"; $query .= " and active_flg = 1"; $rtn = pg_exec($conn,$query); $count_all = pg_numrows($rtn); if ($count_all == 1){ $retval = true; } else { $retval = false; } pg_freeresult($rtn); } return $retval; } /* //ページのパーミッションチェック //ログインは上記chkLoginSessionで確認すみの前提 //変数:コンテンツのID //閲覧不可、編集不可:FALSE //閲覧可・編集不可:1 //閲覧可・編集可:2 //閲覧不可・編集可:3 function chkPermissionSession($contents_id){ if ($contents_id == ""){ return 1; //閲覧のみ可、編集不可 } else { global $conn; $query = " select permitted_group,regist_group_id,disp_flg from cms_tbl"; $query .= " where serial_no = $contents_id"; $rtn = pg_exec($conn,$query); if(pg_num_rows($rtn) != 1){ $retval = FLASE; //該当するレコードが無い } else { $data = pg_fetch_object($rtn); pg_freeresult($rtn); //閲覧チェック if($data->permitted_group != ""){ $content_permission_var = explode("|",$data->permitted_group); if(in_array($_SESSION["user"]["group_id"],$content_permission_var)){ $view = 1; } else { $view = 0; } } else { $view = 0; } //編集チェック if($data->group_id == $_SESSION["user"]["group_id"]){ $edit = 1; } else { $edit = 0; } if($view == 1 and $edit == 0){ $retval = 1; } elseif($view == 1 and $edit == 1){ $retval = 2; } elseif($view == 0 and $edit == 1){ $retval = 3; } else { $retval = FALSE; } } return $retval; } } */ /* function setSqlLike($search_field,$search_word){ // $search_word = pg_escape_string(htmlspecialchars($search_word, ENT_QUOTES)); // $search_word = mb_convert_kana($search_word,"s"); $search_word = str_replace(" "," ",$search_word); $search_word_array = mb_split(' ',$search_word); foreach($search_word_array as $key=>$value){ if(mb_ereg("\#039.*?\#039",$value)){ $value = str_replace("'","",$value); $temp = sprintf("%s like '%s'",$search_field,$value); $search_sql_var[] = $temp; } else if(mb_ereg("[\*\?]",$value)){ $temp = sprintf("%s like '%s'",$search_field,$value); $temp = str_replace("*","%",$temp); $temp = str_replace("?","_",$temp); $search_sql_var[] = $temp; } else { $search_sql_var[] = sprintf("%s like '%%%s%%'",$search_field,$value); } } $search_sql_str = implode(" and ",$search_sql_var); // return " and " . $search_sql_str; return $search_sql_str; } */ //////////////検索キーワードの分割//////////////// //全角空白または半角空白で検索キーワードを分割し配列で返す。 //余分な空白の削除 //空白だけだった場合はFALSEを返す //$keyword フォームで入力された文字列 /////////////////////////////////////////////// function divide_keyword($keyword){ if($keyword != ""){ $keyword = str_replace(" "," ",$keyword); //全角スペース置き換え $keyword_var = explode(" ",$keyword); foreach($keyword_var as $key => $value){ if($value != ""){ $return_var[] = $value; } } if(!is_array($return_var)){ return FALSE; } else { return $return_var; } } else { return FALSE; } } //////////////検索用sqlの作成//////////////// //like文を作成します。 //配列対応 //$field 検索フィールド名(配列可) //$word 検索キーワード(配列可) /////////////////////////////////////////////// function setSqlLike($field,$word){ if($field != "" and $word != ""){ if(is_array($field) and is_array($word)){ //どっちも配列 //ワード毎 foreach($word as $key => $value){ $search_sql_tmp_var = array(); foreach($field as $key1 => $value1){ if($value1 == "bunrui"){ //配列型フィールド対応(bunrui) $search_sql_tmp_var[] = sprintf("'%s' = ANY (%s)",$value,$value1); } else { $search_sql_tmp_var[] = sprintf("%s like '%%%s%%'",$value1,$value); } } if(is_array($search_sql_tmp_var)){ $search_sql_var[] = sprintf("(%s)",implode(" or ",$search_sql_tmp_var)); } } } elseif (is_array($field) and !is_array($word)){ //フィールドのみ配列 $search_sql_tmp_var = array(); foreach($field as $key => $value){ if($value == "bunrui"){ //配列型フィールド対応(bunrui) $search_sql_tmp_var[] = sprintf("'%s' = ANY (%s)",$value,$word); } else { $search_sql_tmp_var[] = sprintf("%s like '%%%s%%'",$value,$word); } } if(is_array($search_sql_tmp_var)){ $search_sql_var[] = sprintf("(%s)",implode(" or ",$search_sql_tmp_var)); } } elseif (!is_array($field) and is_array($word)){ //ワードのみ配列 foreach($word as $key => $value){ if($field == "bunrui"){ //配列型フィールド対応(bunrui) $search_sql_tmp_var[] = sprintf("'%s' = ANY (%s)",$field,$value); } else { $search_sql_tmp_var[] = sprintf("%s like '%%%s%%'",$field,$value); } } if(is_array($search_sql_tmp_var)){ $search_sql_var[] = sprintf("(%s)",implode(" or ",$search_sql_tmp_var)); } } else { //どちらも配列じゃない場合 if($field == "bunrui"){ //配列型フィールド対応(bunrui) $search_sql_var[] = sprintf("'%s' = ANY (%s)",$field,$word); } else { $search_sql_var[] = sprintf("%s like '%%%s%%'",$field,$word); } } return $search_sql_var; } else { //どちらかが空白のとき return NULL; } } //////////////FOR_CMS//////////////////////// //////////////////////////////////////////////// // sort_noの最大値を取得 //////////////////////////////////////////////// function get_next_sort_no($table_name){ global $conn; unset($query); $query = " select max(sort_no) as sort_no"; $query .= " from {$table_name}"; $result = pg_exec($query); $max_sort_no =pg_result($result,0,'sort_no'); pg_freeresult($result); return $max_sort_no + 1; } /* //////////////////////////////////////////////// // 階層名を取得 //////////////////////////////////////////////// function get_title ($seral_no){ global $conn; unset($query); $query = " select title "; $query .= " from cms_tbl "; $query .= " where serial_no = '{$seral_no}' "; $result = pg_exec($query); if(pg_numrows($result) > 0){ $title =pg_result($result,0,'title'); pg_freeresult($result); return $title; } else { return NULL; } } //////////////////////////////////////////////// // コンテンツの管理用グループIDを取得 //////////////////////////////////////////////// function get_content_group_id ($serial_no){ if($serial_no != ""){ global $conn; unset($query); $query = " select regist_gropu_id "; $query .= " from cms_tbl "; $query .= " where serial_no = '{$serial_no}' "; $result = pg_exec($query); if(pg_numrows($result) > 0){ $regist_gropu_id =pg_result($result,0,'regist_gropu_id'); pg_freeresult($result); return $regist_gropu_id; } else { return FALSE; } } else { return FALSE; } } //////////////////////////////////////////////// // GET用の文字列 を生成 //////////////////////////////////////////////// function get_get_str ($array){ foreach($array as $key => $value){ if($tmp_1 == ""){ $tmp_1 = sprintf("%s=%s",$key,$value); } else { $tmp_1 .= sprintf("&%s=%s",$key,$value); } } return $tmp_1; } //////////////////////////////////////////////// // 親番号を取得 //////////////////////////////////////////////// function get_parent_no ($serial_no){ if($serial_no > 0){ global $conn; unset($query); $query = " select parent_no "; $query .= " from cms_tbl "; $query .= " where serial_no = '{$serial_no}' "; $result = pg_exec($query); $parent_no =pg_result($result,0,'parent_no'); pg_freeresult($result); return $parent_no; } else { return NULL; } } //////////////////////////////////////////////// // levelを取得 //////////////////////////////////////////////// function get_level ($serial_no){ if($serial_no > 0){ global $conn; unset($query); $query = " select level "; $query .= " from cms_tbl "; $query .= " where serial_no = '{$serial_no}' "; $result = pg_exec($query); $level =pg_result($result,0,'level'); pg_freeresult($result); return $level; } else { return NULL; } } /////////////////////////////////////////////////////// // テーブルからフィールド名をdistinctで取り出し // "data"=>"data"の配列を返す /////////////////////////////////////////////////////// function get_no_overlap_array ($table,$field){ global $conn; unset($query); $query = " select distinct $field,serial_no "; $query .= " from $table "; $query .= " order by serial_no desc"; $result = pg_exec($query); while($data = pg_fetch_object($result)){ $array[$data->$field]=$data->$field; } pg_freeresult($result); return $array; } */ /////////////////指定階層を配列で取得////////////////// /** * 説明 * 親番号の配下を配列で返します。 * @$input_code string : 親番号 parent_no (空白はトップ) * @$arr_data array : 使用する配列 * @return (key:value=の変数、val:表示名) */ /* function get_down_layer($input_code){ global $conn; unset($query); $query = " select *"; $query .= " from cms_tbl "; if($input_code == ""){ //$query .= " where serial_no is null and disp_flg = 1 order by sort_no desc"; } else { if(is_array($input_code)){ foreach($input_code as $key => $value){ $attach_str = sprintf("parent_no=%s",$key); $where = attach_where($where,"or",$attach_str); } $query = sprintf("%s %s",$query,$where); } else { $query .= " where parent_no = $input_code "; } } $query .= " and disp_flg = 1 order by sort_no"; $rtn = pg_exec($conn,$query); while($data = pg_fetch_object($rtn)){ //コンテンツのパーミッション配列作成 $retun_array[$data->serial_no]['title'] = $data->title; $retun_array[$data->serial_no]['window_flg'] = $data->window_flg; $retun_array[$data->serial_no]['url'] = $data->url; $permitted_group_var = explode("|",$data->permitted_group); $retun_array[$data->serial_no]['permission'] = $permitted_group_var; } pg_freeresult($rtn); if(is_array($retun_array)){ return $retun_array; } else { return FALSE; } } //////////////////////////////////////////////////////////////////////////// // 閲覧用パーミッションのチェック // コンテンツのパーミッションにグループがあったらTRUE // 管理者グループだったらTRUE // それ以外はFALSE //////////////////////////////////////////////////////////////////////////// function browse_permission_check($group_id,$content_permission_var){ global $conn; if($group_id != "" and is_array($content_permission_var)){ $sql = "select user_division from group_tbl where serial_no=$group_id"; $return = pg_exec($conn,$sql); $user_division = pg_result($return,0,'user_division'); if($user_division == 1){ return TRUE; } else { if(in_array($group_id,$content_permission_var)){ return TRUE; } else { return FALSE; } } } else { return FALSE; } } //////////////////////////////////////////////////////////////////////////// // 編集パーミッションのチェック // コンテンツの管理者グループだったらTRUE // それ以外はFALSE //////////////////////////////////////////////////////////////////////////// function edit_permission_check($login_group_id,$content_group_id){ if($login_group_id != "" and $content_group_id != ""){ if($login_group_id == $content_group_id){ return TRUE; } else { return FALSE; } } else { return FALSE; } } //////////////////////トップ階層以下表示用(トップ用)////////////////////// function show_content2($target_id,$url,$start_separator,$end__separator,$user_permission){ $content_array = get_down_layer($target_id); if($content_array){ $tmp = ""; foreach($content_array as $key => $value){ $content_array[$key]['title'] = mb_strimwidth($content_array[$key]['title'],0,30,"…","UTF-8"); if($content_array[$key]['window_flg'] == 2 and $content_array[$key]['url'] != ""){ $target_str = "target=_blank"; } else { $target_str = ""; } //パーミッションのチェック if(browse_permission_check($user_permission,$content_array[$key]['permission'])){ $tmp .= sprintf("%s%s%s\n",$start_separator,$url,$key,$target_str,$content_array[$key]['title'],$end__separator); } else { $tmp .= sprintf("%s",$start_separator,ROOT_URL,$key,$target_str); $tmp .= sprintf("%s",$content_array[$key]['title']); $tmp .= sprintf("%s\n",$end__separator); } } echo $tmp; } else { echo "
  • 現在作業中です。
  • "; } } //////////////////////////////////////////////////// //////////////////////トップ階層以下表示用(トップ以外用)////////////////////// function show_content($target_id,$url,$user_permission){ $content_array = get_down_layer($target_id); if($content_array){ // ksort($content_array); foreach($content_array as $key => $value){ //文字列を丸める $content_array[$key]['title'] = mb_strimwidth($content_array[$key]['title'],0,30,"…","UTF-8"); if($content_array[$key]['window_flg'] == 1){ $target_str = ""; } else { $target_str = "target=_new"; } if($tmp == ""){ $tmp = sprintf("
  • %s
  • ",$url,$key,$target_str,$content_array[$key]['title']); } else { $tmp .= sprintf("
  • %s
  • ",$url,$key,$target_str,$content_array[$key]['title']); } } echo $tmp; } else { echo "現在表示するコンテンツがありません。"; } } //////////////////////////////////////////////////// /////////////////////////////////////////////////////// // カウンタ登録 /////////////////////////////////////////////////////// function counter_write($serial_no){ $now = date("Y-m-d H:i:s"); global $conn; unset($query); $query = " insert into count_tbl "; $query .= " (registration,cms_tbl_serail_no,remote_ip)"; $query .= " values "; $query .= " ('".$now."',".$serial_no.",'".$_SERVER['REMOTE_ADDR']."')"; // echo $query; $result = pg_exec($conn,$query); pg_freeresult($result); } */ ///////$_FILES['---']['type']から拡張子取得///////// function get_extention($type){ // echo $type; switch($type){ case strstr($type,"application/pdf"): return "pdf"; break; case strstr($type,"application/msword"): return "doc"; break; case strstr($type,"application/vnd.openxmlformats-officedocument.wordprocessingml.document"): return "docx"; break; case strstr($type,"application/vnd.ms-excel"): return "xls"; break; case strstr($type,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"): return "xlsx"; break; case strstr($type,"application/x-js-taro"): return "jtd"; break; case strstr($type,"image/pjpeg"): return "jpg"; break; case strstr($type,"image/gif"): return "gif"; break; case strstr($type,"image/x-png"): return "png"; break; case strstr($type,"audio/mpeg"): return "mp3"; break; default: return FALSE; } } /* ////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////// // ファイルの有無のチェック /////////////////////////////////////////////////////// function get_files_name($search_dir,$search_key){ if($handle = opendir($search_dir)){ while(false !== ($file = readdir($handle))){ if(ereg($search_key,$file)){ $exi_file[] = $file; } } closedir($handle); if(is_array($exi_file)){ return $exi_file; } else { return FALSE; } } else { return FALSE; } } ////////////////cms//////////////////////////////////// */ //////////////////////////////////////////////////////// // DB登録時のIDの重複チェック // $table テーブル名 // $id_field チェックするフィールド名 // $id チェックするフィールド内容 // $exclusion_serial_noチェックから除外するシリアル番号(更新時など) // $option チェック時に付加するsql 例 not delete_flg = 1 or delete_flg is null等 // 注意:optionは and ($option)となる // 重複が無い場合はTRUE,重複ありの場合はFALSEを返す。 //////////////////////////////////////////////////////// function unique_field_check($table,$id_field,$id,$exclusion_serial_no = NULL,$option = NULL){ // DBチェック用 global $conn; unset($query); $query = " select count(*) as count_all "; $query .= " from ".$table; $query .= " where ".$id_field." = '{$id}'"; if($option != NULL){ $query .= " and (".$option.")"; } if($exclusion_serial_no != NULL){ $query .= " and serial_no != ".$exclusion_serial_no; } $result = pg_exec($query); $count_all =pg_fetch_result($result,0,'count_all'); if($count_all == 0){ return TRUE; } else { return FALSE; } pg_freeresult($result); } /* //////////////////////////////////////////////////////// // 管理ユーザ用ディレクトリ作成 // 既に作成済みの場合はなにもしない // ディレクトリ名(group_tbl:serial_no) // 成功 TRUE // 失敗 FALSE //////////////////////////////////////////////////////// function create_user_dir($serial_no,$user_root){ $dir_path = sprintf("%s/%s",$user_root,$serial_no); if(is_dir($dir_path)){ return TRUE; } else { if(mkdir($dir_path)){ return TRUE; } else { return FALSE; } } } */ //////////////////////////////////////////////////////// // ニュースの有無のチェック //////////////////////////////////////////////////////// function is_news($group_flg){ $today=date("Y-m-d",time()); $start_day_str = sprintf(" and (start_day <= '%s' or start_day is null)",$today); $end_day_str = sprintf(" and (end_day >= '%s' or end_day is null)",$today); // DBチェック global $conn; unset($query); $sql = " select count(*) as count_all from news_tbl"; $sql .= " where disp_flg=1 and group_flg=$group_flg".$start_day_str.$end_day_str; $result = pg_exec($conn,$sql); $count_all = pg_result($result,0,'count_all'); if($count_all > 0){ return TRUE; } else { return FALSE; } pg_freeresult($result); } function towareki($seireki_str){ if($seireki_str != ""){ $seireki_var = explode("-",$seireki_str); // 元号の取得 switch($seireki_var[0]){ case $seireki_var[0] >= 1989: $gengo="平成"; $year=$seireki_var[0]-1988; break; case $seireki_var[0] >= 1926: $gengo="昭和"; $year=$seireki_var[0]-1925; break; case $seireki_var[0] >= 1912: $gengo="大正"; $year=$seireki_var[0]-1911; break; case $seireki_var[0] >= 1868: $gengo="明治"; $year=$seireki_var[0]-1867; break; default: return FALSE; } } $year_str = sprintf("%s%s年",$gengo,(int)$year); if($seireki_var[1] != ""){ $month_str = sprintf("%s月",(int)$seireki_var[1]); } else { $month_str = ""; } if((int)$seireki_var[2] != ""){ $day_str = sprintf("%s日",(int)$seireki_var[2]); } else { $day_str = ""; } $return_str = sprintf("%s%s%s",$year_str,$month_str,$day_str); return $return_str; } //////////////////////////////////////////////////////// // DB登録時リロードチェック // $sql //////////////////////////////////////////////////////// function reload_check($sql){ // DBチェック用 global $conn; unset($query); $query = $sql; $result = pg_exec($query); $count_all =pg_numrows($result); if($count_all == 0){ return TRUE; } else { return FALSE; } pg_freeresult($result); } //////////////////////////////////////////////////////// // DBにデータが存在するかどうかのチェック // $table // $serial_no //////////////////////////////////////////////////////// function db_is_data($table,$serial_no){ // DBチェック用 global $conn; unset($query); $query = "select count(*) as count from $table where serial_no=$serial_no"; //echo $query; $result = pg_exec($conn,$query); $count_all =pg_result($result,0,"count"); if($count_all == 1){ return TRUE; } else { return FALSE; } pg_freeresult($result); } /* //////////////////////////////////////////////////////// // 講座の募集期間のチェック // $serial_no // return 1 受付中 // return 2 募集期間前 // return 3 募集期間終了 // return FALSE なんじゃそれ //////////////////////////////////////////////////////// function check_bosyu_period($serial_no){ // DBチェック用 $now_date = date("Y-m-d"); $now_time = date("G"); global $conn; unset($query); $query = "select bosyu_start,bosyu_end from kouza_tbl where serial_no=$serial_no"; $result = pg_exec($conn,$query); $bosyu_start_unix =strtotime(pg_result($result,0,"bosyu_start")); $bosyu_end_unix =strtotime(pg_result($result,0,"bosyu_end")); $date_unix = strtotime($now_date); //システム開始日 $system_start_day = SYSTEM_START_DAY; $system_start_day_unix = strtotime($system_start_day); if($bosyu_start_unix <= $date_unix and $bosyu_end_unix >= $date_unix){ if($bosyu_start_unix < $system_start_day_unix){ return 5; } else { //募集開始当日は9時から受付 if($bosyu_start_unix == $date_unix){ if($now_time < (int)UKETUKE_START_TIME){ return 4; } else { return 1; } } else { return 1; } } } elseif($date_unix < $bosyu_start_unix){ return 2; } elseif($bosyu_end_unix < $date_unix){ return 3; } else { return FALSE; } pg_freeresult($result); } //////////////////////////////////////////////////////// // 講座の定員のチェック(プリチェック) // $serial_no // return TRUE (未定員) // return FALSE (定員に達している) // 1: カートに入れる(仮予約)以上 99:キャンセルを除く //////////////////////////////////////////////////////// function pre_check_numbers($kouza_serial_no){ // DBチェック用 global $conn; unset($query); $query = "select numbers from kouza_tbl where serial_no = {$kouza_serial_no}"; $result = pg_exec($conn,$query); $numbers = pg_result($result,0,"numbers"); pg_freeresult($result); $query = "select count(*) as count_all from user_yoyaku_tbl where kouza_serial = {$kouza_serial_no} and state_flg > 0 and state_flg != 99"; $result = pg_exec($conn,$query); $count_all = pg_result($result,0,"count_all"); pg_freeresult($result); if($numbers > $count_all){ return TRUE; } else { return FALSE; } } //////////////////////////////////////////////////////// // 講座の定員のチェック // $serial_no // return TRUE (未定員) // return FALSE (定員に達している) // 2: 確定以上 99:キャンセルを除く //////////////////////////////////////////////////////// function check_numbers($kouza_serial_no){ // DBチェック用 global $conn; unset($query); $query = "select numbers from kouza_tbl where serial_no = {$kouza_serial_no}"; $result = pg_exec($conn,$query); $numbers = pg_result($result,0,"numbers"); pg_freeresult($result); $query = "select count(*) as count_all from user_yoyaku_tbl where kouza_serial = {$kouza_serial_no} and state_flg > 1 and state_flg != 99"; $result = pg_exec($conn,$query); $count_all = pg_result($result,0,"count_all"); pg_freeresult($result); if($numbers > $count_all){ return TRUE; } else { return FALSE; } } //////////////////////////////////////////////////////// // 講座の定員取得 // $serial_no // return 予約数 // 2:ユーザ予約確定 以上 99:キャンセルを除く //////////////////////////////////////////////////////// function get_yoyaku_num($kouza_serial_no){ // DBチェック用 global $conn; unset($query); $query = "select numbers from kouza_tbl where serial_no = {$kouza_serial_no}"; $result = pg_exec($conn,$query); $numbers = pg_result($result,0,"numbers"); pg_freeresult($result); // $query = "select count(*) as count_all from user_yoyaku_tbl where kouza_serial = {$kouza_serial_no} and state_flg > 1 and state_flg != 99"; $query = "select count(*) as count_all from user_yoyaku_tbl where kouza_serial = {$kouza_serial_no} and state_flg > 0 and state_flg != 99"; $result = pg_exec($conn,$query); $count_all = pg_result($result,0,"count_all"); pg_freeresult($result); return $count_all; } //////////////////////////////////////////////////////// // 出欠のチェック // $serial_no // return FLASE 登録無し // return 1 出席 // return 2 欠席 //基本的に一個しかヒットしないはず、複数帰ってきたらFALSE //////////////////////////////////////////////////////// function check_attendance($kouza_serial_no,$user_serial,$jyokou_day){ // DBチェック用 global $conn; unset($query); $query = "select state_flg from attendance_tbl where kouza_serial = {$kouza_serial_no} and user_serial = {$user_serial} and jyukou_day = '{$jyokou_day}'"; $result = pg_exec($conn,$query); if(pg_num_rows($result) == 1){ return pg_result($result,0,state_flg); } else { return FALSE; } pg_freeresult($result); } //////////////////////////////////////////////////////// // 期間( 例:2009-5-1から 2009-5-20)から一日づつの配列を返す // $start 期間初め // $end 期間終わり // return 日付の配列 // NULLチェック等はしていないので呼ぶとき注意 //////////////////////////////////////////////////////// function period2date($start,$end){ $date_tmp = $start; $date_var[] = $date_tmp; while($date_tmp !== $end){ $date_tmp_var = explode("-",$date_tmp); $date_tmp = date("Y-m-d",mktime(0,0,0,$date_tmp_var[1],$date_tmp_var[2]+1,$date_tmp_var[0])); $date_var[] = $date_tmp; } return $date_var; } //////////////////////////////////////////////////////// // 申込番号作成 // $kouza_serial // 講習番号+現在の申込+1 // kouza_tbl のcounterをインクリメント //////////////////////////////////////////////////////// function get_order_no($kouza_serial){ global $conn; unset($query); $query = "select kousyu_no,counter from kouza_tbl where serial_no = {$kouza_serial}"; pg_exec('BEGIN'); $result = pg_exec($conn,$query); $kousyu_no = pg_result($result,0,'kousyu_no'); $counter = pg_result($result,0,'counter'); pg_freeresult($result); //カウンターインクリメント $counter = $counter + 1; $sql = "update kouza_tbl set counter = {$counter} where serial_no = {$kouza_serial}"; $result = pg_exec($conn,$sql); pg_exec('END'); //認定コードから下3桁取得 // $code_str_1 = mb_substr($code_str,12,3); $order_no = sprintf("%s%03d",$kousyu_no,$counter); return $order_no; } */ //////////////////////////////////////////////////////// // 現在の年度取得 //////////////////////////////////////////////////////// function get_current_nendo(){ $year = date("Y"); $month = date("n"); if($month < 4){ $nendo = $year -1; } else { $nendo = $year; } return $nendo; // return 2010; } //////////////////////////////////////////////////////// // 年度選択用配列取得 // システムに登録されている年度(class_tblより取得) // または現在年度から6年前 // 次年度も表示 //////////////////////////////////////////////////////// function get_nendo_var(){ $currernt_nendo = get_current_nendo(); $before = 6; for($i = $currernt_nendo + 1; $i >= ($currernt_nendo - $before) ; $i--){ $nendo_var[$i] = $i; } return $nendo_var; } //////////////////////////////////////////////////////// // 担任選択用配列取得 // 該当年度のuser_tblより取得 //////////////////////////////////////////////////////// function get_tanin_select_var($nendo){ global $conn; $tanin_select_var[""] = "未設定"; $table = "user_tbl"; $require = "serial_no,second_name,first_name"; $where = "where nendo = {$nendo}"; $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); while($data = pg_fetch_object($rtn)){ $tanin_select_var[$data->serial_no] = sprintf("%s %s",$data->second_name,$data->first_name); } return $tanin_select_var; } //////////////////////////////////////////////////////// // 担任名取得 // 該当年度、学年、学級 //////////////////////////////////////////////////////// function get_tanin_name($nendo,$gakunen,$gakkyu_name){ global $conn; $table = "class_tbl as a,user_tbl as b"; $require = "b.second_name as second_name,b.first_name as first_name"; $where = "where a.nendo = {$nendo} and a.gakunen = '{gakunen}' and a.gakkyu_name = '{$gakkyu_name}'"; $where .= " and a.tannin_serial = b.serial_no"; $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); if(pg_num_rows($rtn) != 1){ return FALSE; } else { $data = pg_fetch_object($rtn); $name = sprintf("%s %s",$data->second_name,$data->first_name); return $name; } } /* ///////////////////////////////////////////////////////// // 講習データ取得 // オブジェクトで返す // input 講座テーブル:シリアルナンバー // エラーの場合はFLASEを返す // 講習の期間は、、区切りで$data->periodで返す ///////////////////////////////////////////////////////// function get_kouza_data($serial_no){ global $conn; $table = "kouza_tbl"; $require = "*"; $where = "where serial_no = $serial_no"; $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); if(pg_num_rows($rtn) == 1){ $data = pg_fetch_object($rtn); pg_freeresult($rtn); //講習の期間文字列作成 $sql = "select * from kouza_period_tbl where kouza_serial={$data->serial_no} order by period_start"; $rtn = pg_exec($conn,$sql); unset($period_var); while($period_data = pg_fetch_object($rtn)){ if($period_data->period_end == ""){ $period_var[] = sprintf("%s",towareki($period_data->period_start)); } else { $period_var[] = sprintf("%sから%s",towareki($period_data->period_start),towareki($period_data->period_end)); } } $period_str = implode(",",$period_var); $data->period = $period_str; } else { $data = FALSE; } return $data; } //////////////////////////////////////////////////////// // 講座の定員アラートメール送信 // $serial_no // return TRUE (未定員) // return FALSE (定員に達している->メール送信) //////////////////////////////////////////////////////// function numbers_alert_mail($kouza_serial_no){ // DBチェック用 global $conn; unset($query); $query = "select numbers from kouza_tbl where serial_no = {$kouza_serial_no}"; $result = pg_exec($conn,$query); $numbers = pg_result($result,0,"numbers"); pg_freeresult($result); $query = "select count(*) as count_all from user_yoyaku_tbl where kouza_serial = {$kouza_serial_no} and state_flg > 1 and state_flg != 99"; $result = pg_exec($conn,$query); $count_all = pg_result($result,0,"count_all"); pg_freeresult($result); if($numbers >= $count_all){ //等しいまたは少ない return TRUE; } else { //////メール送信//////// mb_language('ja'); mb_internal_encoding('UTF-8'); //-------------現在日時を取得 $today=date("Y年m月d日",time()); $now=date("H時i分",time()); //--------------------------- $mailto = "support_hp@datacoa.net"; $mailfrom = "support_hp@datacoa.net"; $mailReply_to = "support_hp@datacoa.net"; $mailReturn_Path = "support_hp@datacoa.net"; $subject = "アラート【秋田大学教員免許状更新講習申込システム】"; $mail_message = sprintf("講習シリアル[%s]の定員がオーバーしました。", $kouza_serial_no); $mail_message = sprintf("%s(%s)\n\n%s",$today,$now,$mail_message); //ヘッダ $head .= "Mime-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=ISO-2022-JP\n"; $head .= "Content-Transfer-Encoding: 7bit\n"; $head .= sprintf("From: %s\r\n",$mailfrom); $head .= sprintf("Reply-To: %s\r\n",$mailReply_to); $head .= sprintf("Return-Path: %s\r\n",$mailReturn_Path); $mail_message = mb_convert_encoding($mail_message, "ISO-2022-JP","UTF-8"); $subject = mb_encode_mimeheader($subject); $parameter = "-f ".$mailfrom; mail($mailto,$subject,$mail_message,$head,$parameter); return FALSE; } } */ /////////////コンテンツ管理用/////////////// function get_parent_var(){ global $conn; $parent_var[0] = "親"; unset($query); $query = "select serial_no,name from contents_tbl where parent_serial=0"; $result = pg_exec($conn,$query); while($data = pg_fetch_object($result)){ $parent_var[$data->serial_no] = $data->name; } pg_freeresult($result); return $parent_var; } //////////////////////////////////////////////////////// //日付表示フォーマットの変換 //$date_str Y-m-d H:i:s形式の日付文字列 //option // NULL:Y-m-d // 1:Y-m-d H:i // 2:和暦 年 月 日 // 3:Y/m/d //////////////////////////////////////////////////////// function datetime_format($date_str,$option){ if($date_str != ""){ $date_str_var = explode(" ",$date_str); //日付の書式があっているかのチェック if(ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$date_str_var[0])){ $date_var = explode("-",$date_str_var[0]); } //時間の書式があっているかのチェック if(ereg("([0-9]{2}):([0-9]{2}):([0-9]{2})",$date_str_var[1])){ $time_var = explode(":",$date_str_var[1]); } switch($option){ case 1: if(isset($date_var) and isset($time_var)){ $str = sprintf("%s-%s-%s %s:%s",$date_var[0],$date_var[1],$date_var[2],$time_var[0],$time_var[1]); return $str; } else { return FALSE; } break; case 2: if(isset($date_var)){ $str = sprintf("%s年%s月%s日",towareki($date_var[0]),$date_var[1],$date_var[2]); return $str; } else { return FALSE; } break; case 3: if(isset($date_var) and isset($time_var)){ $str = sprintf("%s/%s/%s",$date_var[0],$date_var[1],$date_var[2]); return $str; } else { return FALSE; } break; default: if(isset($date_var)){ $str = sprintf("%s-%s-%s",$date_var[0],$date_var[1],$date_var[2]); return $str; } else { return FALSE; } } } else { return FALSE; } } //contents_tblからnameを返す function get_page_title($serial_no){ global $conn; $table = "contents_tbl"; $require = "name"; $where = "where serial_no={$serial_no}"; $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); if(pg_num_rows($rtn) == 1){ $page_title = pg_fetch_result($rtn,0,'name'); } else { $page_title = FLASE; } return $page_title; } //////////////////////////////////////////////////////// //ユーザ管理 //グループビットフラグから所属グループ名を返す //////////////////////////////////////////////////////// function get_syozoku_group_name($group_bit_flg){ global $conn; //グループ取得 $table = "group_tbl"; $require = "group_bit_flg,group_name"; $where = "where delete_flg = 2"; $order = "order by sort_no"; $sql = "select {$require} from {$table} {$where} {$order}"; $rtn = pg_exec($conn,$sql); while($data = pg_fetch_object($rtn)){ if(((int)$data->group_bit_flg & (int)$group_bit_flg) === (int)$data->group_bit_flg){ $group_str_var[] = $data->group_name; } } //表示用文字列作成 $group_str = implode(",",$group_str_var); return $group_str; } /////////////////////////////////////////////////////////// //グループビットフラグからアクセス可能コンテンツ配列を返す //$group_bit_flg所属グループビットフラグ /////////////////////////////////////////////////////////// function get_accessable_contents_var($group_bit_flg){ global $conn; //グループ取得 $table = "group_tbl"; $require = "group_bit_flg,allowed_contents_var"; $where = "where delete_flg = 2"; $order = "order by sort_no"; $sql = "select {$require} from {$table} {$where} {$order}"; $rtn = pg_exec($conn,$sql); while($data = pg_fetch_object($rtn)){ if($data->allowed_contents_var != ""){ if(((int)$data->group_bit_flg & (int)$group_bit_flg) === (int)$data->group_bit_flg){ $allowed_contents_var_str = str_replace(array('{','}'),array('',''),$data->allowed_contents_var); $allowed_contents_var = explode(',',$allowed_contents_var_str); //文字列型から数値型へ変換 if(is_array($allowed_contents_var)){ if(is_array($accessable_contents_var)){ $accessable_contents_var = array_merge($accessable_contents_var,$allowed_contents_var); } else { $accessable_contents_var = $allowed_contents_var; } } } } } pg_freeresult($rtn); if(is_array($accessable_contents_var)){ $accessable_contents_var = array_unique($accessable_contents_var); } //sort順に並べ替え $sql = "select serial_no from contents_tbl order by sort_no"; $rtn = pg_exec($conn,$sql); while($data = pg_fetch_object($rtn)){ if(in_array($data->serial_no,$accessable_contents_var)){ $return_array[] = $data->serial_no; } } return $return_array; } /////////////////////////////////////////////////////////// //コンテンツ、オブジェクト取得 //serial_no /////////////////////////////////////////////////////////// function get_contents_object($serial_no){ global $conn; $sql = "select * from contents_tbl where serial_no ={$serial_no}"; $rtn = pg_exec($conn,$sql); if(pg_numrows($rtn) == 1){ $data = pg_fetch_object($rtn); } pg_freeresult($rtn); return $data; } /////////////////////////////////////////////////////////// //グループビットフラグからアクセス可能コンテンツ配列を返す /////////////////////////////////////////////////////////// function get_menu_var($accessable_contents_var){ global $conn; foreach($accessable_contents_var as $key => $value){ $data = get_contents_object($value); $parent_data = get_contents_object($data->parent_serial); $menu_array[$data->parent_serial]['title'] = $parent_data->name; $menu_array[$data->parent_serial]['submenu'][$data->serial_no]['title'] = $data->name; $menu_array[$data->parent_serial]['submenu'][$data->serial_no]['folder_path'] = $data->folder_path; $menu_array[$data->parent_serial]['submenu'][$data->serial_no]['file_name'] = $data->file_name; } return $menu_array; } //////////////////////////////////////////////////////////// //DB用に現在日時を取得 //return XXXX-XX-XX XX:XX:XX //////////////////////////////////////////////////////////// function get_now_for_db(){ return date("Y-m-d H:i:s"); } ///////////////////////////////////////////////////////////// //ログイン後の //user_id user_tbl:serial_noを返す ///////////////////////////////////////////////////////////// function get_session_user_id(){ return $_SESSION["user"]["serial_no"]; } ///////////////////////////////////////////////////////////// //ログの登録 //日時、ユーザシリアルは自動取得 ///////////////////////////////////////////////////////////// function write_log($message){ global $conn; $registration_day = sprintf("'%s'",get_now_for_db()); $user_serial = $_SESSION["user"]["serial_no"]; $operation = sprintf("'%s'",$message); $sql = "INSERT INTO log_tbl (registration_day,user_serial,operation) VALUES ({$registration_day},{$user_serial},{$operation}) "; $rtn = pg_exec($conn,$sql); if($rtn){ return TRUE; } else { return FALSE; } } //////////////////////////////////////////////////////// // 種別配列取得 //////////////////////////////////////////////////////// function get_pull1_select_var(){ global $conn; $table = "pull1_tbl"; $require = "serial_no,name"; $where = ""; $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); while($data = pg_fetch_object($rtn)){ $pull1_select_var[$data->serial_no] = sprintf("%s",$data->name); } return $pull1_select_var; } //////////////////////////////////////////////////////// // 各種テーブルの配列取得 //////////////////////////////////////////////////////// function get_table_array($table_name,$option = null){ global $conn; $table = $table_name; $require = "serial_no,name"; if($option != ""){ $where = sprintf("where %s",$option); } else { $where = ""; } $order = "order by sort_no"; $sql = "select {$require} from {$table} {$where} {$order}"; // echo $sql; $rtn = pg_exec($conn,$sql); while($data = pg_fetch_object($rtn)){ //$key_str = sprintf("''",$data->name); $select_var[$data->name] = sprintf("%s",$data->name); } return $select_var; } //////////////////////////////////////////////////////// // 1フィールドの値取得 // 1個以外はfalse // //////////////////////////////////////////////////////// function get_one_field($table_name,$get_filed,$where_str){ global $conn; $table = $table_name; $require = $get_filed; $where = sprintf("where %s",$where_str); $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); if(pg_num_rows($rtn) == 1){ $data = pg_fetch_object($rtn); $return = $data->$get_filed; } else { $return = FALSE; } return $return; } //////////////////////////////////////////////////////// // 頭文字があるかどうかの判定 // $table_name: テーブル名 // $search_field :検索フィールド // $word:検索文字 //////////////////////////////////////////////////////// function is_initial_word($table_name,$search_field,$word){ global $conn; $table = $table_name; $require = "title"; $where = sprintf("where %s like '%s%%' and disp_flg = '表示'",$search_field,$word); $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); if(pg_num_rows($rtn) > 0){ $return = TRUE; } else { $return = FALSE; } return $return; } //////////////////////////////////////////////// // 新規登録用に物語の番号最大値を取得 // +1を返す //////////////////////////////////////////////// function get_next_monogatari_no(){ global $conn; unset($query); $query = " select max(to_number(number, '000000000000')) as number"; $query .= " from monogatari_tbl"; $result = pg_exec($query); $max_number =pg_result($result,0,'number'); pg_freeresult($result); return $max_number + 1; } //類似データ取得 //serial_noから話のタイトル(まとめ)取得 //取得した、データと同じものがないかlike文で検索 //あった場合配列 serial_no:titleの配列を返す //無い場合はFALSEを返す function get_similar($serial_no){ global $conn; if($serial_no != ""){ //話のタイトル(まとめ)タイトル取得 $table = "monogatari_tbl"; $require = "matome_title"; $where = "where serial_no = $serial_no and disp_flg = '表示'"; $order = "order by number"; $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); if(pg_num_rows($rtn) == 1){ $matome_title = pg_fetch_result($rtn,0,'matome_title'); if($matome_title != ""){ //類似データ取得 $require = "serial_no,title"; $where = "where disp_flg = '表示'"; $where = create_like_where($matome_title,'matome_title',$where); $where .= " and serial_no != {$serial_no}"; //自分は除く $sql = "select {$require} from {$table} {$where}"; $rtn = pg_exec($conn,$sql); if(pg_num_rows($rtn) > 0){ while($data = pg_fetch_object($rtn)){ $similar_var[$data->serial_no] = $data->title; } return $similar_var; } else { return FALSE; } } else { return FALSE; } } else { return FALSE; } } else { return FALSE; } } ?>
    Fatal error: Uncaught Error: Call to undefined function pg_connect() in /var/www/html/monogatari/lib/dbconnct.inc:31 Stack trace: #0 /var/www/html/monogatari/map.php(4): require_once() #1 {main} thrown in /var/www/html/monogatari/lib/dbconnct.inc on line 31