Index: trunk/install/php/foltialib.php =================================================================== --- trunk/install/php/foltialib.php (リビジョン 131) +++ trunk/install/php/foltialib.php (リビジョン 1) @@ -19,6 +19,6 @@ if ($_GET["{$key}"] != "") { $value = $_GET["{$key}"]; - $value = escape_string($value); - $value = htmlspecialchars($value); + escape_string($value); + htmlspecialchars($value); return ($value); } @@ -26,8 +26,9 @@ //GET用数字フォームデコード function getgetnumform($key) { -// if ($_GET["{$key}"] != "") { - if (isset($_GET["{$key}"] )) { + if ($_GET["{$key}"] != "") { $value = $_GET["{$key}"]; - $value = ereg_replace("[^-0-9]", "", $value); + escape_string($value); + htmlspecialchars($value); + $value = ereg_replace("[^0-9]", "", $value); $value = escape_numeric($value); return ($value); @@ -37,8 +38,9 @@ //フォームデコード function getform($key) { + // global $where; if ($_POST["{$key}"] != "") { $value = $_POST["{$key}"]; - $value = escape_string($value); - $value = htmlspecialchars($value); + escape_string($value); + htmlspecialchars($value); return ($value); } @@ -48,7 +50,7 @@ if ($_POST["{$key}"] != "") { $value = $_POST["{$key}"]; - $value = escape_string($value); - $value = htmlspecialchars($value); - $value = ereg_replace("[^0-9]", "", $value); + escape_string($value); + htmlspecialchars($value); + $value = ereg_replace("[^0-9]", "", $value); $value = escape_numeric($value); return ($value); @@ -76,8 +78,8 @@ function die_exit($message) { ?> -

+

トップ
-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - return($dbh); - } catch (PDOException $e) { - die_exit($e->getMessage() . ": データベースに接続出来ませんでした。"); +/* $con = @pg_connect("host=".DBHOST ." dbname=".DATABASE_NAME . + " user=".USER_NAME . + " password=".USER_PASSWORD); +*/ + $con = @pg_pconnect("host=".DBHOST ." dbname=".DATABASE_NAME . + " user=".USER_NAME . + " password=".USER_PASSWORD); + + + if (!$con) { + die_exit("データベースに接続出来ませんでした。"); } /* データベースと、PHP の内部文字コードが違う場合 */ + return($con); } /* データベースとの接続を切り離す */ -function m_close($dbh) { - return null; - } - -//旧関数 sql_queryに置き換え -function m_query($dbh, $query, $errmessage) { - try { - $rtn = $dbh->query($query); - return($rtn); - } catch (PDOException $e) { + function m_close($con) { + return @pg_close($con); + } + + /* SQL 文を実行 */ + function m_query($con, $query, $errmessage) { + $rtn = @pg_query($con, $query); + if (!$rtn) { /* エラーメッセージに SQL 文を出すのはセキュリティ上良くない!! */ $msg = $errmessage . "
\n" . - $e->getMessage() . "
\n" . - var_export($e->errorInfo, true) . "
\n" . + @pg_last_error($con) . "
\n" . "" . htmlspecialchars($query) . "\n"; -// $dbh->rollBack(); - $dbh = null; + $rtn = @pg_query($con, "rollback");//04.4.8 + m_close($con); die_exit($msg); } - } -/* SQL 文を実行 */ -function sql_query($dbh, $query, $errmessage,$paramarray=null) { - try { - $rtn = $dbh->prepare("$query"); - $rtn->execute($paramarray); return($rtn); - } catch (PDOException $e) { - /* エラーメッセージに SQL 文を出すのはセキュリティ上良くない!! */ - $msg = $errmessage . "
\n" . - $e->getMessage() . "
\n" . - var_export($e->errorInfo, true) . "
\n" . - "" . htmlspecialchars($query) . - "\n"; -// $dbh->rollBack(); - $dbh = null; - die_exit($msg); - } } @@ -181,8 +168,7 @@ function m_showtable($rs) { /* 検索件数 */ - $maxrows = 0; + $maxrows = pg_num_rows($rs); - $rowdata = $rs->fetch(); - if (! $rowdata) { + if ($maxrows == 0) { echo("

データが存在しません

\n"); return 0; @@ -190,5 +176,5 @@ /* フィールド数 */ - $maxcols = $rs->columnCount(); + $maxcols = pg_num_fields($rs); ?> @@ -199,6 +185,5 @@ for ($col = 1; $col < $maxcols; $col++) { /* pg_field_name() はフィールド名を返す */ - $meta = $rs->getColumnMeta($col); - $f_name = htmlspecialchars($meta["name"]); + $f_name = htmlspecialchars(pg_field_name($rs, $col)); echo("\n"); } @@ -209,8 +194,8 @@ \n"); + /* pg_fetch_row で一行取り出す */ + $rowdata = pg_fetch_row($rs, $row); /* 1列目にリンクを張る */ echo(" @@ -229,8 +214,46 @@ } - -function m_viewdata($dbh, $code) { - -/*これ使ってないよね?*/ + /* 指定したコードのデータを表示 */ + function m_viewdata($con, $code) { + /* コードに該当するデータを検索 */ + $query = " +select p.code + ,p.name + ,p.email + ,p.pseudonym + ,s.name as job + ,p.profile + ,to_char(p.editdate, 'YYYY/MM/DD HH24:MI:SS') as editdate + from inet_profile p left join inet_job s on p.job = s.code + where p.code = $code"; + $rs = m_query($con, $query, "個人情報の取得に失敗しました。"); + if (pg_num_rows($rs) == 0) { + echo("

データが存在しません

\n"); + return FALSE; + } + + /* フィールド数 */ + $maxcols = pg_num_fields($rs); + /* 先頭行 */ + $rowdata = pg_fetch_row($rs, 0); + ?> +
$f_name\n"); - } while ($rowdata = $rs->fetch()); + } ?>
+ + + + + + + + + + +
+ foltia | 放映予定 | 新番組 | 予約一覧 | 番組一覧 | 番組表 | 録画一覧(録画順番組順) | 録画ライブラリ | Folcast[iTunesに登録] | "; -if ($useenvironmentpolicy == 1){ - print "【 $username 】"; -} - -print "

\n"; + +print "

foltia | 放映予定 | 新番組 | 予約一覧 | 番組一覧 | 番組表 | 録画一覧(録画順番組順) | 録画ライブラリ | Folcast(RSS)[iTunesにFolcastを登録] |

\n"; } @@ -273,6 +288,6 @@ "; $rs = m_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $rs->fetch(); - if (! $rowdata) { + $maxrows = pg_num_rows($rs); +if ($maxrows == 0) { print("番組データがありません
"); }else{ @@ -280,5 +295,8 @@ //print "\n"; print "\n"; @@ -390,393 +408,70 @@ function printdiskusage(){//戻り値 なし -list (, $all, $use , $free, $usepercent) = getdiskusage(); + +global $recfolderpath,$recfolderpath; + + exec ( "df -h $recfolderpath | grep $recfolderpath", $hdfreearea); + $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); + + exec ( "ps ax | grep ffmpeg", $encoding); + exec ( "ps ax | grep faac", $processlock); print " -
$free -
$use/$all($usepercent)
+
$freearea[3] +
$freearea[2]/$freearea[1]($freearea[4])
"; -//exec('ps ax | grep ffmpeg |grep MP4 ' ,$ffmpegprocesses); + +// print "$freearea[1]
$freearea[2]
$freearea[3]
$freearea[4]
$hdfreearea[0]
$encoding[0]
$processlock[0]

\n"; + print "$encoding[0]
$processlock[0]

\n"; + +/* +
170GB +
1.1TB/1.3TB(87%)
+
+*/ + }//end sub -function getdiskusage(){//戻り値 配列 [,全体容量, 使用容量 , 空き容量, 利用割合] - -global $recfolderpath,$recfolderpath; - -// exec ( "df -h $recfolderpath | grep $recfolderpath", $hdfreearea); -// $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); - exec ( "df -hP $recfolderpath", $hdfreearea); - $freearea = preg_split ("/[\s,]+/", $hdfreearea[count($hdfreearea)-1]); - - return $freearea; - -}//endsub - - -function printtrcnprocesses(){ - -$ffmpegprocesses = `ps ax | grep ffmpeg | grep -v grep | wc -l `; -$uptime = exec('uptime'); - -print "
"; -print "$uptime
\n"; -print "トラコン稼働数:$ffmpegprocesses
\n"; -print "
"; - -}//endsub - - -function warndiskfreearea(){ - -global $demomode; - -if ($demomode){ -print ""; -}else{ - -global $recfolderpath,$hdfreearea ; - - exec ( "df $recfolderpath | grep $recfolderpath", $hdfreearea); - $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); -$freebytes = $freearea[3]; -if ($freebytes == "" ){ -// -//print ""; -}elseif($freebytes > 1024*1024*100 ){// 100GB以上あいてれば -//なにもしない -print ""; -}elseif($freebytes > 1024*1024*50 ){// 100GB以下 -print " -"; -}elseif($freebytes > 1024*1024*30 ){// 50GB以下 -print " -"; -}elseif($freebytes > 0 ){// 30GB以下 -print " -"; -}else{ //空き容量 0バイト -print " -"; -}//endif freebytess - -}//endif demomode - -}//endsub - - - -function foldatevalidation($foldate){ - -if (strlen($foldate) == 12 ){ - - $startyear = substr($foldate,0,4); - $startmonth = substr($foldate,4,2); - $startday = substr($foldate,6,2); - $starthour = substr($foldate,8,2); - $startmin = substr($foldate,10,2); - - $startepoch = date ("U",mktime($starthour , $startmin , 0, $startmonth , $startday, $startyear)); - $nowe = time(); - if ($startepoch > $nowe){ - //print "$foldate:$startepoch:$nowe"; - return TRUE; - }else{ - return FALSE; - } //end if $startepoch > $nowe -}else{ - return FALSE; -}//end if ($foldate) == 12 - -}//end function - - - -function login($con,$name,$passwd){ -global $environmentpolicytoken; - -//入力内容確認 - if (((mb_ereg('[^0-9a-zA-Z]', $name)) ||(mb_ereg('[^0-9a-zA-Z]', $passwd) ))){ - - //print "エラー処理\n"; - //print ""; - redirectlogin(); - -}else{ -//print "正常処理\n"; -//db検索 -escape_string($name); -escape_string($passwd); - -$query = " -SELECT memberid ,userclass,name,passwd1 -FROM foltia_envpolicy -WHERE foltia_envpolicy.name = '$name' - "; - $useraccount = m_query($con, $query, "DBクエリに失敗しました"); - $rowdata = $useraccount->fetch(); - if (! $rowdata) { - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - } - - $memberid = $rowdata[0]; - $userclass = $rowdata[1]; - $username = $rowdata[2]; - $dbpasswd = $rowdata[3]; - - $rowdata = $useraccount->fetch(); - if ($rowdata) { - header("HTTP/1.0 401 Unauthorized"); - redirectlogin(); - } - -// passwdをdbから取りだし -if ($userclass == 0){ -$dbpasswd = "$dbpasswd"; -}else{ -// db passwdとトークンを連結し -$dbpasswd = "$dbpasswd"."$environmentpolicytoken"; -} -//それが入力と一致すれば認証 -if ($passwd == $dbpasswd) { -//print "認証成功
$dbpasswd $passwd\n"; -}else{ -//print "認証失敗
$dbpasswd $passwd\n"; - header("HTTP/1.0 401 Unauthorized"); - //print "