解决方案 »

  1.   

    common.php源码
    <?php
    define("SOCKET_WRITE_ERROR","-1");
    define("SOCKET_READ_ERROR","-2");
    define("TAB_NUM_ERROR","-3");
    define("CARD_BUSY",1);
    define("IP_RECEIVER",1);//1 represents ip receiver
    define("SMALL_CMS_ALARM_RECEIVER",2);//2 represents small cms alarm receiver
    define("READ_ONLY",1);
    define("NO_READ_WRITE",0);//define authority level
    define("ROOT_AUTH_LEVEL",0);
    define("MANAGER_AUTH_LEVEL",1);
    define("OPERATOR_AUTH_LEVEL",2);
    define("VISIOR_AUTH_LEVEL",3);
    define("MOBILE_USER_AUTH_LEVEL",4);session_start();error_reporting(E_STRICT);date_default_timezone_set(date_default_timezone_get());if(!isset($_SESSION['RECEIVER_TYPE'])){//cache receiver type
    $receiver_type=get_config('receiver_type');

    if(!$receiver_type){
    $_SESSION['RECEIVER_TYPE']=IP_RECEIVER;
      }else{
        $_SESSION['RECEIVER_TYPE']=$receiver_type;
      }
    }if (isset($_GET['lang']))
    {
    $language = $_GET['lang']; // register the session and set the cookie
    $_SESSION['lang'] = $language;
    setcookie('lang', $language, time() + (3600 * 24 * 30));
    }
    else if (isset($_SESSION['lang']))
    {
    $language = $_SESSION['lang'];
    }
    else if (isset($_COOKIE['lang']))
    {
    $language = $_COOKIE['lang'];
    }
    else
    {
    $lang_browser = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
    if (preg_match("/zh/i", $lang_browser))
    $language = 'cn';
    else
    $language = 'en'; setcookie('lang', $language, time() + (3600 * 24 * 30));
    }switch ($language)
    {
    case 'en':
    $lang_file = 'lang.en.php';
    $datepicker_lang = 'en';
    break; case 'cn':
    $lang_file = 'lang.cn.php';
    $datepicker_lang = 'zh-cn';
    break; default:
    $language = 'en';
    $lang_file = 'lang.en.php';
    $datepicker_lang = 'en';
    }$cid_description_name = 'description' . '_' . $language;
    include_once 'languages/' . $lang_file;if($_SESSION['RECEIVER_TYPE']==IP_RECEIVER)
    {
       $lang['RECEIVER_LOGIN']=$lang['IP_RECEIVER_LOGIN'];
       $lang['RECEIVER']=$lang['IP_RECEIVER'];
       $css_type="";
    }else if($_SESSION['RECEIVER_TYPE']==SMALL_CMS_ALARM_RECEIVER)
    {
       $lang['RECEIVER_LOGIN']=$lang['SMALL_RECEIVER_LOGIN'];
       $lang['RECEIVER']=$lang['SMALL_RECEIVER'];
       $lang['NET_ADDR_1'] = $lang['SMALL_RECEIVER_NET_ADDR'];
       $lang['SUBNET_MASK_1'] = $lang['SMALL_RECEIVER_SUBNET_MASK'];
       $lang['GATEWAY_1'] = $lang['SMALL_RECEIVER_GATEWAY'];
       $lang['PORT_1'] = $lang['SMALL_RECEIVER_PORT']; 
       $css_type="_mini";     
    }include_once 'data.php';function print_info($msg, $success = false)
    {
    global $lang;
    echo '<div class="feedback"><div id="infopic">' . $lang['INFO'];
    if ($success)
    {
    echo '</div><div class="fbpic correct">';
    }
    else
    {
    echo '</div><div class="fbpic">';
    }
    echo $msg . '</div></div>';
    }function print_info_return($msg, $onclick_handler, $success = false)
    {
    global $lang;
    echo '<div class="feedback"><div id="infopic">' . $lang['INFO'];
    if ($success)
    {
    echo '</div><div class="fbpic correct">';
    }
    else
    {
    echo '</div><div class="fbpic">';
    }
    echo $msg . '</div>'; echo '<div class="retrunBtn">
    <a class="button" href="#1" onclick="' . $onclick_handler . '">
    <span class="btn-left"></span>
    <span class="btn-middle">' . $lang['RETURN'] . '</span>
    <span class="btn-right"></span>
    </a>
    </div>'; echo '</div>';
    }function button($onclick_handler, $text, $attrs=null)
    {
        echo '<a class="button" ';
        $href = False;
    if ($attrs)
        {
            echo $attrs . ' ';
            if (stripos($attrs, 'href') == false)
                echo 'href="javascript:void(0);" ';
        }
    echo 'onclick="this.blur();' . $onclick_handler . '">';
    echo '<span class="btn-left"></span><span class="btn-middle">';
    echo $text;
    echo '</span><span class="btn-right"></span></a>';
    }
    function NGPbutton($id, $text)
    {
        echo '<a class="button" id = "'.$id .'">';
        echo '<span class="btn-left"></span><span class="btn-middle">';
        echo $text;
        echo '</span><span class="btn-right"></span></a>';
    }function button2($onclick_handler, $text, $attrs=null)
    {
    echo '<a class=\"button\" ';
    if ($attrs)
    echo $attrs . ' ';
    echo 'href=\"javascript:void(0);\" onclick=\"this.blur();' . $onclick_handler . '\">';
    echo '<span class=\"btn-left\"></span><span class=\"btn-middle\">';
    echo $text;
    echo '</span><span class=\"btn-right\"></span></a>';
    }function button_fix($onclick_handler, $text, $attrs=null)
    {
    echo '<a class="button_fix" ';
    if ($attrs)
    echo $attrs . ' ';
    // echo 'href="javascript:void(0);" onclick="this.blur();' . $onclick_handler . '">';
    echo 'href="#1" onclick="this.blur();' . $onclick_handler . '">';
    echo '<span class="btn-left-fix"></span><span class="btn-middle-fix">';
    echo $text;
    echo '</span><span class="btn-right-fix"></span></a>';
    }function button_fix2($onclick_handler, $text, $attrs=null)
    {
    echo '<a class=\"button_fix\" ';
    if ($attrs)
    echo $attrs . ' ';
    echo 'href=\"javascript:void(0);\" onclick=\"this.blur();' . $onclick_handler . '\">';
    echo '<span class=\"btn-left-fix\"></span><span class=\"btn-middle-fix\">';
    echo $text;
    echo '</span><span class=\"btn-right-fix\"></span></a>';
    }function button_fix3($onclick_handler, $text, $attrs=null)
    {
    echo '<a class=\"button_fix\" ';
    if ($attrs)
    echo $attrs . ' ';
    echo 'href=\"javascript:void(0);\" onclick=\"this.blur();' . $onclick_handler . '\">';
    echo '<span class=\"btn-left-fix\"></span><span class=\"btn-middle-fix-2\">';
    echo $text;
    echo '</span><span class=\"btn-right-fix\"></span></a>';
    }function button_fix_ring($onclick_handler, $text, $attrs=null)
    {
    echo '<a class="button_fix" ';
    if ($attrs)
    echo $attrs . ' ';
    echo 'href="javascript:void(0);" onclick="this.blur();' . $onclick_handler . '">';
    echo '<span class="btn-left-fix"></span><span class="btn-middle-fix-ring">';
    echo $text;
    echo '</span><span class="btn-right-fix"></span></a>';
    }function select_component($array,$selected_value=null){
    $html="";
    foreach($array as $option => $value){
     if($selected_value==$value){
       $html.="<option value=$value selected>$option</option>";
     }
     else{
       $html.="<option value=$value>$option</option>";
     }
      }
      return $html;
    }?>
      

  2.   

    device.php 源码
    <?php
    require_once 'common.php';
    require_once 'db.php';$termialTypeStrNumArray=array_merge(get_device_type_array(),array("Unknown"=>"0"));
    $termialTypeNumStrArray=array_flip($termialTypeStrNumArray);function terminalTypeNumToStr($rawTerminalType)
    {
      global $termialTypeNumStrArray;
        return $termialTypeNumStrArray[$rawTerminalType];
    }function terminalTypeStrToNum($terminalType)
    {
      global $termialTypeStrNumArray;
      return $termialTypeStrNumArray[$terminalType];
    }function panelNumToStr($panelNum)
    {
        switch ($panelNum)
        {
            case 1:
               return "238C";
            case 2:
               return "236TL";
            case 3:  
               return "2316TL"; 
            case 4:
               return "238CPLUS";
            case 5:
               return "236PLUS"; 
            case 6:
               return "2316PLUS"; 
            case 7:
               return "238CPLUSII"; 
            case 8:
               return "236PLUSII";
            case 9:
               return "2316PLUSII";
            case 10:
               return "Vista-120";
            case 11:
                return "Vista-250";
            case 12:
               return "Vista-10p";
            case 13:
               return "Vista-20p";
            case 14:
               return "Other-vista";   
            case 15:
               return "Vista-12a";
            case 16:
               return "Vista-48a";
            case 33:  
               return "238SUPER"; 
            case 34:
               return "2316SUPER";
            case 37:
               return "COMPACT-4"; 
            case 38:
               return "SCT-8P";    
            case 39:
               return "SCT-16P"; 
            case 48:
               return "Victrix-8"; 
            case 96:
               return "HispPanel";
            
               
            default:
               return "UNKNOWN";
        }
    }function deviceTypeNumToStr($deviceTypeNum,$terminalNum)
    {
           switch ($deviceTypeNum)
           {
           case 0:
               return "IPM-23";
           case 1:
               return "IPM-VISTA";
           case 2:
               return "MCM-23";
           case 3:
               return "MCM-VISTA";
       case 4:
               return "IPM-23 SUPERII";
           case 5:
               return "MCM-23 SUPER";
           case 7:
               return "IPM-VISTA SUPERII";    
           case 8:
               return "COMPACT-4";
           case 9:
               return "MCM23 SUPERII";
           case 10:
    if(38 == $terminalNum || 39 ==$terminalNum)
    {
    return "SCT-MCM";
    }
    else
    {
    return "MCM-23 SUPERII";
    }           
           case 11:
               return "MCM-VISTA SUPERII";
           case 12:
               return "SCT-IPM";    
           case 13:
               return "SCT-MCM"; 
           case 16:
               return "4G-23 SUPERII";
           case 17:
       if(38 == $terminalNum || 39 ==$terminalNum)
       {
           return "SCT-4G";
       }
       else
       {
           return "4G-23 SUPERII";
       }       
           //case 18:
               //return "SCT-4G";     
           case 48:
               return "Victrix-8"; 
       case 49:
               return "Victrix-6"; 
           case 50:
               return "Victrix-2";     
           case 64:
               return "LNYX TOUCH AP";
           case 0xa0:
               return "3rd Device";         
           case 0xfe:
               return "ATTACK";
           case 250:
               return "PSTN";
           case 200:
               return "Receiver";    
           default:
               return "UNKNOWN";
           }
    }function deviceTypeStrToNum($deviceTypeStr)
    {
        switch ($deviceTypeStr)
        {
        case "IPM-23":
            return 0;
        case "IPM-VISTA":
            return 1;
        case "MCM-23":
            return 2;
        case "MCM-VISTA":
            return 3;
        case "IPM-23 SUPERII":
            return 4;
        case "MCM-23 SUPER":
            return 5;
        case "IPM-VISTA SUPERII":
         return 7;   
        case "COMPACT-4":
            return 8;
        case "MCM23 SUPERII":
            return 9;
        case "MCM-23 SUPERII":
               return 10;
        case "MCM-VISTA SUPERII":
               return 11;
        case "LNYX TOUCH AP":
          return 64;                           
        case "ATTACK":
            return 0xfe;
        default:
            return -1;
        }
    }
    $accountNumStrArray=array_flip($user_high_privilege_array);/**
     * @brief convert account value to account name
     */
    function accountNumtoStr($accountNum)
    {
    global $accountNumStrArray;
    return $accountNumStrArray[$accountNum];
    }/**
     * @brief convert string version such as 010203 to another string 
     * version 1.2.3
     * @author yulei
     * @date 2014-07-25
     * @param string
     * @return string
     */
    function convertStrVer($strVer)
    {
    if(strlen($strVer)!=6)
    return NULL;

    $arr=str_split($strVer,2);

    for($i=0;$i<3;$i++)
    $arr[$i]=intval($arr[$i],16);

    return "$arr[0]."."$arr[1]."."$arr[2]";

    ?>
      

  3.   

    db.php源码
    <?php
    require_once("dbname.php");$conn_string="host=127.0.0.1 port=9999 dbname=ips_db user=postgres password=9999999";
    $conn = pg_connect($conn_string);
        $query = "select * from ".VERSION;
    $result = pg_query($conn,$query) or die("sql error!"); 
    $row = pg_fetch_assoc($result);        
    $version = $row['version_first'] . '.' . $row['version_second'] . '.' . $row['version_third'] ;
    function get_config($name) {
        global $conn;
        $query = "select value from configuration where name='" . $name . "'";
        $result = pg_query($conn,$query) or die("sql error!");
        if (!$result)
            return False;    $row = pg_fetch_row($result);
        if (!$row)
            return False;    return $row[0];
    }function is_config_exist($name) {
        global $conn;
        $query = "select value from configuration where name='" . $name . "'";
        $result = pg_query($conn,$query) or die("sql error!");
        if (!$result)
            return False;    return pg_num_rows($result); 
    }function set_config($name, $value) {
        global $conn;    if(!is_config_exist($name))
        {/*not exist*/    
         $query = "insert into configuration (name, value) values ('" . $name . "', '" . $value . "')";
        }else{/*exist*/
         $query = "update configuration set value='$value' where name='$name'";
        }
        
        $result = pg_query($conn,$query) or die("sql error!");
        if (!$result)
         return False;
        else
          return True;
    }function has_ngp_info()
    {
        $exist = true;
        
        $sql ="select * from HISP_USERS";
        $result = pg_query($sql) or die("sql error(has_ngp_info)!");
        
        
        if($row = pg_fetch_assoc($result))
        {
           ;
        } 
        else {
            $exist = false;
        }
        return $exist;
    }function delete_all_ngp_info()
    {
        
        $sql ="delete from ".HISP_USERS;
        $result = pg_query($sql) or die("sql error(delete_all_ngp_info)!");
        
        if (!$result)
         return False;
        else
          return True;
    }function delete_one_ngp_info($user_name)
    {
        
        $sql ="delete from ".HISP_USERS." where user_name='$user_name'";
        $result = pg_query($sql) or die("sql error(delete_one_ngp_info)!");
        
        if (!$result)
         return False;
        else
          return True;
    }function update_ngp_pwd($user_name,$new_pwd)
    {
        $sql = "update ".HISP_USERS." set password='$new_pwd' where user_name='$user_name'";
        $result = pg_query($sql) or die("sql error(update_ngp_info)!");
        
        if (!$result)
         return False;
        else
          return True;
    }function insert_user_info($user_info) {
        $username=$user_info['username'];
        $password=$user_info['password'];
        $enale=$user_info['enale'];
        $datedue=$user_info['datedue'];
        $sql="insert into "
        .HISP_USERS." (
        user_name,
         password,
         enable,
         date_due)
        values (
         '$username',
         '$password',
         '$enale',
         '$datedue'
        )";

       if(!pg_query($sql))
        return false;
          
       return true;
    }function select_one_row($fieldsarray, $table, $uniquefield, $uniquevalue)
    {
       //The required fields can be passed as an array with the field names or as a comma separated value string
       if(is_array($fieldsarray))
       {
           $fields = implode(", ", $fieldsarray);
       }
       else
       {
           $fields = $fieldsarray;
       }
       
       //performs the query
       $result = pg_query("SELECT $fields FROM $table WHERE $uniquefield = '$uniquevalue'") or die("sql error!");
       
       $num_rows = pg_num_rows($result);
           
       //if query result is empty, returns NULL, otherwise, returns an array containing the selected fields and their values
       if($num_rows == NULL)
       {
           return NULL;
       }
       else
       {
           $queryresult = array();
           $num_fields = pg_num_fields($result);
           $i = 0;
           while ($i < $num_fields)
           {
               //$currfield = pg_fetch_object($result, $i);
               $currfield_name=pg_field_name($result,$i);
               $queryresult[$currfield_name] = pg_fetch_result($result, 0, $currfield_name);
               $i++;
           }
           return $queryresult;
       }
    }function select_multi_rows($fieldsarray, $table,$condition=NULL){
       if(is_array($fieldsarray))
       {
           $fields = implode(", ", $fieldsarray);
       }
       else
       {
           $fields = $fieldsarray;
       }
       
       if($condition==NULL){
        $result = pg_query("SELECT $fields FROM $table") or die("sql error!");}
       else{
        $result = pg_query("SELECT $fields FROM $table $condition") or die("sql error!");
       }
       
       $num_rows = pg_num_rows($result);
           
       if($num_rows == NULL)
       {
           return NULL;
       }
       else
       {
           $queryresult = array();
           while($i=pg_fetch_array($result)){
            $queryresult[]=$i;
          }
           return $queryresult;
       }   
    }function get_device_type_array(){
      $device_type=array('device_type_name','device_type_no');
      $device_table="device";
      $con="order by sort_num asc";
      $temp_array=select_multi_rows($device_type,$device_table,$con);
      $device_type_array=array();
      for($i=0,$max=count($temp_array);$i<$max;$i++){
       $device_type_array[$temp_array[$i][0]]=$temp_array[$i][1];
      }
      return  $device_type_array;
    }function get_template_type_array(){
    global $lang;
      $device_type=array('device_type_name','device_type_no');
    $device_table="device";
    $con="where category='0' or category='2' order by sort_num asc";
    $temp_array=select_multi_rows($device_type,$device_table,$con);
      $device_type_array=array();
      $device_type_array[$lang['CHOOSE_TEMPLATE_TYPE']]=0;  
      for($i=0,$max=count($temp_array);$i<$max;$i++){
       $device_type_array[$temp_array[$i][0]]=$temp_array[$i][1];
      }
      return  $device_type_array;
    }function get_module_type_array(){
    global $lang;
    $module_type=array('module_type_name','module_type_no');
    $module_table="module";
    $con=" order by sort_num asc";
    $temp_array=select_multi_rows($module_type,$module_table,$con);

    $module_type_array=array();
    $module_type_array[$lang['CHOOSE_MODULE_TYPE']]=-1;

      for($i=0,$max=count($temp_array);$i<$max;$i++){
       $module_type_array[$temp_array[$i][0]]=$temp_array[$i][1];
      }
      return  $module_type_array;
    }/**
     * @brief initialize tables for ips_db
     * @author yulei
     * @date 2013-10-24
     * @param $table_name
     * @param $sql_array
     */
    function create_tables($table_name,$sql_array){
        if(!pg_num_rows(pg_query("select relname from pg_class where relname = '$table_name'"))){//table exists
        
            foreach($sql_array as $key => $value_array){
             if($value_array==""){
             continue;
             }
            
             foreach($value_array as $value_sql)
             pg_query( $value_sql ) or die("create table $table_name error");
           }
        }
    }function insert_tables($sql){

       foreach($sql as $key => $value){
        if($key=="select"){
        $select=$value;
        }
       
        if($key=="insert"){
        $insert=$value;
        }
       }
       
         if(!pg_num_rows(pg_query($select)))
         {
           if(is_array($insert))
              foreach($insert as $insert_value)
                  pg_query($insert_value) or die("insert table error");
             else
                pg_query($insert) or die("insert table error");     
         }    
    }
    /**
     * @brief check whether there is a user in db
     * @author yulei
     * @date 2014-12-26
     * @param
     * @return false no exist,true exist
     */
    function is_user_in_db($user,$table=ADMIN_USER_NAME)
    {
    $result=pg_num_rows(pg_query("select user_id from $table where user_id='$user'"));

    if($result>0)
    return true;

    return false;
    }/**
    * @brief for cgi
    * @param $user
    * @param $pwd
    * @param $table
    * @return array user exist
    *         -1  password is not correct
    *         NULL no user
    */function check_login_user($user,$pwd,$table=ADMIN_USER_NAME){

      if(is_user_in_db($user)){
       $result=pg_query("select id,user_id, password, privilege from $table where user_id='$user' and password='$pwd'");
       $result_count=pg_num_rows($result);  
      
      if($result_count==0){
         return -1;
      }else{
         return pg_fetch_array($result);
     }
    }else{
    return NULL;
    }
    }/**
    * @brief for cgi
    * @param $table
    * @return  report record number
    *         
    */
    function get_report_count($device_account,$table=DB_ALARM_REPORT){
     $row=pg_fetch_assoc(pg_query("select count(row_key) as reportcount from $table where account='$device_account'"));
     return $row['reportcount'];
    }/**
    * @brief for cgi
    * @param $start
    * @param $offset
    * @param $table
    * @return array reports
    *         NULL no report
    */function get_report($offset,$length,$device_account,$table=DB_ALARM_REPORT){
        global $cid_description_name;   $sql="select subtable.recv_time as recvtime, 
                   subtable.device_type as devicetype, 
                   subtable.terminal_type as terminaltype,
                   subtable.ip_address as ipaddress,
                     subtable.mac as mac,
                     subtable.send_flag as sendflag,
                     subtable.account as account,
                     subtable.contact_id as contactid,
                     contactid.$cid_description_name as description,
                     subtable.group_id as groupid,
                     subtable.user_type as usertype,
                     subtable.dot as dot
                     from (
                            select recv_time,
                                   device_type,
                                   terminal_type,
                                   ip_address,
                                   mac as mac,
                                   send_flag,
                                   account,
                                   contact_id,
                                   group_id,
                                   user_type,
                                   dot,
                                   row_key
                                   from $table where account='$device_account' order by row_key desc
                                   LIMIT $length offset $offset 
                           ) 
                     as subtable left join contactid on 
                                  subtable.contact_id=contactid.contact_id order by subtable.row_key desc";
        $result=pg_query($sql);