*/ /** * is_Session セッションチェック関数 * @brief セッションチェック関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note */ function is_Session() { // session_start(); session_change_start(); // IDのチェック if( isset($_SESSION["S_ID"]) == False ){ // エラー return( False ); } return( True ); } /** * Set_Session セッション登録関数 * @brief セッション登録関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * @param $id id * @param $mail メールアドレス * @param $sessionFlg セッションフラグ(初期値False) * @return 常にTrue */ function Set_Session($id, $sessionFlg = False) { if ( $sessionFlg == False ) { // session_start(); session_change_start(); } // IDの設定 $_SESSION["S_ID"] = $id; return( True ); } /** * Get_Session セッション取得関数 * @brief セッション取得関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* @param $id [out]id * @param $mail [out]メールアドレス * @return 常にTrue */ function Get_Session(&$id, &$mail) { // session_start(); // IDの取得 $id = $_SESSION["S_ID"]; return( True ); } /** * is_Sequence シーケンスチェック関数 * @brief シーケンスチェック関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコードの見直し修正
* @return シーケンス存在時True */ function is_Sequence() { // session_start(); // シーケンスのチェック if( isset($_SESSION["S_sequence"]) == False ){ // エラー return( False ); } return( True ); } /** * Set_Sequence シーケンス登録関数 * @brief シーケンス登録関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* @param $sequence シーケンス * @return 常にTrue */ function Set_Sequence($sequence) { // session_start(); // sequenceの設定 $_SESSION["S_sequence"] = $sequence; return( True ); } /** * Get_Sequence シーケンス取得関数 * @brief シーケンス取得関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* @param $sequence [out]シーケンス * @return 常にTrue */ function Get_Sequence(&$sequence) { // session_start(); // Sequenceの取得 $sequence = $_SESSION["S_sequence"]; return( True ); } /** * 入口・出口の経路検索用地点IDを取得する。 */ function getOnOffSpotID($spot_name, $dividion, $obj) { $ret = array(); $m_kind = (1 + $dividion); $sql = "select distinct r.onoff_id as tollbooth_id from tbl_matrix m "; $sql .= "inner join tbl_onoff_mst r on (r.matrix_kind = m.matrix_kind and r.matrix_cd = m.matrix_cd) "; $sql .= "where m.matrix_kind = ".$m_kind." "; $sql .= "and m.onoff_name = '".$spot_name."' "; $rs = ExecSql($obj, $sql); if (!$rs || pg_numrows($rs) < 1) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($obj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $sql, __FILE__, __LINE__); CloseDB($obj); }else{ $rows = pg_numrows($rs); for ($row = 0; $row < $rows; $row++){ $DATA = pg_fetch_object($rs, $row); // 結果セットからレコードを1行取得する $ret[] = $DATA->tollbooth_id; } } return $ret; } /** * ランプ入力チェック関数 */ function CheckSpot2( $Name, $dividion ) { $retval = False; $m_kind = (1 + $dividion); // 入力チェック if( empty( $Name ) ){ //入口(出口)を入力してください return -1; } if( IsStringError( $Name ) ){ //該当する入口(出口)名がありません return 0; } $sql = "select onoff_name as spot_name From tbl_matrix "; $sql .= " where onoff_name = " . Q($Name) . " ";; $sql .= " and matrix_kind = " . $m_kind . " "; $sql .= " group by onoff_name"; $obj = OpenDBConnectAssign(AP_CONNECT_STR); if (!$obj) { ErrorLogWrite(ERR_DBOPEN, AP_CONNECT_STR, __FILE__, __LINE__); return 0; } $rs = ExecSql($obj, $sql); if ( !$rs ) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($obj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $sql, __FILE__, __LINE__); CloseDB($obj); return 0; } if ( pg_num_rows($rs) > 0 ){ $retval = 1; }else{ $retval = 0; } CloseDB($obj); //TODO 暫定処置 if($retval == 1){ // if(($Name == LAMP_SANPO) || (($dividion == 1) && ($Name == LAMP_KOBENAGATA))){ if($Name == LAMP_SANPO){ return -2; } } return $retval; } /** * 戻り画面セッション登録関数 */ function Set_BackURL($url) { // session_start(); // BackURLの設定 $_SESSION["S_BackURL"] = $url; return( True ); } /** * 戻り画面セッション取得関数 */ function Get_BackURL(&$url) { // session_start(); // BackURLの設定 if( isset($_SESSION["S_BackURL"]) == True ){ $url = $_SESSION["S_BackURL"]; } return( True ); } /** * セッションクリア関数 */ function Clear_Session() { // セッションの有無をチェック if ( session_id() == "" ) { // session_start(); session_change_start(); } $_SESSION = array(); // 全てのセッション情報の定義をクリア @session_destroy(); // セッション情報を破棄 return( True ); } /** * AccessLogWrite アクセスログ書き込み関数 * @brief アクセスログ書き込み関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* @param $text 動作状況等のログ文字列 * @return 常にTrue */ function AccessLogWrite($text) { $stamp = time(); $user = $_ENV["USER"]; if ( $user != "" ) { $user = "_" . $user; } $fExt = date('ymd', $stamp); $fname = FILE_ACCESSLOG . $user . "." . $fExt; // ファイル名の最後に[.YMMDD]追加 //リクエストHTTPヘッダからUser-Agentを取得 $agent = $_SERVER['HTTP_USER_AGENT']; //POST,GET情報の取得 $info = ""; while (list($req, $reqval) = each ($_REQUEST)) { $info .= $req . "=" . $reqval . ";"; } $stamp = time(); $data = "[" . date('Y/m/d H:i:s', $stamp) . "]"; //YYYY/MM/DD HH:MM:SS $data .= "[" . $agent . "]"; //USER-AGENT if ($_SERVER['HTTP_X_JPHONE_UID']){ $data .= "[" . $_SERVER['HTTP_X_JPHONE_UID'] . "]"; //HTTP_X_JPHONE_UID } $data .= "[" . getenv('REMOTE_ADDR') . "]"; //環境変数から取得した,リモートアドレス $data .= "[" . $_SERVER["PHP_SELF"] . "]"; //アクセスURL $data .= "[" . $info . "]"; //POST情報 $data .= "[" . $text . "]"; //動作状況等のログ $data .= "\n"; WriteLine($fname, $data, 'a+'); //PHPSESSID=NULL対応 if( isset($_GET['PHPSESSID']) ) { //セッション有無チェック if( empty($_GET['PHPSESSID']) ) { header("Location: " . BASE_URL . TOP_URL ); exit(); } } return( True ); } /** * ErrorLogWrite エラーログ書き込み関数 * @brief エラーログ書き込み関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* @param $lvl ログレベル(小さい値ほど致命的なもの) * @param $text 動作状況等のログ文字列 * @param $filename エラー発生ファイル * @param $line エラー発生行 * @return 常にTrue */ function ErrorLogWrite($lvl, $text, $filename, $line) { if (LOG_LVL_AVAIL >= $lvl) { // ログの有効なレベルか? $stamp = time(); $user = $_ENV["USER"]; if ( $user != "" ) { $user = "_" . $user; } $fExt = date('ymd', $stamp); $fname = FILE_ERRORLOG . $user . "." . $fExt; // ファイル名の最後に[.YMMDD]追加 //リクエストHTTPヘッダからUser-Agentを取得 $agent = $_SERVER['HTTP_USER_AGENT']; //POST,GET情報の取得 $info = ""; while (list($req, $reqval) = each ($_REQUEST)) { $info .= $req . "=" . $reqval . ";"; } $stamp = time(); $data = "[" . date('Y/m/d H:i:s', $stamp) . "]"; // YYYY/MM/DD HH:MM:SS $data .= "[" . $agent . "]"; // USER-AGENT $data .= "[" . getenv('REMOTE_ADDR') . "]"; // 環境変数から取得した,リモートアドレス $data .= "[" . $_SERVER["PHP_SELF"] . "]"; // アクセスURL $data .= "[" . $info . "]"; // POST情報 $data .= "[file:" . $filename . "]"; // ファイル名 $data .= "[line:" . $line . "]"; // 行数 $data .= "[" . $text . "]"; // エラー内容 $data .= "\n"; WriteLine($fname, $data, 'a+'); } return( True ); } /** * WriteLine ファイル書き込み関数 * @brief ファイル書き込み関数 * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコードの見直し修正
* @param $fname ファイル名 * @param $data 書き込みデータ * @param $filemode モード * @return 常にTrue */ function WriteLine($fname, $data, $filemode) { // umask(000); // ファイルオープン(Append mode) if (!($fno = fopen($fname, $filemode))) { print "エラーログファイルオープンエラー"; exit(); } fwrite($fno, $data); fclose($fno); return( True ); } /** * OpenDBConnectAssign DBオープン * @brief DBオープン * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* @param $inConnectStr 接続文字列 * @return DBオブジェクト */ function OpenDBConnectAssign($inConnectStr) { $obj = @pg_connect($inConnectStr); if(!$obj) { // エラー処理 ErrorLogWrite(ERR_DBEXEC, $inConnectStr/*pg_last_error($obj)*/, __FILE__, __LINE__); header("Location: " . BASE_URL . LOGOUT_URL . "?dbconnerror=1"); } return $obj; } /** * CloseDB DBクローズ * @brief DBクローズ * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコードの見直し修正
* @param $obj DBオブジェクト */ function CloseDB($obj) { if ($obj != 0) { pg_close($obj); } $obj = 0; } /** * ExecSql SQL実行 * @brief SQL実行 * @author S.Nishimura * @date 2012/02/09 * @version 1.0 * @note * History
* @param $inObj DBオブジェクト * @param $inSql SQL文 * @return 検索結果 */ function ExecSql($inObj, $inSql) { //echo $inSql."

\n"; ErrorLogWrite(ERR_DBEXEC, $inSql, __FILE__, __LINE__); $inSql = mb_convert_encoding($inSql, ENCODE_DB, ENCODE_SCR); $rs = pg_query($inObj, $inSql); if (!$rs) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($inObj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $inSql, __FILE__, __LINE__); } return ($rs); } /** * EncodingDBData DBから取得した文字列をエンコードする * @brief DBから取得した文字列をエンコードする * @author S.Nishimura * @date 2012/02/11 * @version 1.0 * @note * History
* @param $inData エンコード対象文字列 * @return エンコード後文字列 */ function EncodingDBData($inData) { $data = mb_convert_encoding($inData, ENCODE_SCR, ENCODE_DB); return ($data); } /** * ChkInt 入力・数値チェック * @brief 入力・数値チェック * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $str 対象文字列 * @return エラーのときTrue */ function ChkInt($str) { if( empty($str) ){ $ret = True; } else { /* if ( is_numeric($str) ) { // 数値が入力されているか? $ret = False; } else { $ret = True; } */ //0から9の数値が入力されているかチェック if(preg_match("/^[0-9]+$/", $str) == True ){ $ret = False; }else { $ret = True; } } return $ret; } /** * ChkLen 数値長さチェック * @brief 数値長さチェック * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $str 対象文字列 * @return エラーのときTrue */ function ChkLen($str) { if ( chkInt($str) ) { // 入力チェック $ret = True; } else { if ( strlen($str) <= 2 ) { // 2桁以下? $ret = False; }else { $ret = True; } } return $ret; } /** * ChkMon 月入力チェック * @brief 月入力チェック * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $str 対象文字列 * @return エラーのときTrue */ function ChkMon($str) { if ( chkLen($str) ) { // 入力チェック $ret = True; } else { if( ($str >= 1 ) && ( 12 >= $str ) ) { // 1月から12月か? $ret = False; } else { $ret = True; } } return $ret; } /** * ChkYear 年入力チェック * @brief 年入力チェック * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $str 対象文字列 * @return エラーのときTrue */ function ChkYear($str) { if ( chkLen($str) ) { // 入力チェック $ret = True; } else { if( ( $str >= 6 ) && ( 20 >= $str ) ) { // 06年から20年までか? $ret = False; } else { $ret = True; } } return $ret; } /** * Q 文字をシングルクオーテーションでくるむ * @brief 文字をシングルクオーテーションでくるむ * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $s 対象文字列 * @return シングルクオーテーションで囲まれた文字列 */ function Q($s) { return ("'" . $s . "'"); } /** * QQ 文字をダブルクオーテーションでくるむ。 * @brief 文字をダブルクオーテーションでくるむ * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $s 対象文字列 * @return ダブルクオーテーションで囲まれた文字列 */ function QQ($s) { return ("\"" . $s . "\""); } /** * n2z 値が未設定の場合0を返す。。 * @brief 値が未設定の場合0を返す。 * @author K.Takahashi * @date 2011/02/22 * @version 1.0 * @note * History
* 1.0 2011/02/22 K.Kimura 新規作成
* @param $s 対象文字列 * @return 変換された文字列 */ function n2z($s) { if(empty($s)){ return 0; }else{ return $s; } } /** * session_change_start セッションIDがGETで与えられていた場合、セッションIDを変更する * @brief セッションIDがGETで与えられていた場合、セッションIDを変更する * 与えられなかった場合は、セッションを開始する * GETで与えられたセッションIDに変更する * Au端末 HTTPS→HTTP でセッションIDが変わる為、追加 * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/07/20 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* 1.2 2008/12/25 T.Hayashi XSS回避処理追加
*/ function session_change_start() { $s_id = $_GET['PHPSESSID']; if ( !is_null($s_id) && !empty($s_id) ){ $s_id = preg_replace('/^([0-9a-zA-Z]*)\.*/', '$1', trim($s_id)); if ( !empty($s_id) ) { //TODO //echo "session_id($s_id)
\n"; session_id($s_id); } } return session_start(); } /** * RemoveZero 0を取り除く * @brief 0を取り除く * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/06/01 K.Kimura 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $number 対象数値 * @return 結果文字列 */ function RemoveZero($number) { if($number < 10){ return str_replace("0", "", $number); }else{ return $number; } } /** * GetNodeData ノードマスタからノードIDに対応するノード名を取得 * @brief ノードマスタからノードIDに対応するノード名を取得 * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/10/26 Y.henmi 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $pNodeID ノードID * @param $pNodeName [out]ノード名 * @return 存在しないとき:0 DBエラー:-1 正常取得時:1 */ function GetNodeData($pNodeID, &$pNodeName) { $obj = OpenDBConnectAssign(AP_CONNECT_STR); if (!$obj) { ErrorLogWrite(ERR_DBOPEN, AP_CONNECT_STR, __FILE__, __LINE__); return -1; } $sql =""; $sql .= " select node_name "; $sql .= " from tbl_node "; $sql .= " where node_id = '" . $pNodeID . "'"; // echo "DEBUG SQL GetNodeData --START-----------------  ". date("Y/m/d H:i:s",time()) . " \n"; // Debug 201203 // echo "DEBUG SQL ■■■ " . $sql . " \n"; // Debug 201203 $rs = ExecSql($obj, $sql); // echo "DEBUG SQL GetNodeData --END-------------------  ". date("Y/m/d H:i:s",time()) . " \n"; // Debug 201203 if ( !$rs ) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($obj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $sql, __FILE__, __LINE__); CloseDB($obj); return -1; } $rows = pg_numrows($rs); // レコードの総数を取得 $row = 0; // 行カウンタを初期化 $pNodeName = ""; //レコードを配列に取得 while( $row < $rows ){ $DATA = pg_fetch_object( $rs, $row ); // 結果セットからレコードを1行取得する //ルートID $pNodeName = mb_convert_encoding($DATA->node_name,ENCODE_SCR,ENCODE_DB); $row ++; // 行カウンタを進める } if ( $rows ==0 ) { CloseDB($obj); return 0; } CloseDB($obj); return 1; } /** * GetRouteLinkDatas ルートリンクデータからリンクデータを取得する * @brief ルートリンクデータからリンクデータを取得する * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/10/26 Y.henmi 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $pROUTE_ID ルートID * @param $pLINK_SEQUENCE [out]リンク順序 * @param $pLINK_ID [out]リンクID * @return 存在しないとき:0 DBエラー:-1 正常取得時:1 */ function GetRouteLinkDatas($pROUTE_ID, &$pLINK_SEQUENCE, &$pLINK_ID) { $obj = OpenDBConnectAssign(AP_CONNECT_STR); if (!$obj) { ErrorLogWrite(ERR_DBOPEN, AP_CONNECT_STR, __FILE__, __LINE__); return -1; } $sql = ""; $sql .= " select route_id "; $sql .= " , link_sequence "; $sql .= " , link_id "; $sql .= " from tbl_route_link "; $sql .= " where route_id = " . $pROUTE_ID; $sql .= " order by route_id "; $sql .= " , link_sequence "; $rs = ExecSql($obj, $sql); if ( !$rs ) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($obj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $sql, __FILE__, __LINE__); CloseDB($obj); return -1; } $rows = pg_numrows($rs); // レコードの総数を取得 $row = 0; // 行カウンタを初期化 if ( $rows ==0 ) { CloseDB($obj); return 0; } $pLINK_SEQUENCE=array(); $pLINK_ID=array(); //レコードを配列に取得 while( $row < $rows ){ $DATA = pg_fetch_object( $rs, $row ); // 結果セットからレコードを1行取得する //ルートID $pLINK_SEQUENCE[] = $DATA->link_sequence; $pLINK_ID[] = $DATA->link_id; $row ++; // 行カウンタを進める } CloseDB($obj); return 1; } /** * LinkidToGosen() * @brief リンク情報マスタより号線、号線名を取得 * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/10/26 Y.henmi 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $pLINK_ID リンクID * @param $pGOSEN [out]号線番号 * @param $pGOSEN_NAME [out]路線名称(号線番号無) * @return 存在しないとき:0 DBエラー:-1 正常取得時:1 */ function LinkidToGosen($pLINK_ID, &$pGOSEN, &$pGOSEN_NAME) { $obj = OpenDBConnectAssign(AP_CONNECT_STR); if (!$obj) { ErrorLogWrite(ERR_DBOPEN, AP_CONNECT_STR, __FILE__, __LINE__); return -1; } $sql = ""; $sql .= " select gosen_no "; $sql .= " , rosen_name1 "; $sql .= " from tbl_link_id_info "; $sql .= " left outer join tbl_rosen on rosen_no_display = rosen_no "; $sql .= " where link_id = " . Q($pLINK_ID); $sql .= " and rosen_mark_flg = 1"; $rs = ExecSql($obj, $sql); if ( !$rs ) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($obj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $sql, __FILE__, __LINE__); CloseDB($obj); return -1; } $rows = pg_numrows($rs); // レコードの総数を取得 $row = 0; // 行カウンタを初期化 if ( $rows ==0 ) { CloseDB($obj); return 0; } $pGOSEN = ""; $pGOSEN_NAME = ""; //レコードを配列に取得 while( $row < $rows ){ $DATA = pg_fetch_object( $rs, $row ); // 結果セットからレコードを1行取得する //ルートID $pGOSEN = $DATA->gosen_no; $pGOSEN_NAME = mb_convert_encoding($DATA->rosen_name1,ENCODE_SCR,ENCODE_DB); $row ++; // 行カウンタを進める } CloseDB($obj); return 1; } /** * GetRouteDetailString ルートを表示する文字列を取得 * @brief ルートを表示する文字列を取得 * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/10/26 Y.henmi 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $pROUTE_ID ルートID * @param $pLINK_SEQUENCE [out]リンク順序 * @param $pLINK_ID [out]リンクID * @return ルートを表示する文字列 */ function GetRouteDetailString($pROUTE_ID) { GetRouteLinkDatas($pROUTE_ID, $LINK_SEQUENCE, $LINK_ID); //echo " GetRouteLinkDatas"; //ルート名称文字列を作成する $str = ""; for ($i = 0; $i < count($LINK_SEQUENCE); $i++) { //現在ルートの最初 if($i == 0){ GetNodeData(substr($LINK_ID[$i],0,5),$NodeName); $str .= $NodeName; $str .= " → "; LinkidToGosen($LINK_ID[$i],$gosen,$gosen_name); if ($gosen != NULL){ GetLineName(RemoveZero( substr($LINK_ID[$i],1,2) ) ,$LineName); $str .= $gosen."号".$gosen_name; $str .= " → "; } $br_key = $gosen; //現在ルートの最後 }else if($i == count($LINK_SEQUENCE) -1){ //号線が変わったら LinkidToGosen($LINK_ID[$i],$gosen,$gosen_name); if( $gosen != $br_key ){ GetLineName(RemoveZero( substr($LINK_ID[$i],6,2) ) ,$LineName); $str .= $gosen."号".$gosen_name; $str .= " → "; } GetNodeData(substr($LINK_ID[$i],5,5),$NodeName); $str .= $NodeName; }else{ $dispFlg = 0; //リンクIDが入口の場合 if(substr($LINK_ID[$i],0,1) == "1"){ GetNodeData(substr($LINK_ID[$i],0,5),$NodeName); $str .= $NodeName; $str .= " → "; $dispFlg = 1; } LinkidToGosen($LINK_ID[$i],$gosen,$gosen_name); //号線が変わったら if( $gosen != $br_key ){ GetLineName(RemoveZero( substr($LINK_ID[$i],6,2) ) ,$LineName); $str .= $gosen."号".$gosen_name; $str .= " → "; $br_key = $gosen; $dispFlg = 1; } //リンクIDが出口の場合 if(substr($LINK_ID[$i],5,1) == "2"){ GetNodeData(substr($LINK_ID[$i],5,5),$NodeName); $str .= $NodeName; $str .= "
"; $str .= "乗継"; $str .= "
"; $dispFlg = 1; } if($dispFlg == 0){ $str .= "[".$LINK_ID[$i]."]"; } } } return $str; } /** * GetRouteDetailString_O ルートを表示する文字列を取得 * @brief ルートを表示する文字列を取得 * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/10/26 Y.henmi 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $pROUTE_ID ルートID * @return ルートを表示する文字列 */ function GetRouteDetailString_O($pROUTE_ID) { GetRouteLinkDatas($pROUTE_ID, $LINK_SEQUENCE, $LINK_ID); //ルート名称文字列を作成する $str = ""; for ($i = 0; $i < count($LINK_SEQUENCE); $i++) { //現在ルートの最初 if($i == 0){ GetNodeData(substr($LINK_ID[$i],0,5),$NodeName); $str .= $NodeName; $str .= " → "; GetLineName(RemoveZero( substr($LINK_ID[$i],1,2) ) ,$LineName); $str .= $LineName; $str .= " → "; $br_key = RemoveZero( substr($LINK_ID[$i],1,2) ); //現在ルートの最後 }else if($i == count($LINK_SEQUENCE) -1){ //号線が変わったら if( substr($LINK_ID[$i],6,2) != $br_key ){ GetLineName(RemoveZero( substr($LINK_ID[$i],6,2) ) ,$LineName); $str .= $LineName; $str .= " → "; } GetNodeData(substr($LINK_ID[$i],5,5),$NodeName); $str .= $NodeName; }else{ //リンクIDが入口の場合 if(substr($LINK_ID[$i],0,1) == "1"){ GetNodeData(substr($LINK_ID[$i],0,5),$NodeName); $str .= $NodeName; $str .= " → "; } //号線が変わったら if(substr($LINK_ID[$i],0,1) != "8" && substr($LINK_ID[$i],5,1) != "8" ){ // 分岐の号線は判定対象外とする if( substr($LINK_ID[$i],1,2) != $br_key ){ GetLineName(RemoveZero( substr($LINK_ID[$i],6,2) ) ,$LineName); $str .= $LineName; $str .= " → "; $br_key = RemoveZero( substr($LINK_ID[$i],1,2) ); } } //リンクIDが出口の場合 if(substr($LINK_ID[$i],5,1) == "2"){ GetNodeData(substr($LINK_ID[$i],5,5),$NodeName); $str .= $NodeName; $str .= "
"; $str .= "乗継"; $str .= "
"; } } } return $str; } /** * GetLineName 号線マスタから号線名を取得する * @brief 号線マスタから号線名を取得する * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/10/26 Y.henmi 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $pLINE 号線番号 * @param $pLINE_NAME [out]号線名 * @return DBエラー時-1 */ function GetLineName($pLINE, &$pLINE_NAME) { $obj = OpenDBConnectAssign(AP_CONNECT_STR); if (!$obj) { ErrorLogWrite(ERR_DBOPEN, AP_CONNECT_STR, __FILE__, __LINE__); return -1; } $sql = ""; $sql .= " select line_name "; $sql .= " from tbl_line "; $sql .= " where line = " . $pLINE; if ( _DEBUG == True ) { echo "*$sql*
\n"; } $rs = ExecSql($obj, $sql); if ( !$rs ) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($obj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $sql, __FILE__, __LINE__); CloseDB($obj); return -1; } $rows = pg_numrows($rs); // レコードの総数を取得 if ( $rows ==0 ) { CloseDB($obj); $pLINE_NAME = ""; }else{ //レコードを配列に取得 $DATA = pg_fetch_object( $rs ); // 結果セットからレコードを1行取得する //ルートID $pLINE_NAME = mb_convert_encoding($DATA->line_name,ENCODE_SCR,ENCODE_DB); } if ( _DEBUG == True ) { echo "*$rows*
\n"; echo "*$pLINE_NAME*
\n"; } CloseDB($obj); return ; } /** * GetWayName 上下線を含む線名を取得する。 * @brief コースマスタから号線名を取得する * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2006/10/26 Y.henmi 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $pLINE 号線番号 * @param $pLINE_NAME [out]号線名 * @return DBエラー時-1 */ function GetWayName($pline,$pwaycode, &$pWAYNAME) { $obj = OpenDBConnectAssign(AP_CONNECT_STR); if (!$obj) { ErrorLogWrite(ERR_DBOPEN, AP_CONNECT_STR, __FILE__, __LINE__); return false; } $sql = ""; $sql .= " SELECT distinct line_name || ' ' || way_code_name as wayname "; $sql .= " FROM tbl_course "; $sql .= " WHERE line = " . $pline . " "; $sql .= " AND sub_line = 0 "; $sql .= " AND way_code = " . $pwaycode . " "; $rs = ExecSql($obj, $sql); if ( !$rs ) { ErrorLogWrite(ERR_DBEXEC, pg_last_error($obj), __FILE__, __LINE__); ErrorLogWrite(ERR_DBEXEC, $sql, __FILE__, __LINE__); CloseDB($obj); return false; } $rows = pg_numrows($rs); // レコードの総数を取得 if ( $rows ==0 ) { CloseDB($obj); $pWAYNAME = ""; }else{ //レコードを配列に取得 $DATA = pg_fetch_object( $rs ); // 結果セットからレコードを1行取得する //ルートID $pWAYNAME = mb_convert_encoding($DATA->wayname,ENCODE_SCR,ENCODE_DB); } if ( _DEBUG == True ) { echo "*$rows*
\n"; echo "*$pLINE_NAME*
\n"; } CloseDB($obj); return true; } function Set_SearchVariables($entrance, $exit, $route_id, $vehicle_size, $day, $time, $url) { $_SESSION["S_Search_entrance"] = $entrance; $_SESSION["S_Search_exit"] = $exit; $_SESSION["S_Search_route_id"] = $route_id; $_SESSION["S_Search_vehicle_size"] = $vehicle_size; $_SESSION["S_Search_day"] = $day; $_SESSION["S_Search_time"] = $time; $_SESSION["S_Search_url"] = $url; return( True ); } function Get_SearchVariables(&$entrance, &$exit, &$route_id, &$vehicle_size, &$day, &$time, &$url) { // session_start(); // BackURLの設定 if( isset($_SESSION["S_Search_entrance"]) ){ $entrance = $_SESSION["S_Search_entrance"]; } if( isset($_SESSION["S_Search_exit"]) ){ $exit = $_SESSION["S_Search_exit"]; } if( isset($_SESSION["S_Search_route_id"]) ){ $route_id = $_SESSION["S_Search_route_id"]; } if( isset($_SESSION["S_Search_vehicle_size"]) ){ $vehicle_size = $_SESSION["S_Search_vehicle_size"]; } if( isset($_SESSION["S_Search_day"]) ){ $day = $_SESSION["S_Search_day"]; } if( isset($_SESSION["S_Search_time"]) ){ $time = $_SESSION["S_Search_time"]; } if( isset($_SESSION["S_Search_url"]) ){ $url = $_SESSION["S_Search_url"]; } return( True ); } function clear_SearchVariables() { unset( $_SESSION["S_Search_entrance"] ); unset( $_SESSION["S_Search_exit"] ); unset( $_SESSION["S_Search_route_id"] ); unset( $_SESSION["S_Search_vehicle_size"] ); unset( $_SESSION["S_Search_day"] ); unset( $_SESSION["S_Search_time"] ); unset( $_SESSION["S_Search_url"] ); } /** * GetWeekdayValue 0:平日,1:土曜日,2:日曜・祝日を判定 * @brief 0:平日,1:土曜日,2:日曜・祝日を判定 * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2007/02/14 AM Garcia 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* 1.2 2008/12/11 T.Hayashi 関数名変更
GetWeekdayValueとGetWeekdayValuefを統一
* @param $Weekday [out]0:平日,1:土曜日,2:日曜・祝日 */ function GetWeekdayValue(&$Weekday) { $etc_rate_obj = new EtcRate(0); $time_now = time(); if($etc_rate_obj->isHoliday($time_now)){ // yyyyMMdd $Weekday = 2; }else{ $weekday_now = date("w"); $weekday_now = date("w"); switch($weekday_now){ case 0: $Weekday = 2; break; case 1: case 2: case 3: case 4: case 5: $Weekday = 0; break; case 6: $Weekday = 1; break; } } } /** * IsStringError 文字入力チェック * @brief 文字入力チェック * @author H.Toribe * @date 2008/03/31 * @version 1.1 * @note * History
* 1.0 2007/02/14 AM Garcia 新規作成
* 1.1 2008/03/31 H.Toribe ソースコード見直し修正
* @param $String 対象文字列 * @return エラーのときTrue */ function IsStringError( $String ) { for( $i=0; $i" ) return True; if ( $c == "'" ) return True; if ( $c == "%" ) return True; if ( $c == "\"" ) return True; if ( $c == "\\" ) return True; } return( False ); } /** * GetNextUrl URLにパラメータを追加して返す * @brief URLにパラメータを追加して返す * @author H.Toribe * @date 2008/03/31 * @version 1.0 * @note * History
* 1.0 2008/03/31 H.Toribe 新規作成 * @param $sid セッションID * @param $setuid UID * @param $params パラメータを連想配列で渡す * @return URLにパラメータを追加して返す */ function GetNextUrl($nextUrl, $sid='', $setuid='', $params=array()){ $arystr = array(); if( $sid != '' ){ $params["PHPSESSID"] = $sid; $params["uid"] = $setuid; } if( count($params) > 0 ){ foreach( $params as $key => $value){ if( !empty($value) ){ $arystr[] = $key . "=" . $value; } } } $result = ( count($arystr) > 0 )? BASE_URL.$nextUrl."?".implode("&",$arystr) : BASE_URL.$nextUrl; return $result; } /** * GetNextUrl2 URLにパラメータを追加して返す * @brief URLにパラメータを追加して返す * @author H.Toribe * @date 2008/03/31 * @version 1.0 * @note * History
* 1.0 2008/03/31 H.Toribe 新規作成 * @param $sid セッションID * @param $setuid UID * @param $params パラメータを連想配列で渡す * @return URLにパラメータを追加して返す */ function GetNextUrl2($nextUrl, $sid='', $setuid='', $params=array()){ $arystr = array(); if( $sid != '' ){ $params["PHPSESSID"] = $sid; $params["uid"] = $setuid; } if( count($params) > 0 ){ foreach( $params as $key => $value){ if( !empty($value) ){ $arystr[] = $key . "=" . $value; } } } $result = ( count($arystr) > 0 )? "href= ".BASE_URL.$nextUrl."?".implode("&",$arystr) : "href= ".BASE_URL.$nextUrl; return $result; } /** * ReadLine ファイルの内容を返す * @brief ファイルの内容を返す * @author H.Toribe * @date 2008/03/31 * @version 1.0 * @note * History
* 1.0 2008/03/31 H.Toribe 新規作成
* @param $file ファイル名 * @return ファイルの内容を返す */ function ReadLine( $file ) { $arystr = array(); $fp = fopen( $file , "r"); if( $fp == False ) { exit(); } while (!feof($fp)) { $arystr[] = fgets($fp); } fclose($fp); return implode("
", $arystr); } function getReceivedData( $names ) { $values = array(); foreach ($names as $name) { if( !empty( $_GET[ $name ] ) || !empty( $_POST[ $name ] )){ $str = empty( $_GET[ $name ] ) ? $_POST[ $name ] : $_GET[ $name ]; $values[ $name ] = htmlentities( mb_convert_encoding( $str, 'SJIS', 'SJIS'), ENT_QUOTES, 'SJIS'); if( ( $name != 'url' ) && ( strpos($str, '%') !== False ) ){ // RewriteRuleの影響でurldecodeしないと文字化け $values[ $name ] = urldecode( $values[ $name ] ); } } else { $values[ $name ] = ''; } } return $values; } function getReceivedData2( $names ){ $values = array(); foreach ($names as $i => $name) { if( !empty( $_GET[ $name ] ) || !empty( $_POST[ $name ] )){ $str = (empty($_GET[ $name ])) ? $_POST[ $name ] : $_GET[ $name ]; //$values[ $name ] = htmlentities( mb_convert_encoding( $str, 'SJIS', 'SJIS'), ENT_QUOTES, 'SJIS'); $values[ $name ] = mb_convert_encoding( $str, 'SJIS', 'SJIS'); if( ( $name != 'url' ) ){ $i = 0; while (strpos($values[ $name ], '%') !== False) { // RewriteRuleの影響でurldecodeしないと文字化け $values[ $name ] = urldecode( $values[ $name ] ); if ($i++ > 20) { break; } } } } else { $values[ $name ] = ''; } } return $values; } ?>