通达OA公共代码 php常用检测函数

时间:2021-08-23 21:31:19

check_type.php(使用类型检验函数) 

复制代码代码如下:


<?php 
/*********************/ 
/* */ 
/* Version : 5.1.0 */ 
/* Author : RM */ 
/* Comment : 071223 */ 
/* */ 
/*********************/ 
function is_number( $str ) 

if ( substr( $str, 0, 1 ) == "-" ) 

$str = substr( $str, 1 ); 

$length = strlen( $str ); 
$i = 0; 
for ( ; $i < $length; ++$i ) 

$ascii_value = ord( substr( $str, $i, 1 ) ); 
if ( 48 <= $ascii_value && $ascii_value <= 57 ) 

continue; 

return FALSE; 

if ( $str != "0" ) 

$str = intval( $str ); 
if ( $str == 0 ) 

return FALSE; 


return TRUE; 

function is_decimal( $str ) 

if ( substr( $str, 0, 1 ) == "-" ) 

$str = substr( $str, 1 ); 

$length = strlen( $str ); 
$i = 0; 
for ( ; $i < $length; ++$i ) 

$ascii_value = ord( substr( $str, $i, 1 ) ); 
if ( 0 < $i && $ascii_value == 46 || 48 <= $ascii_value && $ascii_value <= 57 ) 

continue; 

return FALSE; 

return TRUE; 

function is_money( $str ) 

$dot_pos = strpos( $str, "." ); 
if ( !$dot_pos ) 

return FALSE; 

$str1 = substr( $str, 0, $dot_pos ); 
if ( 14 < strlen( $str1 ) ) 

return FALSE; 

if ( !is_number( $str1 ) ) 

return FALSE; 

$str2 = substr( $str, $dot_pos + 1, strlen( $str ) - $dot_pos ); 
if ( strlen( $str2 ) != 2 ) 

return FALSE; 

if ( !is_number( $str2 ) ) 

return FALSE; 

return TRUE; 

function is_money_len( $str, $int_len, $dot_len ) 

$dot_pos = strpos( $str, "." ); 
if ( !$dot_pos ) 

return FALSE; 

$str1 = substr( $str, 0, $dot_pos ); 
if ( $int_len < strlen( $str1 ) ) 

return FALSE; 

if ( !is_number( $str1 ) ) 

return FALSE; 

$str2 = substr( $str, $dot_pos + 1, strlen( $str ) - $dot_pos ); 
if ( strlen( $str2 ) != $dot_len ) 

return FALSE; 

if ( !is_number( $str2 ) ) 

return FALSE; 

return TRUE; 

function is_date( $str ) 

$YEAR = ""; 
$MONTH = ""; 
$DAY = ""; 
$len = strlen( $str ); 
$offset = 0; 
$i = strpos( $str, "-", $offset ); 
$YEAR = substr( $str, $offset, $i - $offset ); 
$offset = $i + 1; 
if ( $len < $offset ) 

return FALSE; 

if ( $i ) 

$i = strpos( $str, "-", $offset ); 
$MONTH = substr( $str, $offset, $i - $offset ); 
$offset = $i + 1; 
if ( $len < $offset ) 

return FALSE; 

if ( $i ) 

$DAY = substr( $str, $offset, $len - $offset ); 


if ( $YEAR == "" || $MONTH == "" || $DAY == "" ) 

return FALSE; 

if ( !checkdate( intval( $MONTH ), intval( $DAY ), intval( $YEAR ) ) ) 

return FALSE; 

return TRUE; 

function is_time( $str ) 

$TEMP = ""; 
$HOUR = ""; 
$MIN = ""; 
$SEC = ""; 
$TEMP = strtok( $str, ":" ); 
$HOUR = $TEMP; 
if ( $HOUR == "" || 24 <= $HOUR || $HOUR < 0 || !is_number( $HOUR ) ) 

return FALSE; 

$TEMP = strtok( ":" ); 
$MIN = $TEMP; 
if ( $MIN == "" || 60 <= $MIN || $MIN < 0 || !is_number( $MIN ) ) 

return FALSE; 

$TEMP = strtok( ":" ); 
$SEC = $TEMP; 
if ( $SEC == "" || 60 <= $SEC || $SEC < 0 || !is_number( $SEC ) ) 

return FALSE; 

return TRUE; 

function is_date_time( $DATE_TIME_STR ) 

if ( $DATE_TIME_STR == NULL || strlen( $DATE_TIME_STR ) == 0 ) 

return FALSE; 

$DATE_TIME_ARRY = explode( " ", $DATE_TIME_STR ); 
if ( is_date( $DATE_TIME_ARRY[0] ) && is_time( $DATE_TIME_ARRY[1] ) ) 

return TRUE; 

return FALSE; 

?> 


auth.php登录验证 

复制代码代码如下:


<?php 
/*********************/ 
/* */ 
/* Version : 5.1.0 */ 
/* Author : RM */ 
/* Comment : 071223 */ 
/* */ 
/*********************/ 
if ( $USER_ID == "" || $PASSWORD == "" ) 

echo "201#|#用户名或密码为空"; 
exit( ); 

if ( $USER_ID != "OfficeTask" ) 

echo "205#|#用户名错误"; 
exit( ); 

include_once( "../inc/conn.php" ); 
include_once( "../inc/utility.php" ); 
ob_end_clean( ); 
$query = "select * from EXT_USER where USER_ID='".$USER_ID."'"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$PWD = $ROW['PASSWORD']; 
$USE_FLAG = $ROW['USE_FLAG']; 
$AUTH_MODULE = $ROW['AUTH_MODULE']; 
$POSTFIX = $ROW['POSTFIX']; 
if ( md5( $PWD ) != $PASSWORD ) 

echo "203#|#密码错误"; 
exit( ); 

if ( $USE_FLAG == "0" ) 

echo "204#|#帐号已停用"; 
exit( ); 


else 

echo "202#|#".$USER_ID; 
exit( ); 

?> 


utility_all公用函数 

复制代码代码如下:


<?php 
/*********************/ 
/* */ 
/* Version : 5.1.0 */ 
/* Author : RM */ 
/* Comment : 071223 */ 
/* */ 
/*********************/ 
function format_date( $STRING1 ) 

$STRING1 = str_replace( "-0", "-", $STRING1 ); 
$STR = strtok( $STRING1, "-" ); 
$STRING2 = $STR."年"; 
$STR = strtok( "-" ); 
$STRING2 .= $STR."月"; 
$STR = strtok( " " ); 
$STRING2 .= $STR."日"; 
return $STRING2; 

function format_date_short1( $STRING1 ) 

$STRING1 = str_replace( "-0", "-", $STRING1 ); 
$STR = strtok( $STRING1, "-" ); 
$STRING2 = $STR."年"; 
$STR = strtok( "-" ); 
$STRING2 .= $STR."月"; 
return $STRING2; 

function format_date_short2( $STRING1 ) 

$STRING1 = str_replace( "-0", "-", $STRING1 ); 
$STR = strtok( $STRING1, "-" ); 
$STR = strtok( "-" ); 
$STRING2 .= $STR."月"; 
$STR = strtok( " " ); 
$STRING2 .= $STR."日"; 
return $STRING2; 

function format_date_short3( $STRING1 ) 

$STRING1 = str_replace( "-0", "-", $STRING1 ); 
$STR = strtok( $STRING1, "-" ); 
$STRING2 .= $STR."年"; 
return $STRING2; 

function format_date_number( $STRING1 ) 

$STRING1 = str_replace( "-0", "-", $STRING1 ); 
$STR = strtok( $STRING1, "-" ); 
$STRING2 = $STR; 
$STR = strtok( "-" ); 
$STRING2 .= strlen( $STR ) == 1 ? "0".$STR : $STR; 
$STR = strtok( " " ); 
$STRING2 .= strlen( $STR ) == 1 ? "0".$STR : $STR; 
return $STRING2; 

function get_week( $STRING ) 

switch ( date( "w", strtotime( $STRING ) ) ) 

case 0 : 
return "日"; 
case 1 : 
return "一"; 
case 2 : 
return "二"; 
case 3 : 
return "三"; 
case 4 : 
return "四"; 
case 5 : 
return "五"; 
case 6 : 
return "六"; 


function format_money( $STR ) 

if ( $STR == "" ) 

return ""; 

if ( $STR == ".00" ) 

return "0.00"; 

$TOK = strtok( $STR, "." ); 
if ( strcmp( $STR, $TOK ) == "0" ) 

$STR .= ".00"; 

else 

$TOK = strtok( "." ); 
$I = 1; 
for ( ; $I <= 2 - strlen( $TOK ); ++$I ) 

$STR .= "0"; 


if ( substr( $STR, 0, 1 ) == "." ) 

$STR = "0".$STR; 

return $STR; 

function compare_date( $DATE1, $DATE2 ) 

$STR = strtok( $DATE1, "-" ); 
$YEAR1 = $STR; 
$STR = strtok( "-" ); 
$MON1 = $STR; 
$STR = strtok( "-" ); 
$DAY1 = $STR; 
$STR = strtok( $DATE2, "-" ); 
$YEAR2 = $STR; 
$STR = strtok( "-" ); 
$MON2 = $STR; 
$STR = strtok( "-" ); 
$DAY2 = $STR; 
if ( $YEAR2 < $YEAR1 ) 

return 1; 

if ( $YEAR1 < $YEAR2 ) 

return -1; 

if ( $MON2 < $MON1 ) 

return 1; 

if ( $MON1 < $MON2 ) 

return -1; 

if ( $DAY2 < $DAY1 ) 

return 1; 

if ( $DAY1 < $DAY2 ) 

return -1; 

return 0; 

function compare_time( $TIME1, $TIME2 ) 

$STR = strtok( $TIME1, ":" ); 
$HOUR1 = $STR; 
$STR = strtok( ":" ); 
$MIN1 = $STR; 
$STR = strtok( ":" ); 
$SEC1 = $STR; 
$STR = strtok( $TIME2, ":" ); 
$HOUR2 = $STR; 
$STR = strtok( ":" ); 
$MIN2 = $STR; 
$STR = strtok( ":" ); 
$SEC2 = $STR; 
if ( $HOUR2 < $HOUR1 ) 

return 1; 

if ( $HOUR1 < $HOUR2 ) 

return -1; 

if ( $MIN2 < $MIN1 ) 

return 1; 

if ( $MIN1 < $MIN2 ) 

return -1; 

if ( $SEC2 < $SEC1 ) 

return 1; 

if ( $SEC1 < $SEC2 ) 

return -1; 

return 0; 

function compare_date_time( $DATE_TIME1, $DATE_TIME2 ) 

if ( $DATE_TIME1 == NULL || strlen( $DATE_TIME1 ) == 0 || $DATE_TIME2 == NULL || strlen( $DATE_TIME2 ) == 0 ) 

return -1; 

$DATE_TIME1_ARRY = explode( " ", $DATE_TIME1 ); 
$DATE_TIME2_ARRY = explode( " ", $DATE_TIME2 ); 
if ( compare_date( $DATE_TIME1_ARRY[0], $DATE_TIME2_ARRY[0] ) == 1 ) 

return 1; 

if ( compare_date( $DATE_TIME1_ARRY[0], $DATE_TIME2_ARRY[0] ) == 0 ) 

if ( compare_time( $DATE_TIME1_ARRY[1], $DATE_TIME2_ARRY[1] ) == 1 ) 

return 1; 

if ( compare_time( $DATE_TIME1_ARRY[1], $DATE_TIME2_ARRY[1] ) == 0 ) 

return 0; 

return -1; 

return -1; 

function is_chinese( &$str, $location ) 

$ch = TRUE; 
$i = $location; 
while ( 160 < ord( $str[$i] ) && 0 <= $i ) 

$ch = !$ch; 
--$i; 

if ( $i != $location ) 

$f_str = $ch ? 1 : -1; 
return $f_str; 

$f_str = FALSE; 
return $f_str; 

function csubstr( &$str, $start = 0, $long = 0, $ltor = TRUE, $cn_len = 2 ) 

if ( $long == 0 ) 

$long = strlen( $str ); 

if ( !$ltor ) 

$str = cstrrev( $str ); 

if ( $cn_len == 1 ) 

$i = 0; 
$fs = 0; 
for ( ; $i < $start; ++$fs ) 

$i += ord( $str[$fs] ) <= 160 ? 1 : 0.5; 

$i = 0; 
$fe = $fs; 
for ( ; $i < $long; ++$fe ) 

$i += ord( $str[$fe] ) <= 160 ? 1 : 0.5; 

$long = $fe - $fs; 

else 

$fs = is_chinese( &$str, $start ) == 1 ? $start - 1 : $start; 
$fe = $long + $start - 1; 
$end = is_chinese( &$str, $fe ) == -1 ? $fe - 1 : $fe; 
$long = $end - $fs + 1; 

$f_str = substr( $str, $fs, $long ); 
if ( !$ltor ) 

$f_str = cstrrev( $f_str ); 

return $f_str; 

function is_ip( $IP ) 

$IP_ARRAY = explode( ".", $IP ); 
$IP_ARRAY_NUM = sizeof( $IP_ARRAY ); 
if ( $IP_ARRAY_NUM != 4 ) 

return FALSE; 

$I = 0; 
for ( ; $I < $IP_ARRAY_NUM; ++$I ) 

if ( !is_numeric( $IP_ARRAY[$I] ) && $IP_ARRAY[$I] < 0 || 255 < $IP_ARRAY[$I] ) 

return FALSE; 

if ( !( $I == 3 ) && !( $IP_ARRAY[$I] == 255 ) ) 

continue; 

return FALSE; 

return TRUE; 

function check_ip( $USER_IP, $TYPE, $USER_ID ) 

global $connection; 
$query = "SELECT PARA_VALUE from SYS_PARA where PARA_NAME='IP_UNLIMITED_USER'"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$IP_UNLIMITED_USER = $ROW['PARA_VALUE']; 

if ( find_id( $IP_UNLIMITED_USER, $USER_ID ) ) 

return TRUE; 

$query = "select * from IP_RULE where TYPE='".$TYPE."'"; 
$cursor = exequery( $connection, $query ); 
$RULE_COUNT = 0; 
$FLAG = 0; 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

++$RULE_COUNT; 
$BEGIN_IP = $ROW['BEGIN_IP']; 
$END_IP = $ROW['END_IP']; 
if ( !( ip2long( $BEGIN_IP ) <= ip2long( $USER_IP ) ) && !( ip2long( $USER_IP ) <= ip2long( $END_IP ) ) ) 

continue; 

$FLAG = 1; 
break; 

if ( $RULE_COUNT == 0 || $FLAG == 1 ) 

return TRUE; 

return FALSE; 

function maskstr( $STR, $FIRST, $LAST ) 

if ( is_numeric( $FIRST ) ) 


if ( !is_numeric( $LAST ) ) 

return; 

if ( strlen( $STR ) <= $FIRST + $LAST ) 

return $STR; 

$RETURN_STR = substr( $STR, 0, $FIRST ); 
$I = 0; 
for ( ; $I < strlen( substr( $STR, $FIRST, 0 - $LAST ) ); ++$I ) 

$RETURN_STR .= "*"; 

$RETURN_STR .= substr( $STR, 0 - $LAST ); 
return $RETURN_STR; 

function add_log( $TYPE, $REMARK, $OPERATOR ) 

global $connection; 
$CUR_TIME = date( "Y-m-d H:i:s", time( ) ); 
$USER_IP = get_client_ip( ); 
if ( $TYPE == 1 ) 

$query = "update USER set LAST_VISIT_IP='".$USER_IP."' where USER_ID='{$OPERATOR}'"; 
exequery( $connection, $query ); 

else 

if ( $TYPE == 3 || $TYPE == 4 || $TYPE == 5 ) 

include_once( "inc/itask/itask.php" ); 
global $DEPT_PARENT; 
if ( $TYPE == 3 || $TYPE == 4 ) 

$result = itask( array( 
"LOG_".$TYPE." ".$REMARK.",".$DEPT_PARENT 
) ); 

$query = "SELECT DEPT_ID,DEPT_NAME from DEPARTMENT where DEPT_ID='".$REMARK."'"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$DEPT_ID = $ROW['DEPT_ID']; 
$DEPT_NAME = $ROW['DEPT_NAME']; 

$REMARK = "{$DEPT_NAME},DEPT_ID={$DEPT_ID},DEPT_PARENT={$DEPT_PARENT}"; 
if ( $result === FALSE ) 

message( "错误", itask_last_error( ) ); 
button_back( ); 
exit( ); 


else if ( $TYPE == 6 || $TYPE == 7 || $TYPE == 8 || $TYPE == 11 ) 

include_once( "inc/itask/itask.php" ); 
global $DEPT_ID; 
global $NOT_LOGIN; 
if ( $TYPE == 6 || $TYPE == 7 ) 

$result = itask( array( 
"LOG_".$TYPE." ".$REMARK.",".$DEPT_ID.",".$NOT_LOGIN 
) ); 

$query = "SELECT USER_ID,USER_NAME,DEPT_ID from USER where find_in_set(USER_ID,'".$REMARK."')"; 
$cursor = exequery( $connection, $query ); 
$REMARK = ""; 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

$USER_ID = $ROW['USER_ID']; 
$USER_NAME = $ROW['USER_NAME']; 
$DEPT_ID = $ROW['DEPT_ID']; 
$query = "SELECT DEPT_NAME from DEPARTMENT where DEPT_ID='".$DEPT_ID."'"; 
$cursor1 = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor1 ) ) 

$DEPT_NAME = $ROW['DEPT_NAME']; 

$REMARK .= "[".$DEPT_NAME."]{$USER_NAME},USER_ID={$USER_ID}<br>"; 

if ( $result === FALSE ) 

message( "错误", itask_last_error( ) ); 
button_back( ); 
exit( ); 



$REMARK = str_replace( "'", "\\'", $REMARK ); 
$REMARK = str_replace( "\\\\'", "\\'", $REMARK ); 
$query = "insert into SYS_LOG (USER_ID,TIME,IP,TYPE,REMARK) values ('".$OPERATOR."','{$CUR_TIME}','{$USER_IP}','{$TYPE}','{$REMARK}')"; 
exequery( $connection, $query ); 
if ( 21 < $TYPE && !find_id( "40,41,", $TYPE ) || get_code_name( $TYPE, "SYS_LOG" ) == "" ) 

$query1 = "INSERT INTO `SYS_CODE` ( `CODE_NO` , `CODE_NAME` , `CODE_ORDER` , `PARENT_NO` , `CODE_FLAG` ) VALUES ('".$TYPE."', '未知类型', '99', 'SYS_LOG', '1');"; 
exequery( $connection, $query1 ); 

return $query; 

function affair_sms( ) 

include_once( "inc/utility_sms1.php" ); 
global $connection; 
global $LOGIN_USER_ID; 
$CUR_DATE = date( "Y-m-d", time( ) ); 
$CUR_TIME = date( "Y-m-d H:i:s", time( ) ); 
$query = "SELECT * from AFFAIR where USER_ID='".$LOGIN_USER_ID."' and BEGIN_TIME <='{$CUR_TIME}' and (LAST_REMIND<'{$CUR_DATE}' or LAST_REMIND='0000-00-00')"; 
$cursor = exequery( $connection, $query ); 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

$AFF_ID = $ROW['AFF_ID']; 
$USER_ID = $ROW['USER_ID']; 
$TYPE = $ROW['TYPE']; 
$REMIND_DATE = $ROW['REMIND_DATE']; 
$REMIND_TIME = $ROW['REMIND_TIME']; 
$CONTENT = $ROW['CONTENT']; 
$SEND_TIME = date( "Y-m-d", time( ) )." ".$REMIND_TIME; 
$SMS_CONTENT = "日常事务提醒:".csubstr( &$CONTENT, 0, 100 ); 
$FLAG = 0; 
if ( $TYPE == "2" ) 

$FLAG = 1; 

else if ( $TYPE == "3" && date( "w", time( ) ) == $REMIND_DATE ) 

$FLAG = 1; 

else if ( $TYPE == "4" && date( "j", time( ) ) == $REMIND_DATE ) 

$FLAG = 1; 

else if ( $TYPE == "5" ) 

$REMIND_ARR = explode( "-", $REMIND_DATE ); 
$REMIND_DATE_MON = $REMIND_ARR[0]; 
$REMIND_DATE_DAY = $REMIND_ARR[1]; 
if ( date( "n", time( ) ) == $REMIND_DATE_MON && date( "j", time( ) ) == $REMIND_DATE_DAY ) 

$FLAG = 1; 


if ( $FLAG == 1 ) 

send_sms( $SEND_TIME, $LOGIN_USER_ID, $LOGIN_USER_ID, 5, $SMS_CONTENT, "1:calendar/affair/note.php?AFF_ID=".$AFF_ID ); 
$query = "update AFFAIR set LAST_REMIND='".$CUR_DATE."' where AFF_ID='{$AFF_ID}'"; 
exequery( $connection, $query ); 



function get_code_name( $CODE_NO, $PARENT_NO ) 

if ( $CODE_NO == "" || $PARENT_NO == "" ) 

return ""; 

global $connection; 
$query = "SELECT CODE_NAME from SYS_CODE where PARENT_NO='".$PARENT_NO."' and find_in_set(CODE_NO,'{$CODE_NO}')"; 
$cursor = exequery( $connection, $query ); 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

$CODE_NAME .= $ROW['CODE_NAME'].","; 

return substr( $CODE_NAME, 0, -2 ); 

function code_list( $PARENT_NO, $SELECTED = "", $TYPE = "D", $FIELD_NAME = "" ) 

if ( $PARENT_NO == "" ) 

return; 

global $connection; 
$query = "select CODE_NO,CODE_NAME from SYS_CODE where PARENT_NO='".$PARENT_NO."' order by CODE_ORDER"; 
$cursor = exequery( $connection, $query ); 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

$CODE_NO = $ROW['CODE_NO']; 
$CODE_NAME = $ROW['CODE_NAME']; 
if ( $TYPE == "D" ) 

$OPTION_STR .= "<option value=\"".$CODE_NO."\""; 
if ( $CODE_NO == $SELECTED ) 

$OPTION_STR .= " selected"; 

$OPTION_STR .= ">".$CODE_NAME."</option>\n"; 

else if ( $TYPE == "R" ) 

$OPTION_STR .= "<input type=\"radio\" name=\"".$FIELD_NAME."\" id=\"".$FIELD_NAME."_".$CODE_NO."\" value=\"".$CODE_NO."\""; 
if ( $CODE_NO == $SELECTED ) 

$OPTION_STR .= " checked"; 

$OPTION_STR .= "><label for=\"".$FIELD_NAME."_".$CODE_NO."\">".$CODE_NAME."</label>\n"; 

else if ( $TYPE == "C" ) 

$OPTION_STR .= "<input type=\"checkbox\" name=\"".$FIELD_NAME."_".$CODE_NO."\" id=\"".$FIELD_NAME."_".$CODE_NO."\" value=\"".$CODE_NO."\""; 
if ( find_id( $SELECTED, $CODE_NO ) ) 

$OPTION_STR .= " checked"; 

$OPTION_STR .= "><label for=\"".$FIELD_NAME."_".$CODE_NO."\">".$CODE_NAME."</label>\n"; 


return $OPTION_STR; 

function get_code_array( $PARENT_NO, $REVERSE = FALSE ) 

$CODE_ARRAY = array( ); 
if ( $PARENT_NO == "" ) 

return $CODE_ARRAY; 

global $connection; 
$query = "select CODE_NO,CODE_NAME from SYS_CODE where PARENT_NO='".$PARENT_NO."' order by CODE_ORDER"; 
$cursor = exequery( $connection, $query ); 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

$CODE_NO = $ROW['CODE_NO']; 
$CODE_NAME = $ROW['CODE_NAME']; 
if ( !$REVERSE ) 

$CODE_ARRAY[$CODE_NO] = $CODE_NAME; 

else 

$CODE_ARRAY[$CODE_NAME] = $CODE_NO; 


return $CODE_ARRAY; 

function sms_type_url( $SMS_TYPE, $CONTENT ) 

switch ( $SMS_TYPE ) 

case "0" : 
$URL = "/general/sms/receive/"; 
return $URL; 
case "1" : 
$URL = "/general/notify/show/"; 
return $URL; 
case "2" : 
$URL = "/general/email/inbox/?BOX_ID=0"; 
return $URL; 
case "3" : 
$URL = "/general/netmeeting/"; 
return $URL; 
case "4" : 
$URL = "/general/salary/report/"; 
return $URL; 
case "5" : 
$URL = "/general/calendar/"; 
return $URL; 
case "6" : 
if ( strstr( $CONTENT, "提交" ) && strstr( $CONTENT, "申请" ) && strstr( $CONTENT, "请批示" ) ) 

$URL = "/general/attendance/manage/"; 
return $URL; 

$URL = "/general/attendance/personal/"; 
return $URL; 
case "7" : 
$URL = "/general/workflow/list"; 
return $URL; 
case "8" : 
$URL = "/general/meeting/manage/"; 
return $URL; 
case "9" : 
if ( strstr( $CONTENT, "提交" ) ) 

if ( strstr( $CONTENT, "申请" ) ) 



if ( strstr( $CONTENT, "请批示" ) || strstr( $CONTENT, "部门领导" ) && strstr( $CONTENT, "批准了" ) ) 

$URL = "/general/vehicle/checkup/"; 
return $URL; 

if ( strstr( $CONTENT, "部门审批" ) ) 

$URL = "/general/vehicle/dept_manage/"; 
return $URL; 

$URL = "/general/vehicle/"; 
return $URL; 
case "10" : 
$URL = "/general/mobile_sms/"; 
return $URL; 
case "11" : 
$URL = "/general/vote/show/"; 
return $URL; 
case "12" : 
$URL = "/general/work_plan/show/"; 
return $URL; 
case "13" : 
$URL = "/general/diary/"; 
return $URL; 
case "14" : 
$URL = "/general/news/show/"; 
return $URL; 
case "15" : 
$URL = "/general/score/submit/"; 
return $URL; 
case "16" : 
$URL = "/general/file_folder/index1.php"; 
return $URL; 
case "17" : 
$URL = "/general/netdisk"; 
return $URL; 
case "18" : 
$URL = "/general/bbs"; 
return $URL; 
case "20" : 
$URL = "/general/file_folder?FILE_SORT=2&SORT_ID=0"; 
return $URL; 
case "30" : 
$URL = "/general/training/manage/show"; 
return $URL; 
case "31" : 
if ( strstr( $CONTENT, "批准了" ) || strstr( $CONTENT, "未批准" ) || strstr( $CONTENT, "撤销了" ) ) 

$URL = "/general/training/train/apply/"; 
return $URL; 

$URL = "/general/training/manage/apply_manage/"; 
return $URL; 
case "32" : 
$URL = "/general/training/train/survey/"; 
return $URL; 
case "33" : 
$URL = "/general/training/train/information/"; 
return $URL; 
case "34" : 
$URL = "/general/training/train/assessment/"; 
return $URL; 
case "35" : 
$URL = "/general/hrms/manage/"; 

return $URL; 

function avatar_size( $AVATAR ) 

global $ROOT_PATH; 
global $connection; 
global $AVATAR_WIDTH; 
global $AVATAR_HEIGHT; 
$FILENAME = $ROOT_PATH."images/avatar/".$AVATAR.".gif"; 
if ( !$AVATAR_WIDTH && !$AVATAR_HEIGHT ) 

$query = "SELECT AVATAR_WIDTH,AVATAR_HEIGHT from INTERFACE"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$AVATAR_WIDTH = $ROW['AVATAR_WIDTH']; 
$AVATAR_HEIGHT = $ROW['AVATAR_HEIGHT']; 


$IMG_ATTR = @getimagesize( $FILENAME ); 
if ( $AVATAR_WIDTH < $IMG_ATTR[0] ) 

$IMG_ATTR[0] = $AVATAR_WIDTH; 

if ( $AVATAR_HEIGHT < $IMG_ATTR[1] ) 

$IMG_ATTR[1] = $AVATAR_HEIGHT; 

if ( $IMG_ATTR[0] < 15 ) 

$IMG_ATTR[0] = 15; 

if ( $IMG_ATTR[1] < 15 ) 

$IMG_ATTR[1] = 15; 

return "width=\"".$IMG_ATTR['0']."\" height=\"{$IMG_ATTR['1']}\""; 

function format_cvs( $STR ) 

$STR = str_replace( "\"", "", $STR ); 
$STR = str_replace( "\n", "", $STR ); 
$STR = str_replace( "\r", "", $STR ); 
$STR = str_replace( "'", "\\'", $STR ); 
if ( strpos( $STR, "," ) === FALSE ) 

return $STR; 

$STR = "\"".$STR."\""; 
return $STR; 

function keyed_str( $TXT, $ENCRYPT_KEY ) 

$ENCRYPT_KEY = md5( $ENCRYPT_KEY ); 
$CTR = 0; 
$TMP = ""; 
$I = 0; 
for ( ; $I < strlen( $TXT ); ++$I ) 

if ( $CTR == strlen( $ENCRYPT_KEY ) ) 

$CTR = 0; 

$TMP .= substr( $TXT, $I, 1 ) ^ substr( $ENCRYPT_KEY, $CTR, 1 ); 
++$CTR; 

return $TMP; 

function encrypt_str( $TXT, $KEY ) 

srand( ( double )microtime( ) * 1000000 ); 
$ENCRYPT_KEY = md5( rand( 0, 32000 ) ); 
$CTR = 0; 
$TMP = ""; 
$I = 0; 
for ( ; $I < strlen( $TXT ); ++$I ) 

if ( $CTR == strlen( $ENCRYPT_KEY ) ) 

$CTR = 0; 

$TMP .= substr( $ENCRYPT_KEY, $CTR, 1 ).( substr( $TXT, $I, 1 ) ^ substr( $ENCRYPT_KEY, $CTR, 1 ) ); 
++$CTR; 

return keyed_str( $TMP, $KEY ); 

function decrypt_str( $TXT, $KEY ) 

$TXT = keyed_str( $TXT, $KEY ); 
$TMP = ""; 
$I = 0; 
for ( ; $I < strlen( $TXT ); ++$I ) 

$MD5 = substr( $TXT, $I, 1 ); 
++$I; 
$TMP .= substr( $TXT, $I, 1 ) ^ $MD5; 

return $TMP; 

function get_client_ip( ) 

if ( getenv( "REMOTE_ADDR" ) && strcasecmp( getenv( "REMOTE_ADDR" ), "unknown" ) ) 

$onlineip = getenv( "REMOTE_ADDR" ); 
return $onlineip; 

if ( isset( $_SERVER['REMOTE_ADDR'] ) && $_SERVER['REMOTE_ADDR'] && strcasecmp( $_SERVER['REMOTE_ADDR'], "unknown" ) ) 

$onlineip = $_SERVER['REMOTE_ADDR']; 
return $onlineip; 

if ( getenv( "HTTP_CLIENT_IP" ) && strcasecmp( getenv( "HTTP_CLIENT_IP" ), "unknown" ) ) 

$onlineip = getenv( "HTTP_CLIENT_IP" ); 
return $onlineip; 

if ( getenv( "HTTP_X_FORWARDED_FOR" ) && strcasecmp( getenv( "HTTP_X_FORWARDED_FOR" ), "unknown" ) ) 

$onlineip = getenv( "HTTP_X_FORWARDED_FOR" ); 

return $onlineip; 

function dept_long_name( $DEPT_ID ) 

global $SYS_DEPARTMENT; 
include_once( "inc/department.php" ); 
if ( is_array( $SYS_DEPARTMENT ) ) 


if ( !array_key_exists( $DEPT_ID, $SYS_DEPARTMENT ) ) 

include_once( "inc/utility_org.php" ); 
cache_department( ); 
include( "inc/department.php" ); 

return $SYS_DEPARTMENT[$DEPT_ID]['DEPT_LONG_NAME']; 

function sms_remind( $SMS_TYPE, $SMS_CHECKED = "" ) 

global $connection; 
global $LOGIN_USER_ID; 
$query = "select * from SYS_PARA where PARA_NAME='SMS_REMIND'"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$PARA_VALUE = $ROW['PARA_VALUE']; 

$REMIND_ARRAY = explode( "|", $PARA_VALUE ); 
$SMS_REMIND = $REMIND_ARRAY[0]; 
$SMS2_REMIND = $REMIND_ARRAY[1]; 
$SMS3_REMIND = $REMIND_ARRAY[2]; 
if ( find_id( $SMS3_REMIND, $SMS_TYPE ) ) 

echo "<input type=\"checkbox\" name=\"SMS_REMIND\" id=\"SMS_REMIND\""; 
if ( $SMS_CHECKED == "1" || find_id( $SMS_REMIND, $SMS_TYPE ) ) 

echo " checked"; 

echo "><label for=\"SMS_REMIND\">使用内部短信提醒</label>  "; 

$query = "select * from SMS2_PRIV"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$TYPE_PRIV = $ROW['TYPE_PRIV']; 
$SMS2_REMIND_PRIV = $ROW['SMS2_REMIND_PRIV']; 

if ( find_id( $TYPE_PRIV, $SMS_TYPE ) && find_id( $SMS2_REMIND_PRIV, $LOGIN_USER_ID ) ) 

echo "<input type=\"checkbox\" name=\"SMS2_REMIND\" id=\"SMS2_REMIND\""; 
if ( find_id( $SMS2_REMIND, $SMS_TYPE ) ) 

echo " checked"; 

echo "><label for=\"SMS2_REMIND\">使用手机短信提醒</label>"; 


function sms_select_remind( $SMS_TYPE, $SMS_CHECKED = "" ) 

return "<input type=\"radio\" name=\"SMS_SELECT_REMIND\" id=\"SMS_SELECT_REMIND0\" value=\"0\" onclick=\"document.getElementById('SMS_SELECT_REMIND_SPAN').style.display='';\"".( $SMS_CHECKED != "1" ? " checked" : "" )."><label for=\"SMS_SELECT_REMIND0\">手动选择被提醒人员</label>\r\n <input type=\"radio\" name=\"SMS_SELECT_REMIND\" id=\"SMS_SELECT_REMIND1\" value=\"1\" onclick=\"document.getElementById('SMS_SELECT_REMIND_SPAN').style.display='none';\"".( $SMS_CHECKED == "1" ? " checked" : "" )."><label for=\"SMS_SELECT_REMIND1\">提醒全部有权限人员</label><br>\r\n <span id=\"SMS_SELECT_REMIND_SPAN\">\r\n <textarea cols=40 name=\"SMS_SELECT_REMIND_TO_NAME\" rows=\"2\" class=\"BigStatic\" wrap=\"yes\" readonly></textarea>\r\n <input type=\"hidden\" name=\"SMS_SELECT_REMIND_TO_ID\" value=\"\">\r\n <a href=\"javascript:;\" class=\"orgAdd\" onClick=\"SelectUser('','SMS_SELECT_REMIND_TO_ID', 'SMS_SELECT_REMIND_TO_NAME')\">添加</a>\r\n <a href=\"javascript:;\" class=\"orgClear\" onClick=\"ClearUser('SMS_SELECT_REMIND_TO_ID', 'SMS_SELECT_REMIND_TO_NAME')\">清空</a></span>"; 

function sms2_select_remind( $SMS_TYPE, $SMS_CHECKED = "" ) 

global $connection; 
global $LOGIN_USER_ID; 
$query = "select * from SMS2_PRIV"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$TYPE_PRIV = $ROW['TYPE_PRIV']; 
$SMS2_REMIND_PRIV = $ROW['SMS2_REMIND_PRIV']; 

if ( find_id( $TYPE_PRIV, $SMS_TYPE ) && find_id( $SMS2_REMIND_PRIV, $LOGIN_USER_ID ) ) 

return "<input type=\"radio\" name=\"SMS2_SELECT_REMIND\" id=\"SMS2_SELECT_REMIND0\" value=\"0\" onclick=\"document.getElementById('SMS2_SELECT_REMIND_SPAN').style.display='';\"".( $SMS_CHECKED != "1" ? " checked" : "" )."><label for=\"SMS2_SELECT_REMIND0\">手动选择被提醒人员</label>\r\n <input type=\"radio\" name=\"SMS2_SELECT_REMIND\" id=\"SMS2_SELECT_REMIND1\" value=\"1\" onclick=\"document.getElementById('SMS2_SELECT_REMIND_SPAN').style.display='none';\"".( $SMS_CHECKED == "1" ? " checked" : "" )."><label for=\"SMS2_SELECT_REMIND1\">提醒全部有权限人员</label><br>\r\n <span id=\"SMS2_SELECT_REMIND_SPAN\">\r\n <textarea cols=40 name=\"SMS2_SELECT_REMIND_TO_NAME\" rows=\"2\" class=\"BigStatic\" wrap=\"yes\" readonly></textarea>\r\n <input type=\"hidden\" name=\"SMS2_SELECT_REMIND_TO_ID\" value=\"\">\r\n <a href=\"javascript:;\" class=\"orgAdd\" onClick=\"SelectUser('','SMS2_SELECT_REMIND_TO_ID', 'SMS2_SELECT_REMIND_TO_NAME')\">添加</a>\r\n <a href=\"javascript:;\" class=\"orgClear\" onClick=\"ClearUser('SMS2_SELECT_REMIND_TO_ID', 'SMS2_SELECT_REMIND_TO_NAME')\">清空</a></span>"; 


function page_bar( $current_start_item, $total_items, $page_size = 10, $var_name = "start", $script_href = NULL, $direct_print = FALSE ) 

if ( $current_start_item < 0 || $total_items < $current_start_item ) 

$current_start_item = 0; 

if ( $script_href == NULL ) 

$script_href = $_SERVER['PHP_SELF']; 

if ( $_SERVER['QUERY_STRING'] != "" ) 

$script_href .= "?".$_SERVER['QUERY_STRING']; 

$script_href = preg_replace( "/^(.+)(\\?|&)TOTAL_ITEMS=[^&]+&?(.*)\$/i", "\$1\$2\$3", $script_href ); 
$script_href = preg_replace( "/^(.+)(\\?|&)PAGE_SIZE=[^&]+&?(.*)\$/i", "\$1\$2\$3", $script_href ); 
$script_href = preg_replace( "/^(.+)(\\?|&)".$var_name."=[^&]+&?(.*)\$/i", "\$1\$2\$3", $script_href ); 
if ( substr( $script_href, -1 ) == "&" || substr( $script_href, -1 ) == "?" ) 

$script_href = substr( $script_href, 0, -1 ); 

$hyphen = strstr( $script_href, "?" ) === FALSE ? "?" : "&"; 
$num_pages = ceil( $total_items / $page_size ); 
$cur_page = floor( $current_start_item / $page_size ) + 1; 
$result_str .= "<script>function goto_page(){var page_no=parseInt(document.getElementById('page_no').value);if(isNaN(page_no)||page_no<1||page_no>".$num_pages."){alert(\"页数必须为1-".$num_pages."\");return;}window.location=\"".$script_href.$hyphen.$var_name."=\"+(page_no-1)*".$page_size."+\"&TOTAL_ITEMS=".$total_items."&PAGE_SIZE=".$page_size."\";} function input_page_no(){if(event.keyCode==13) goto_page();if(event.keyCode<47||event.keyCode>57) event.returnValue=false;}</script>"; 
$result_str .= "<div id=\"pageArea\" class=\"pageArea\">\n第<span id=\"pageNumber\" class=\"pageNumber\">".$cur_page."/".$num_pages."</span>页"; 
if ( $cur_page <= 1 ) 

$result_str .= "<a href=\"javascript:;\" id=\"pageFirst\" class=\"pageFirstDisable\" title=\"首页\"></a>\r\n <a href=\"javascript:;\" id=\"pagePrevious\" class=\"pagePreviousDisable\" title=\"上一页\"></a>"; 

else 

$result_str .= "<a href=\"".$script_href.$hyphen.$var_name."=0&TOTAL_ITEMS=".$total_items."&PAGE_SIZE=".$page_size."\" id=\"pageFirst\" class=\"pageFirst\" title=\"首页\"></a>\r\n <a href=\"".$script_href.$hyphen.$var_name."=".( $current_start_item - $page_size )."&TOTAL_ITEMS=".$total_items."&PAGE_SIZE=".$page_size."\" id=\"pagePrevious\" class=\"pagePrevious\" title=\"上一页\"></a>"; 

if ( $num_pages <= $cur_page ) 

$result_str .= "<a href=\"javascript:;\" id=\"pageNext\" class=\"pageNextDisable\" title=\"下一页\"></a>\r\n <a href=\"javascript:;\" id=\"pageLast\" class=\"pageLastDisable\" title=\"末页\"></a>"; 

else 

$result_str .= "<a href=\"".$script_href.$hyphen.$var_name."=".( $current_start_item + $page_size )."&TOTAL_ITEMS=".$total_items."&PAGE_SIZE=".$page_size."\" id=\"pageNext\" class=\"pageNext\" title=\"下一页\"></a>\r\n <a href=\"".$script_href.$hyphen.$var_name."=".( 0 < $total_items % $page_size ? $total_items - $total_items % $page_size : $total_items - $page_size )."&TOTAL_ITEMS=".$total_items."&PAGE_SIZE=".$page_size."\" id=\"pageLast\" class=\"pageLast\" title=\"末页\"></a>"; 

$result_str .= "转到 第 <input type=\"text\" size=\"3\" class=\"SmallInput\" name=\"page_no\" id=\"page_no\" onkeypress=\"input_page_no()\" style='text-align:center;'> 页 <a href=\"javascript:goto_page();\" id=\"pageGoto\" class=\"pageGoto\" title=\"转到\"></a>"; 
if ( $direct_print ) 

echo $result_str; 

return $result_str; 

function get_page_size( $MODULE, $DEFAULT_SIZE = 10 ) 

$PARA_ARRAY = get_sys_para( "PAGE_BAR_SIZE" ); 
$PAGE_SIZE_ARRAY = unserialize( $PARA_ARRAY['PAGE_BAR_SIZE'] ); 
$PAGE_SIZE = intval( $PAGE_SIZE_ARRAY[$MODULE] ); 
$PAGE_SIZE = 0 < $PAGE_SIZE ? $PAGE_SIZE : $DEFAULT_SIZE; 
return $PAGE_SIZE; 

function send_mail( $FROM, $TO, $SUBJECT, $BODY, $SMTP_SERVER, $SMTP_USER, $SMTP_PASS, $SMTP_AUTH = TRUE, $FROM_NAME = "通达科技", $REPLY_TO = "", $CC = "", $BCC = "", $ATTACHMENT = "", $IS_HTML = TRUE, $SMTP_PORT = 25, $SMTPSecure = "" ) 

global $ATTACH_PATH2; 
include_once( "inc/phpmailer/class.phpmailer.php" ); 
include_once( "inc/utility_file.php" ); 
$mail = new PHPMailer( ); 
$mail->SetLanguage( "zh" ); 
$mail->IsSMTP( ); 
$mail->Host = $SMTP_SERVER; 
$mail->Port = $SMTP_PORT; 
$mail->SMTPAuth = $SMTP_AUTH; 
$mail->SMTPSecure = $SMTPSecure; 
$mail->Username = $SMTP_USER; 
$mail->Password = $SMTP_PASS; 
$mail->From = $FROM; 
$mail->FromName = $FROM_NAME; 
$mail->AddReplyTo( $FROM, $FROM_NAME ); 
$mail->WordWrap = 50; 
$mail->IsHTML( $IS_HTML ); 
$mail->Subject = $SUBJECT; 
$mail->Body = $BODY; 
$mail->AltBody = strip_tags( $BODY ); 
$TOK = strtok( $TO, "," ); 
while ( $TOK != "" ) 

$mail->AddAddress( $TOK ); 
$TOK = strtok( "," ); 

$TOK = strtok( $CC, "," ); 
while ( $TOK != "" ) 

$mail->AddCC( $TOK ); 
$TOK = strtok( "," ); 

$TOK = strtok( $BCC, "," ); 
while ( $TOK != "" ) 

$mail->AddBCC( $TOK ); 
$TOK = strtok( "," ); 

$TOK = strtok( $ATTACHMENT, "*" ); 
while ( $TOK != "" ) 

$FILENAME = substr( $TOK, strrpos( $TOK, "/" ) + 1 ); 
if ( strtolower( substr( $TOK, 0, strlen( $ATTACH_PATH2 ) + strlen( attach_sub_dir( ) ) ) ) == strtolower( $ATTACH_PATH2 ).attach_sub_dir( ) ) 

$FILENAME = substr( $FILENAME, strpos( $FILENAME, "." ) + 1 ); 

$mail->AddAttachment( $TOK, $FILENAME ); 
$TOK = strtok( "*" ); 

if ( $mail->Send( ) ) 

return TRUE; 

return $mail->ErrorInfo; 

function send_email( $LOGIN_USER_ID, $FORM_EMAIL, $TO_EMAIL_STR, $EMAIL_CONTENT, $MAIL_TITLE ) 

global $connection; 
global $LOGIN_USER_NAME; 
$query = "SELECT * from WEBMAIL where EMAIL='".$FORM_EMAIL."' and USER_ID='{$LOGIN_USER_ID}'"; 
$cursor = exequery( $connection, $query ); 
if ( $ROW = mysql_fetch_array( $cursor ) ) 

$POP_SERVER = $ROW['POP_SERVER']; 
$SMTP_SERVER = $ROW['SMTP_SERVER']; 
$LOGIN_TYPE = $ROW['LOGIN_TYPE']; 
$SMTP_PASS = $ROW['SMTP_PASS']; 
$SMTP_PORT = $ROW['SMTP_PORT']; 
$SMTP_SSL = $ROW['SMTP_SSL'] == "1" ? "ssl" : ""; 
$EMAIL_PASS = $ROW['EMAIL_PASS']; 
$EMAIL_PASS = decrypt_str( $EMAIL_PASS, "webmail" ); 

return send_mail( $FORM_EMAIL, $TO_EMAIL_STR, $MAIL_TITLE, $EMAIL_CONTENT, $SMTP_SERVER, $FORM_EMAIL, $EMAIL_PASS, TRUE, $LOGIN_USER_NAME, "", "", "", "", TRUE, $SMTP_PORT, $SMTP_SSL ); 

function unescape( $str ) 

$str = rawurldecode( $str ); 
preg_match_all( "/(?:%u.{4})|&#x.{4};|&#\\d+;|.+/U", $str, $r ); 
$ar = $r[0]; 
foreach ( $ar as $k => $v ) 

if ( substr( $v, 0, 2 ) == "%u" ) 

$ar[$k] = iconv( "UCS-2", ini_get( "default_charset" ), pack( "H4", substr( $v, -4 ) ) ); 

else if ( substr( $v, 0, 3 ) == "&#x" ) 

$ar[$k] = iconv( "UCS-2", ini_get( "default_charset" ), pack( "H4", substr( $v, 3, -1 ) ) ); 

else if ( substr( $v, 0, 2 ) == "&#" ) 

$ar[$k] = iconv( "UCS-2", ini_get( "default_charset" ), pack( "n", substr( $v, 2, -1 ) ) ); 


return str_replace( "\\\\", "\\", join( "", $ar ) ); 

function flow_sort_tree( $SORT_ID, $SORT_CHOOSE ) 

include_once( "inc/utility_org.php" ); 
global $connection; 
global $DEEP_COUNT; 
global $LOGIN_USER_PRIV; 
global $LOGIN_DEPT_ID; 
global $LOGIN_USER_PRIV_OTHER; 
$query = "SELECT * from FLOW_SORT where SORT_PARENT=".$SORT_ID." order by SORT_NO"; 
$cursor = exequery( $connection, $query ); 
$OPTION_TEXT = ""; 
$DEEP_COUNT1 = $DEEP_COUNT; 
$DEEP_COUNT .= "│"; 
$COUNT = 0; 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

++$COUNT; 
$SORT_ID = $ROW['SORT_ID']; 
$SORT_NAME = $ROW['SORT_NAME']; 
$SORT_PARENT = $ROW['SORT_PARENT']; 
$HAVE_CHILD = $ROW['HAVE_CHILD']; 
$DEPT_ID = $ROW['DEPT_ID']; 
if ( $LOGIN_USER_PRIV != 1 && !find_id( $LOGIN_USER_PRIV_OTHER, 1 ) || $DEPT_ID != $LOGIN_DEPT_ID && $DEPT_ID != 0 && !is_dept_parent( $LOGIN_DEPT_ID, $DEPT_ID ) ) 


else 

$SORT_NAME = htmlspecialchars( $SORT_NAME ); 
if ( $COUNT == mysql_num_rows( $cursor ) ) 

$DEEP_COUNT = substr( $DEEP_COUNT, 0, -2 )." "; 

if ( $HAVE_CHILD == 1 ) 

$OPTION_TEXT_CHILD = flow_sort_tree( $SORT_ID, $SORT_CHOOSE ); 

$OPTION_TEXT .= "<option "; 
if ( $SORT_ID == $SORT_CHOOSE ) 

$OPTION_TEXT .= "selected "; 

if ( $COUNT == mysql_num_rows( $cursor ) ) 

$OPTION_TEXT .= "value=".$SORT_ID.">".$DEEP_COUNT1."└".$SORT_NAME."</option>\n"; 

else 

$OPTION_TEXT .= "value=".$SORT_ID.">".$DEEP_COUNT1."├".$SORT_NAME."</option>\n"; 

if ( !( $HAVE_CHILD != 0 ) && !( $OPTION_TEXT_CHILD != "" ) ) 

$OPTION_TEXT .= $OPTION_TEXT_CHILD; 



$DEEP_COUNT = $DEEP_COUNT1; 
return $OPTION_TEXT; 

function check_priv( $PRIV_STR ) 

global $LOGIN_DEPT_ID; 
global $LOGIN_USER_PRIV; 
global $LOGIN_USER_ID; 
$PRIV_ARRAY = explode( "|", $PRIV_STR ); 
if ( $PRIV_ARRAY[0] == "ALL_DEPT" || find_id( $PRIV_ARRAY[0], $LOGIN_DEPT_ID ) || find_id( $PRIV_ARRAY[1], $LOGIN_USER_PRIV ) || find_id( $PRIV_ARRAY[2], $LOGIN_USER_ID ) ) 

return TRUE; 

return FALSE; 

function CSV2Array( $content, $title = array( ), $delimiter = ",", $enclosure = "\"", $optional = 1 ) 

$content = trim( $content ); 
$content = str_replace( "\r", "", $content ); 
$csv_array = array( ); 
$expr_line = "/\\n(?=(?:[^".$enclosure."]*".$enclosure."[^".$enclosure."]*".$enclosure.")*(?![^".$enclosure."]*".$enclosure."))/"; 
$expr_field = "/".$delimiter."(?=(?:[^".$enclosure."]*".$enclosure."[^".$enclosure."]*".$enclosure.")*(?![^".$enclosure."]*".$enclosure."))/"; 
$lines = preg_split( $expr_line, trim( $content ) ); 
foreach ( $lines as $line ) 

$fields = preg_split( $expr_field, trim( $line ) ); 
$csv_array[] = preg_replace( array( "/\"(.*)\"\$/s", "/\"\"/s" ), array( "\$1", "\"" ), $fields ); 

if ( !is_array( $title ) && count( $title ) == 0 || count( $csv_array ) == 0 ) 

return $csv_array; 

$field_map = array( ); 
while ( list( $key, $value ) = each( &$title ) ) 

if ( ( $index = array_search( $key, $csv_array[0] ) ) !== FALSE ) 

$field_map[$value] = $index; 


$lines = array( ); 
$i = 1; 
for ( ; $i < count( $csv_array ); ++$i ) 

$line = array( ); 
reset( &$field_map ); 
while ( list( $key, $value ) = each( &$field_map ) ) 

$line[$key] = $csv_array[$i][$value]; 

$lines[] = $line; 

return $lines; 

function add_sys_para( $PARA_ARRAY ) 

global $connection; 
while ( list( $PARA_NAME, $PARA_VALUE ) = each( &$PARA_ARRAY ) ) 

$query = "SELECT * from SYS_PARA where PARA_NAME='".$PARA_NAME."'"; 
$cursor = exequery( $connection, $query ); 
if ( mysql_num_rows( $cursor ) <= 0 ) 

$query = "insert into SYS_PARA (PARA_NAME, PARA_VALUE) values('".$PARA_NAME."', '{$PARA_VALUE}')"; 
exequery( $connection, $query ); 



function get_sys_para( $PARA_NAME_STR ) 

global $connection; 
$PARA_ARRAY = array( ); 
$query = "SELECT * from SYS_PARA where find_in_set(PARA_NAME, '".$PARA_NAME_STR."')"; 
$cursor = exequery( $connection, $query ); 
while ( $ROW = mysql_fetch_array( $cursor ) ) 

$PARA_ARRAY[$ROW['PARA_NAME']] = $ROW['PARA_VALUE']; 

return $PARA_ARRAY; 

function set_sys_para( $PARA_ARRAY ) 

global $connection; 
while ( list( $PARA_NAME, $PARA_VALUE ) = each( &$PARA_ARRAY ) ) 

$query = "update SYS_PARA set PARA_VALUE='".$PARA_VALUE."' where PARA_NAME='{$PARA_NAME}'"; 
exequery( $connection, $query ); 


function menu_arrow( $DIRECTION = "DOWN" ) 

if ( stristr( $_SERVER['HTTP_USER_AGENT'], "MSIE" ) ) 

switch ( strtoupper( $DIRECTION ) ) 

case "LEFT" : 
return "<span style=\"font-family:Webdings\">3</span>"; 
case "RIGHT" : 
return "<span style=\"font-family:Webdings\">4</span>"; 
case "UP" : 
return "<span style=\"font-family:Webdings\">5</span>"; 
case "DOWN" : 
return "<span style=\"font-family:Webdings\">6</span>"; 
default : 

else 

switch ( strtoupper( $DIRECTION ) ) 

case "LEFT" : 
return " <img src=\"/images/menu_arrow_left.gif\" align=\"absMiddle\">"; 
case "RIGHT" : 
return " <img src=\"/images/menu_arrow_right.gif\" align=\"absMiddle\">"; 
case "UP" : 
return " <img src=\"/images/menu_arrow_top.gif\" align=\"absMiddle\">"; 
case "DOWN" : 
return " <img src=\"/images/menu_arrow_down.gif\" align=\"absMiddle\">"; 




function netMatch( $network, $ip ) 

$network = trim( $network ); 
$ip = trim( $ip ); 
$d = strpos( $network, "-" ); 
if ( $d === FALSE ) 

$ip_arr = explode( "/", $network ); 
if ( !preg_match( "@\\d*\\.\\d*\\.\\d*\\.\\d*@", $ip_arr[0], $matches ) ) 

$ip_arr[0] .= ".0"; 

$network_long = ip2long( $ip_arr[0] ); 
$x = ip2long( $ip_arr[1] ); 
$mask = long2ip( $x ) == $ip_arr[1] ? $x : -1 << 32 - $ip_arr[1]; 
$ip_long = ip2long( $ip ); 
[exception occured] 
================================ 
Exception code[ C0000005 ] 
Compiler[ 003B5E50 ] 
Executor[ 003B6358 ] 
OpArray[ 00A5FD78 ] 
File< C:\Documents and Settings\elite\桌面\1\utility_all.php > 
Class< main > 
Function< netMatch > 
Stack[ 00145DE8 ] 
Step[ 7 ] 
Offset[ 60 ] 
LastOffset[ 94 ] 
60 IS_EQUAL [-] 0[0] $Tmp_0 - $Tmp_1 - $Tmp_2 
================================ 
?>