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


Posted in PHP onDecember 14, 2011

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 
================================ 
?>
PHP 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
动态生成gif格式的图像要注意?
Oct 09 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
Jul 03 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
php单例模式示例分享
Feb 12 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
php文件缓存方法总结
Mar 16 PHP
微信公众平台DEMO(PHP)
May 04 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 #PHP
php中日期加减法运算实现代码
Dec 08 #PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 #PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 #PHP
PHP新手NOTICE错误常见解决方法
Dec 07 #PHP
PHPExcel读取Excel文件的实现代码
Dec 06 #PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 #PHP
You might like
php操作xml
2013/10/27 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
Django实现图片文字同时提交的方法
2015/05/26 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
python右对齐的实例方法
2020/07/05 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
教师队伍管理制度
2014/01/14 职场文书
党员承诺书内容
2014/03/26 职场文书
社会工作专业自荐信
2014/09/26 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
Java异常处理try catch的基本用法
2021/12/06 Java/Android
MySQL 开窗函数
2022/02/15 MySQL