config.txt read
"; /********************************************* // システム作成開始日:2003/08 // システム最終更新日:2004/04/25 // 一連のソース作成環境 使用エディタ:秀丸エディタ タブ文字数:4文字で閲覧時に最適化 フォント:MSゴシック10pt 折り返し文字数:138文字 // 確認動作環境 TurboLinuxServer7 FTP版のCD-ROMでフルインストール php-4.1.2-14 php.iniにおけるregister_globalsはONで開発しました。他環境で動作させる場合、要注意! OFFにする場合、変数の扱いが厳格になるので、ソースに修正が必要になることを予想している。 途中から、_POSTや_GETに書き換えたりしたが、_SESSIONはまだ未対応(=書き換えていない)。 その他、magic_quotes_gpc = Off、magic_quotes_runtime = Offで開発しました。 postgresql-7.2.2-1 apache-1.3.27-11 openssl-0.9.6k-2 openssh-3.7.1p2-1 // 作成者・連絡先 TMシステム企画 池田英樹 hidekiikeda@new.flowertask.co.jp 090-1796-4302 *********************************************/ /********************************************* * HTML出力処理 * 概 要:HTMLテンプレートの文字列を変換してHTMLを出力する * 引 数:1: テンプレートファイルの名前(*.html) *     2: 置換文字列 *     3: キャッシュを残さないようにブラウザに指示するためのヘッダを送る *     4: 置換されなかった記号を削除するか否か * 戻り値:1  正常 *     0  異常 *********************************************/ Function printout_template($tpl_file, $r_dat, $no_cache="", $no_del='') { //$kei_flg=1; // テンプレートの読み込み $temp = $tpl_file; // echo getcwd() . "\n"; if (file_exists($tpl_file)) { // print "The file $temp exists"; } else { $tpl_file = "../../../bbs_sys/".$temp; // print "The file $temp notexists"; } /* if (file_exists("../".$temp)) { $tpl_file = "../".$temp; } */ if( preg_match( "/DoCoMo/", $_SERVER['HTTP_USER_AGENT'] ) || $kei_flg==1 ) { if (file_exists("./keitai/".$temp)) { $tpl_file = "./keitai/".$temp; } else { $tpl_file = "../../../bbs_sys/keitai".$temp; } if (file_exists("../keitai".substr("$temp", 2,100))) { $tpl_file = "../keitai".substr("$temp", 2,100); } else { } } elseif( preg_match( "/J-PHONE/", $_SERVER['HTTP_USER_AGENT'] ) ) { if (file_exists("keitai/".$temp)) { $tpl_file = "keitai/".$temp; } else { $tpl_file = "../../../bbs_sys/keitai/".$temp; } if (file_exists("../keitai/".$temp)) { $tpl_file = "../keitai/".$temp; } else { } } elseif( preg_match( "/UP\.Browser/", $_SERVER['HTTP_USER_AGENT'] ) ) { if (file_exists("keitai/".$temp)) { $tpl_file = "keitai/".$temp; } else { $tpl_file = "../../../bbs_sys/keitai/".$temp; } if (file_exists("../keitai/".$temp)) { $tpl_file = "../keitai/".$temp; } else { } } // echo "The file $tpl_file open
"; $fp = fopen("$tpl_file", "r"); if (!$fp) { return 0; } $file_data = fread($fp, filesize($tpl_file)); fclose($fp); // PHPで生成したデータに置換する if (is_array($r_dat)){ while (list($mark, $tmp) = each($r_dat)) { $file_data = ereg_replace($mark, $tmp, $file_data); } // 置換されなかった場所を削除 if (!$no_del) { $file_data = preg_replace("/##.*?##/", "", $file_data); } } if ($no_cache) { header( "Expires: Mon, 26 Jul 1997 00:00:00 GMT"); } // 出力 ob_end_flush(); /* if( preg_match( "/DoCoMo/", $_SERVER['HTTP_USER_AGENT'] ) || $kei_flg==1 ) { $file_data = i18n_convert($file_data,'SJIS','EUC_JP'); } elseif( preg_match( "/J-PHONE/", $_SERVER['HTTP_USER_AGENT'] ) ) { $file_data = i18n_convert($file_data,'SJIS','EUC_JP'); } elseif( preg_match( "/UP\.Browser/", $_SERVER['HTTP_USER_AGENT'] ) ) { $file_data = i18n_convert($file_data,'SJIS','EUC_JP'); } */ print $file_data; return 1; } /************************************************************* * 管理者のみ入れる各画面において、各画面でそれぞれこの認証をする * 引数:DBコネクション、管理者ID、管理者PASS **************************************************************/ Function check_login_admin($con, $id, $pass){ global $debug_mode2, $err_msg; // check ID, pass, del, admin_chk $sql = "SELECT user_id, user_name, del, author_chk, author_user_id, contributor_chk, admin_chk " . "FROM m_user " . "WHERE " . "user_id = '$id' " . " AND " . "user_password = '$pass' " . " AND " . "del = 'f' " . " AND " // . "contributor_chk = 't' " // 利用許可の意味(論理削除とは別) // 20031014 本人確認の意味に変更したので削除。 // . " AND " . "admin_chk = 't' " // 管理者権限 ; // debug $result = pg_exec($con, $sql); return $result; } /************************************************************* * 会員のみ入れる各画面において、各画面でそれぞれこの認証をする * 引数:DBコネクション、ユーザID、ユーザPASS **************************************************************/ Function check_login_user($con, $id, $pass){ global $debug_mode2, $err_msg; // ID name del author_chk author_user_id $sql = "SELECT * " . "FROM m_user " . "WHERE " . "user_id = '$id' " . " AND " . "user_password = '$pass' " . " AND " . "del = 'f' " // . " AND " // . "contributor_chk = 't' " // 利用許可の意味(論理削除とは別) // 20031014 本人確認の意味に変更したので削除。 ; // debug if($debug_mode2) $err_msg .= "sql=$sql
\n"; if($debug_mode2) $err_msg .= "session id=" . session_id() . "
\n"; if($debug_mode2) $err_msg .= "id=$id
\n"; if($debug_mode2) $err_msg .= "pass=$pass
\n"; if($debug_mode2) $err_msg .= "開発資料へ
\n"; // debug $result = pg_exec($con, $sql); return $result; } /************************************************************* * trueやfalseを、表示用に「はい」、「いいえ」に切り替える関数 * 引数:DBのbool **************************************************************/ Function change_tf_to_yesno($tf){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($tf=='t') return "はい"; elseif($tf=='f') return "いいえ"; else return "はいいいえ不明"; } /************************************************************* * Noより、表示用に都道府県の文字列を返す * 引数:int **************************************************************/ Function change_address1_to_data($no){ global $debug_mode5, $err_msg; switch($no){ case 1 : $selected_data = "その他"; break; case 2 : $selected_data = "北海道"; break; case 3 : $selected_data = "青森県"; break; case 4 : $selected_data = "岩手県"; break; case 5 : $selected_data = "宮城県"; break; case 6 : $selected_data = "秋田県"; break; case 7 : $selected_data = "山形県"; break; case 8 : $selected_data = "福島県"; break; case 9 : $selected_data = "茨城県"; break; case 10 : $selected_data = "栃木県"; break; case 11 : $selected_data = "群馬県"; break; case 12 : $selected_data = "埼玉県"; break; case 13 : $selected_data = "千葉県"; break; case 14 : $selected_data = "東京都"; break; case 15 : $selected_data = "神奈川県"; break; case 16 : $selected_data = "新潟県"; break; case 17 : $selected_data = "富山県"; break; case 18 : $selected_data = "石川県"; break; case 19 : $selected_data = "福井県"; break; case 20 : $selected_data = "山梨県"; break; case 21 : $selected_data = "長野県"; break; case 22 : $selected_data = "岐阜県"; break; case 23 : $selected_data = "静岡県"; break; case 24 : $selected_data = "愛知県"; break; case 25 : $selected_data = "三重県"; break; case 26 : $selected_data = "滋賀県"; break; case 27 : $selected_data = "京都府"; break; case 28 : $selected_data = "大阪府"; break; case 29 : $selected_data = "兵庫県"; break; case 30 : $selected_data = "奈良県"; break; case 31 : $selected_data = "和歌山県"; break; case 32 : $selected_data = "鳥取県"; break; case 33 : $selected_data = "島根県"; break; case 34 : $selected_data = "岡山県"; break; case 35 : $selected_data = "広島県"; break; case 36 : $selected_data = "山口県"; break; case 37 : $selected_data = "徳島県"; break; case 38 : $selected_data = "香川県"; break; case 39 : $selected_data = "愛媛県"; break; case 40 : $selected_data = "高知県"; break; case 41 : $selected_data = "福岡県"; break; case 42 : $selected_data = "佐賀県"; break; case 43 : $selected_data = "長崎県"; break; case 44 : $selected_data = "熊本県"; break; case 45 : $selected_data = "大分県"; break; case 46 : $selected_data = "宮崎県"; break; case 47 : $selected_data = "鹿児島県"; break; case 48 : $selected_data = "沖縄県"; break; case 49 : $selected_data = "全国区"; break; default : $selected_data = "都道府県不明";break; } return $selected_data; } /************************************************** * 被代理人IDより、被代理人名を調べる。会員登録時のみ使う。 * 引数:DBコネクション、被代理人ID、会員ID、ステータス(参照渡し) ***************************************************/ Function search_author_name($con, $author_user_id, $user_id, &$status){ global $debug_mode, $debug_mode2, $debug_mode3, $err_msg; $mua_sql = "SELECT user_name " . "FROM m_user " . "WHERE " . "user_id = '$author_user_id' " . " AND " . "del = 'f' " . " AND " // . "contributor_chk = 't' " // 20031014 本人確認の意味に変更したので削除。 // . " AND " . "author_chk = 'f' " ; $mua_result = pg_exec($con, $mua_sql); $mua_num = pg_numrows($mua_result); if($author_user_id == ""){ $author_user_name = ""; $status = 2; }elseif($author_user_id == $user_id){ $author_user_name = "エラー:代理人と候補者の指定が同じケースは登録できません。"; $status = 3; }elseif($mua_num){ $mua_h_data = pg_fetch_array($mua_result, 0); $author_user_name = $mua_h_data['user_name']; $status = 1; }else{ $author_user_name = "エラー:指定された候補者は、登録されていないか、候補者としての利用許可がおりていません。"; $status = 4; } return $author_user_name; } /************************************************** * マニフェスト作成者IDより、マニフェスト作成者を求める関数 * muaとは、m_userのauthorからとった頭文字。 * 引数:DBコネクションの参照渡し、m_user テーブルの、user_id値 ***************************************************/ // function search_mua_user_name($con, $id){ function search_mua_user_name(&$con, $id){ global $debug_mode, $debug_mode2, $debug_mode3, $err_msg; $mua_sql = "SELECT user_name " . "FROM m_user " . "WHERE " . "user_number = '$id' " . " AND " . "del = 'f' " // . " AND " // . "contributor_chk = 't' " // 20031014 本人確認の意味に変更したので削除。 ; //echo $mua_sql."
"; $mua_result = pg_exec($con, $mua_sql); $mua_num = pg_numrows($mua_result); if($id==""){ return; }elseif($mua_num){ $mua_h_data = pg_fetch_array($mua_result, 0); $mua_user_name = $mua_h_data['user_name']; pg_freeresult($mua_result); return "$mua_user_name"; }else{ pg_freeresult($mua_result); // エラー。テーブルに該当者がいない。すなわち、DELETEされているか、利用許可が下りていない。 // return "エラー:該当者が登録されていないか、許可が下りていません。会員ID:$id, mua_sql=$mua_sql"; return "エラー:該当者が登録されていないか、許可が下りていません。"; } } /************************************************** * 大カテゴリIDより、大カテゴリ題名を求める関数 * mc1とは、m_category1からとった頭文字。 * 引数:m_category1 テーブルの、category1_id値 ***************************************************/ function search_mc1_category1_title($category1_id){ global $for_pg_connect, $debug_mode, $debug_mode2, $debug_mode3; $mc1_sql = // "SELECT category1_title " "SELECT category1_title, del " . "FROM m_category1 " . "WHERE " . "category1_id = '$category1_id' " // . " AND " // . "del = 'f' " ; $mc1_con = pg_connect("$for_pg_connect"); $mc1_result = pg_exec($mc1_con, $mc1_sql); $mc1_num = pg_numrows($mc1_result); if($mc1_num){ $mc1_h_data = pg_fetch_array($mc1_result, 0); $mc1_category1_title = $mc1_h_data['category1_title']; $mc1_del = $mc1_h_data['del']; pg_freeresult($mc1_result); pg_close($mc1_con); // 論理削除されているかチェック if($mc1_del == 't') $mc1_category1_title .= "(削除済)"; return "$mc1_category1_title"; }else{ pg_freeresult($mc1_result); pg_close($mc1_con); // エラー。テーブルに該当カテゴリがない。 return "カテゴリ不明"; } } /**************************************** * UNIX time値を、年月日の形式に変換する関数 * 引数:Unix Time (秒) * 出力例:03/09/15_11:50:56 *****************************************/ function time_to_yymmdd($unix_time){ global $for_pg_connect, $debug_mode, $debug_mode2, $debug_mode3; return strftime("%y/%m/%d_%H:%M:%S", $unix_time); } /**************************************** * UNIX time値を、年月日の形式に変換する関数 * 引数:Unix Time (秒) * 出力例:03/09/15 * 11:50:56 *****************************************/ function time_to_yymmdd2($unix_time){ global $for_pg_connect, $debug_mode, $debug_mode2, $debug_mode3; return strftime("%y/%m/%d
%H:%M:%S", $unix_time); } /**************************************** * 子のリスト表示画面へのリンクを作成(会員用画面のみ) *****************************************/ Function make_link_to_paragraph_list($paper_id, $paper_title, $dest_url, $css_option){ global $debug_mode, $debug_mode2, $debug_mode3, $err_msg; $str_url = "$dest_url?paper_id=" . urlencode($paper_id) // . "&=" // . urlencode($) ; $encoded_url = htmlspecialchars($str_url); $link_to_paragraph_list_html = "$paper_title\n"; return $link_to_paragraph_list_html; } /**************************************** * 子のリスト表示画面へのリンクを作成(公開用画面のみ) *****************************************/ Function make_link_to_paragraph_list_public($paper_code, $paper_title, $dest_url, $css_option){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $debug_mode6, $err_msg; // paper_codeのことを、マニフェスト識別符号という日本語訳より、mcodeと呼ぶ事にする。 $str_url = "$dest_url?mcode=" . urlencode($paper_code) // . "&=" // . urlencode($) ; $encoded_url = htmlspecialchars($str_url); if($paper_title=="p1_del_deleted"){ $link_to_paragraph_list_public_html = "(削除されました)"; }else{ // $link_to_paragraph_list_public_html = "$paper_title\n"; $paper_code = urlencode($paper_code); $link_to_paragraph_list_public_html = "$paper_title\n"; } return $link_to_paragraph_list_public_html; } /**************************************** * マルチメディアデータを本文に含める表示用 *****************************************/ Function make_paragraph_text_with_multimedia_html($paragraph_text, $multimedia, $position1, $position2, $paper_code, $paragraph_code, $position1, $position2){ global $debug_mode, $debug_mode2, $debug_mode3, $err_msg; if($multimedia == "") return "
$paragraph_text
"; $extension = search_extension($multimedia); $alt = "ファイル名:$multimedia 、ファイルの位置:$position1 、余白への文字の回りこみ:$position2"; $for_altless = "[ ファイルの位置:$position1 、余白への文字の回りこみ:$position2 ]"; $hspace = " hspace='3' "; // 画像の左右に余白を指定 $vspace = " vspace='3' "; // 画像の上下に余白を指定 $max_width = 160; $max_height = 120; // 日本語のファイル名の可能性があるため、URLエンコードしておく $encoded_multimedia = urlencode($multimedia); switch($extension){ case jpg: case jpeg: case gif: case png: case bmp: // 画像が大きすぎたら調節する $filesize = GetImageSize("../multimedia/$paper_code/$paragraph_code/$multimedia"); // ちなみに、GetImageSizeの返り値は4つの要素からなる配列 // 0番目は幅 // 1番目は高さ // 2番目は画像の種類(1ならGIF、2ならJPG、3ならPNG) // 3番目はIMGタグで利用できる文字列 "height=xxx width=xxx" if($filesize[0] > $max_width && $filesize[1] > $max_height){ if(($filesize[0]-$max_width) > ($filesize[1]-$max_height)){ $width = " width='$max_width' "; // 画像の横幅を指定 }else{ $height = " height='$max_height' "; // 画像の高さを指定 } $border = " border='1' "; // 画像の枠線の太さを指定 $too_big = $width . $height . $border; }elseif($filesize[0] > $max_width){ $width = " width='$max_width' "; $border = " border='1' "; $too_big = $width . $border; }elseif($filesize[1] > $max_height){ $height = " height='$max_height' "; $border = " border='1' "; $too_big = $height . $border; } // 画像が大きすぎたらオリジナルサイズへのリンクを貼る if($too_big){ $link_to_original_s = ""; $link_to_original_e = ""; } if($position1=="左寄せ"){ $align = "left"; }elseif($position1=="中央寄せ"){ $align = "center"; }else{ // 右寄せ $align = "right"; } if($position2=="はい" && $position1=="中央寄せ"){ $paragraph_text = << $link_to_original_s $alt $link_to_original_e
$paragraph_text
EOD; }elseif($position2=="いいえ"){ $paragraph_text = << $paragraph_text
$link_to_original_s $alt $link_to_original_e
EOD; }else{ // はい $paragraph_text = << $link_to_original_s $alt $link_to_original_e
$paragraph_text
EOD; } break; default: $paragraph_text = <<$multimedia


$paragraph_text EOD; break; } return $paragraph_text; } /**************************************** * ファイル名から拡張子を調べる * ファイルを読み込んで調べるわけではないので注意 *****************************************/ Function search_extension($filename){ global $debug_mode, $debug_mode2, $debug_mode3, $err_msg; $exploded_filename = explode(".", $filename); for($i=0; $i都道府県不明[no=$no] EOD; } $html .= <<お選びください EOD; $html .= <<北海道 EOD; return $html; } /************************************************************* * 区のマスタ兼、リストボックスHTMLの生成 * Noより、表示用に区のselectedも付加する * 引数:int **************************************************************/ // Function make_constituency2_list($no){ Function make_constituency2_list($no, $other_bool){ global $debug_mode5, $err_msg; if($no<0 || 30<$no){ $html = <<区不明[no=$no] EOD; return $html; } if(!$no) $non_selected = " selected"; else $selected[$no] = " selected"; if($other_bool) $other_value = ""; else $other_value = "1"; $html = << EOD; return $html; } /**************************************** * XSS,SQLインジェクション対策 * * 引数:char,bool,bool,bool * 戻り値:char *****************************************/ Function chk_input_for_xss_sqlinjection($input, $simple_bool, $url_bool, $sql_bool){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; $normal_trans = array( "\(" => "(", "\)" => ")", "\{" => "{", "\}" => "}", "\;" => ";", "\\" => "¥", "\!" => "!", "?" => "(株)", "?" => "1.", "?" => "2.", "?" => "3.", "?" => "4.", "?" => "5.", "?" => "6.", "?" => "7.", "?" => "8.", "?" => "9.", "?" => "10.", "<" => "<", ">" => ">", "\"" => """, "\'" => "'", "0x09" => " ", "#" => "#", "\$" => "$", "%" => "%", "\:" => ":", "?" => "?", "&" => "&", "`" => "`", "*" => "*", "=" => "=" ); $url_trans = array( "\(" => "(", "\)" => ")", "\{" => "{", "\}" => "}", "\;" => ";", "\\" => "¥", "\!" => "!", "<" => "<", ">" => ">", "\"" => """, "\'" => "'", "0x09" => "", " " => "" ); $sql_trans = array( "\(" => "(", "\)" => ")", "\{" => "{", "\}" => "}", "\;" => ";", "\\" => "¥", "\!" => "!", "<" => "<", ">" => ">", "\"" => "”", "\'" => "’", "0x09" => " ", "#" => "#", "\$" => "$", "%" => "%", "\:" => ":", "?" => "?", "&" => "&", "`" => "`", "*" => "*", "=" => "=" ); $simple_trans = array( "
" => " ", "
" => " ", "<" => "<", ">" => ">", "\"" => """, "\'" => "'", "0x09" => " ", "&" => "&" ); if($simple_bool) $modified_input = strtr($input, $simple_trans); elseif($url_bool) $modified_input = strtr($input, $url_trans); else $modified_input = strtr($input, $normal_trans); // $modified_input = strtr($input, $sql_trans); // strtr -- 特定の文字を変換する // string strtr ( string str, string from, string to) // strtrのオプションパラメータtoおよびfromは、PHP 4.0.0で追加されました。 return $modified_input; } /**************************************** * 表示用に、性別(男、女)を返す * 引数:DBのbool * 戻り値:char *****************************************/ Function change_sex_to_data($sex){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($sex=='t') return "男"; elseif($sex=='f') return "女"; else return "性別不明"; } /**************************************** * 表示用に、生年月日(年/月/日)を返す * 引数:char,char,char(DB的にはint,int,int) * 戻り値:char *****************************************/ Function change_birth123_to_data($birth1, $birth2, $birth3){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($birth1=="" || $birth1=="0" || $birth2=="" || $birth2=="0" || $birth3=="" || $birth3=="0") return ""; if($birth1 < "1870" || "2100" < $birth1) return "年不明"; if($birth2 < "1" || "12" < $birth2) return "月不明"; if($birth3 < "1" || "31" < $birth3) return "日不明"; return "$birth1/$birth2/$birth3"; } /**************************************** * 表示用に、年令を返す * 引数:char(DB的にはint) * 戻り値:char *****************************************/ Function change_age_to_data($age){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($age=="" || $age=="0") return ""; if($age < "0" || "135" < $age) return "年令不明"; return "$age"; } /**************************************** * 表示用に、郵便番号を返す * 引数:char * 戻り値:char *****************************************/ Function change_yubin12_to_data($yubin1, $yubin2){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($yubin1=="" || $yubin1=="0" || $yubin2=="" || $yubin2=="0") return ""; if($yubin1 < "0" || "9999" < $yubin1 || $yubin2 < "0" || "99999" < $yubin2) return "郵便不明"; return "$yubin1-$yubin2"; } /**************************************** * 表示用に、電話、FAX、携帯番号を返す * 引数:char,char,char * 戻り値:char *****************************************/ Function change_tel_to_data($tel1, $tel2, $tel3){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($tel1=="" || $tel1=="0" || $tel2=="" || $tel2=="0" || $tel3=="" || $tel3=="0") return ""; if($tel1 < "0" || "99999" < $tel1 || $tel2 < "0" || "99999" < $tel2 || $tel3 < "0" || "99999" < $tel3) return "番号不明"; return "$tel1-$tel2-$tel3"; } /**************************************** * はいいいえのリストボックス作成(親データにおいて使用する) * 引数:bool,char,char * 戻り値:char *****************************************/ Function make_yesno_listbox_html($bool_data, $field_name, $id){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($bool_data == 't'){ $bool_yesno1 = "はい"; $bool_yesno2 = "いいえ"; $bool_data1 = $id.'=t'; $bool_data2 = $id.'=f'; }else{ $bool_yesno1 = "いいえ"; $bool_yesno2 = "はい"; $bool_data1 = $id.'=f'; $bool_data2 = $id.'=t'; } $selectable_bool_data = << EOD; // debug if($debug_mode4) $err_msg .= "bool_data1=$bool_data1
bool_data2=$bool_data2
\n"; return $selectable_bool_data; } /**************************************** * はいいいえのリストボックス作成2(子データにおいて使用する) * 引数:bool,char,char,char * 戻り値:char *****************************************/ Function make_yesno_listbox_html2($bool_data, $field_name, $id, $id2){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($bool_data == 't'){ $bool_yesno1 = "はい"; $bool_yesno2 = "いいえ"; $bool_data1 = "$id,$id2=t"; $bool_data2 = "$id,$id2=f"; }else{ $bool_yesno1 = "いいえ"; $bool_yesno2 = "はい"; $bool_data1 = "$id,$id2=f"; $bool_data2 = "$id,$id2=t"; } $selectable_bool_data = << EOD; // debug if($debug_mode4) $err_msg .= "bool_data1=$bool_data1
bool_data2=$bool_data2
\n"; return $selectable_bool_data; } /**************************************** * 権限選択のリストボックス作成(親データにおいて使用する) * 引数:bool,char,char * 戻り値:char *****************************************/ Function make_permission_listbox_html($permission, $field_name, $id){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($permission == '1'){ $bool_yesno1 = "読む・書く・コメント"; $bool_yesno2 = "読む・コメント"; $bool_yesno3 = "読む"; $bool_yesno4 = "利用できない"; $bool_data1 = $id.'=1'; $bool_data2 = $id.'=2'; $bool_data3 = $id.'=3'; $bool_data4 = $id.'=4'; } if($permission == '2'){ $bool_yesno2 = "読む・書く・コメント"; $bool_yesno1 = "読む・コメント"; $bool_yesno3 = "読む"; $bool_yesno4 = "利用できない"; $bool_data2 = $id.'=1'; $bool_data1 = $id.'=2'; $bool_data3 = $id.'=3'; $bool_data3 = $id.'=4'; } if($permission == '3'){ $bool_yesno3 = "読む・書く・コメント"; $bool_yesno2 = "読む・コメント"; $bool_yesno1 = "読む"; $bool_yesno4 = "利用できない"; $bool_data3 = $id.'=1'; $bool_data2 = $id.'=2'; $bool_data1 = $id.'=3'; $bool_data3 = $id.'=4'; } if($permission == '4'){ $bool_yesno4 = "読む・書く・コメント"; $bool_yesno2 = "読む・コメント"; $bool_yesno3 = "読む"; $bool_yesno1 = "利用できない"; $bool_data4 = $id.'=1'; $bool_data2 = $id.'=2'; $bool_data3 = $id.'=3'; $bool_data1 = $id.'=4'; } $selectable_bool_data = << EOD; // debug if($debug_mode4) $err_msg .= "bool_data1=$bool_data1
bool_data2=$bool_data2
\n"; return $selectable_bool_data; } /**************************************** * 表示用に、名前の上に仮名を小さく添付させる * 引数:char,char * 戻り値:char *****************************************/ Function add_kana_to_name_data($user_name, $name_kana){ global $debug_mode, $debug_mode2, $debug_mode3, $debug_mode4, $debug_mode5, $err_msg; if($name_kana==""){ $html = $user_name; }else{ $html = << {$user_name} {$name_kana} EOD; } return $html; } /**************************************** * 会員の各データをDBから取り出す。一般公開画面用。管理者には適用不可。 * 引数:DBコネクションの参照渡し、投稿された親データ、代表者データが欲しいのか代理人データが欲しいのか。 * 戻り値:会員データ。 *****************************************/ function search_user_public(&$con, $h_data_p1, $which_user_bool){ global $debug_mode, $debug_mode2, $debug_mode4, $debug_mode5, $debug_mode6, $err_msg, $for_pg_connect; if($which_user_bool==true) $which_user = "author_id"; else $which_user = "contributor_id"; //////// DBより、会員データを読み出す $orderby = "time DESC "; $limit = "1"; $offset = "0"; $mu_sql = "SELECT * " . "FROM m_user " . "WHERE " . "user_number = '{$h_data_p1[$which_user]}' " . "LIMIT $limit " . "OFFSET $offset " ; // なぜかpg_execができないので、いったん閉じて新規のpg_connectを使う。一つあたりの許容量でもあるのだろうか。 // pg_close($con); $con = pg_connect("$for_pg_connect"); $mu_result = pg_exec($con, $mu_sql); $mu_num = pg_numrows($mu_result); if($mu_num){ $h_data_mu = pg_fetch_array($mu_result, 0); $user_data['contributor_chk'] = $h_data_mu['contributor_chk']; $user_data['del'] = $h_data_mu['del']; if($user_data['del']=='t'){ $user_data['user_name'] = "(削除されました)"; return $user_data; } if($user_data['contributor_chk'] == 'f'){ $h_data_mu['user_name'] .= "#"; // 本人確認の取れていないデータが公に出ていることを知らせるため。 } $user_data['user_id'] = $h_data_mu['user_id']; $user_data['user_name'] = $h_data_mu['user_name']; $user_data['pen_name'] = $h_data_mu['pen_name']; // $user_data['user_password'] = $h_data_mu['user_password']; $user_data['name_kana'] = $h_data_mu['name_kana']; // $user_data['sex'] = $h_data_mu['sex']; // $user_data['birth'] = "{$h_data_mu['birth1']}/{$h_data_mu['birth2']}/{$h_data_mu['birth3']}"; // $user_data['age'] = $h_data_mu['age']; // $user_data['email_pc'] = $h_data_mu['email_pc']; // $user_data['yubin'] = "{$h_data_mu['yubin1']}-{$h_data_mu['yubin2']}"; // $user_data['address'] = "{$h_data_mu['address1']} {$h_data_mu['address2']} {$h_data_mu['address3']}"; $user_data['tel'] = "{$h_data_mu['tel1']}-{$h_data_mu['tel2']}-{$h_data_mu['tel3']}"; $user_data['fax'] = "{$h_data_mu['fax1']}-{$h_data_mu['fax2']}-{$h_data_mu['fax3']}"; $user_data['keitai'] = "{$h_data_mu['keitai1']}-{$h_data_mu['keitai2']}-{$h_data_mu['keitai3']}"; $user_data['constituency1'] = change_address1_to_data($h_data_mu['constituency1']); $user_data['constituency2'] = $h_data_mu['constituency2']; if($h_data_mu['constituency1'] <= 1 || 49 <= $h_data_mu['constituency1']){ $user_data['constituency'] = $user_data['constituency1']; }else{ $user_data['constituency'] = "{$user_data['constituency1']}
({$user_data['constituency2']}区)"; } $user_data['political_party'] = $h_data_mu['political_party']; $user_data['hp_url'] = $h_data_mu['hp_url']; $user_data['mail_chk'] = $h_data_mu['mail_manife']; $user_data['author_chk'] = $h_data_mu['author_chk']; // $user_data['admin_chk'] = $h_data_mu['admin_chk']; $user_data['author_user_id'] = $h_data_mu['author_user_id']; $user_data['time'] = $h_data_mu['time']; } pg_freeresult($mu_result); // debug if($debug_mode6) $err_msg .= "mu_sql=$mu_sql
\n"; return $user_data; } /**************************************** * IEのJScriptの特殊なユニコードを、EUC-JPに変換する。 * GET・POST混在システムにおいて、日本語を含む文字列をJScriptのGETもどきでサーバにアップロードしたいときに使う。 * 特殊なユニコードを、PHPが理解できる普通のUTF-8に変換する下請け関数 * 引数:char * 戻り値:char *****************************************/ function uni2utf8($uniescape){ global $debug_mode, $debug_mode2, $debug_mode4, $debug_mode5, $debug_mode6, $err_msg; $c = ""; $n = intval(substr($uniescape, -4), 16); if($n < 0x7F){ // 0000-007F $c .= chr($n); }elseif($n < 0x800){ // 0080-0800 $c .= chr(0xC0 | ($n / 64)); $c .= chr(0x80 | ($n % 64)); }else{ // 0800-FFFF $c .= chr(0xE0 | (($n / 64) / 64)); $c .= chr(0x80 | (($n / 64) % 64)); $c .= chr(0x80 | ($n % 64)); // debug if($debug_mode6) $err_msg .= "[".rawurlencode($c)."]
"; } return $c; } /**************************************** * IEのJScriptの特殊なユニコードを、EUC-JPに変換する。 * GET・POST混在システムにおいて、日本語を含む文字列をJScriptのGETもどきでサーバにアップロードしたいときに使う。 * JScriptが吐く特殊なユニコードを、EUC-JPに変換するメイン関数 * 引数:char * 戻り値:char *****************************************/ function escuni2euc($escunistr){ global $debug_mode, $debug_mode2, $debug_mode4, $debug_mode5, $debug_mode6, $err_msg; $eucstr = ""; while(eregi("(.*)(%u[0-9A-F][0-9A-F][0-9A-F][0-9A-F])(.*)$", $escunistr, $fragment)){ $eucstr = mb_convert_encoding(uni2utf8($fragment[2]) . $fragment[3], 'EUC-JP', 'UTF-8') . $eucstr; $escunistr = $fragment[1]; // debug if($debug_mode6) $err_msg .= "■${fragment[1]}■${fragment[2]}■${fragment[3]}■${eucstr}
"; } return $eucstr; } /** * マニフェストの文字数を調べる */ function sizeofManifest($pcode) { global $for_pg_connect; $sql = "SELECT paper_id, summary FROM paper1 WHERE paper_code = '$pcode'"; $con = pg_connect("$for_pg_connect"); $result = pg_exec($con, $sql); $num = pg_numrows($result); if($num) { //データが1つしか無いという前提で動作する(2つ目以降は無視する) $fetch = pg_fetch_array($result, 0); $paper_id = $fetch['paper_id']; $summary = $fetch['summary']; } $count = mb_strlen($summary); $sql = "SELECT paragraph_text FROM m_paragraph_text WHERE paper_id = '$paper_id'"; $result = pg_exec($con, $sql); $num = pg_numrows($result); if($num) { for($i=0; $i<$num; $i++) { $fetch = pg_fetch_array($result, $i); $text = $fetch['paragraph_text']; $count = $count + mb_strlen($text); } } return $count; } function checkValid($input) { if($input) { if($input == "1") { $result = "あり"; }else if($input == "2") { $result = "なし"; } } else { $result = "なし"; } return $result; } /**************************************** * 現在日付を取得して予定年月日のselect htmlを返す。 *****************************************/ function yotei_select($timeflag){ $yoteis = ""; $y = time(); $Y = strftime("%Y", $y); $M = strftime("%m", $y); $D = strftime("%d", $y); for($i=0; $i<5; $i++){ $YEAR1[$i] = $Y-1; $YEAR2[$i] = $Y; $Y++; } for($i=0;$i<5;$i++){ $yoteis .= "