Advertisement
Guest User

emad

a guest
Sep 28th, 2012
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 83.99 KB | None | 0 0
  1. <?php
  2. class Mysql
  3. {
  4.     private $conn;
  5.     private $query;
  6.     private $log_init;
  7.     private $log;
  8.     private $groupList = array();
  9.     private $serverList = array();
  10.    
  11.     function __construct()
  12.     {
  13.         global $logger;
  14.         $this->log =& $logger;
  15.         if (!empty($_SESSION['status']) && $_SESSION['status'] == "authorized") {
  16.             $this->log_init = 'User [' . $_SESSION['username'] . '] (' . $_SESSION['remote_address'] . ') | ';
  17.         }
  18.         $this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem connecting to the database.');
  19.         date_default_timezone_set('Africa/Khartoum');
  20.     }
  21.    
  22.     function verify_Username_and_Pass($un, $pwd)
  23.     {
  24.         $query = "SELECT *FROM members
  25.                    WHERE username = ? AND password = ?
  26.                    LIMIT 1";
  27.        
  28.         if ($stmt = $this->conn->prepare($query)) {
  29.             $stmt->bind_param('ss', $un, $pwd);
  30.             $stmt->execute();
  31.             unset($query);
  32.            
  33.            
  34.             if ($stmt->fetch()) {
  35.                 $stmt->close();
  36.                 return true;
  37.             }
  38.         }
  39.     }
  40.    
  41.     function get_reseller_id($un)
  42.     {
  43.         unset($query);
  44.         $query = "SELECT reseller
  45.                    FROM members
  46.                    WHERE username = '$un'
  47.                    LIMIT 1";
  48.        
  49.         if ($stmt = $this->conn->query($query)) {
  50.             $result = $stmt->fetch_object();
  51.             return $result->reseller;
  52.             $stmt->close();
  53.         }
  54.     }
  55.    
  56.     function get_member_serverallow($un)
  57.     {
  58.         unset($query);
  59.         $query = "SELECT serverallow
  60.                    FROM members
  61.                    WHERE username = '$un'
  62.                    LIMIT 1";
  63.        
  64.         if ($stmt = $this->conn->query($query)) {
  65.             $result  = $stmt->fetch_object();
  66.             $result1 = $result->serverallow;
  67.             $stmt->close();
  68.             return $result1;
  69.         } else {
  70.             return 1;
  71.         }
  72.     }
  73.    
  74.     function get_member_profileallow($un)
  75.     {
  76.         unset($query);
  77.         $query = "SELECT profileallow
  78.                    FROM members
  79.                    WHERE username = '$un'
  80.                    LIMIT 1";
  81.        
  82.         if ($stmt = $this->conn->query($query)) {
  83.             $result = $stmt->fetch_object();
  84.             return $result->profileallow;
  85.             $stmt->close();
  86.         } else {
  87.             return $this->get_sum_profile_ident_by_server($this->get_member_serverallow($un));
  88.             ;
  89.         }
  90.     }
  91.    
  92.    
  93.     function get_member_total_user($un)
  94.     {
  95.         unset($query);
  96.         $query = "SELECT total_users
  97.                    FROM members
  98.                    WHERE username = '$un'
  99.                    LIMIT 1";
  100.        
  101.         if ($stmt = $this->conn->query($query)) {
  102.             $result = $stmt->fetch_object();
  103.             return $result->total_users;
  104.             $stmt->close();
  105.         } else {
  106.             return 0;
  107.         }
  108.     }
  109.    
  110.     function get_member_active_user($un)
  111.     {
  112.         unset($query);
  113.         $query = "SELECT active_users
  114.                    FROM members
  115.                    WHERE username = '$un'
  116.                    LIMIT 1";
  117.        
  118.         if ($stmt = $this->conn->query($query)) {
  119.             $result = $stmt->fetch_object();
  120.             return $result->active_users;
  121.             $stmt->close();
  122.         } else {
  123.             return 0;
  124.         }
  125.     }
  126.    
  127.     public function getMemberList()
  128.     {
  129.         $query = "SELECT * FROM members
  130.                    ORDER BY id";
  131.         if ($result = $this->conn->query($query)) {
  132.             $num_of_rows = $result->num_rows;
  133.             if ($num_of_rows >= 1) {
  134.                 $results_array = array();
  135.                 while ($row = $result->fetch_object()) {
  136.                     $results_array[] = $row;
  137.                 }
  138.             }
  139.         }
  140.         return $results_array;
  141.     }
  142.    
  143.    
  144.    
  145.     function get_reseller_profile_allow($reseller_username, $server = 1)
  146.     {
  147.         unset($query);
  148.         $query = "SELECT profileallow
  149.                  FROM members
  150.                  WHERE username = '$reseller_username'
  151.                  LIMIT 1";
  152.        
  153.         if ($stmt = $this->conn->query($query)) {
  154.             $result = $stmt->fetch_object();
  155.             return $result->profileallow;
  156.             $stmt->close();
  157.         } else {
  158.             return $this->get_sum_profile_ident_by_server($server);
  159.         }
  160.     }
  161.    
  162.     function get_reseller_server_allow($reseller_username)
  163.     {
  164.         unset($query);
  165.         $query = "SELECT serverallow
  166.                  FROM members
  167.                  WHERE username = '$reseller_username'
  168.                  LIMIT 1";
  169.        
  170.         if ($stmt = $this->conn->query($query)) {
  171.             $result = $stmt->fetch_object();
  172.             return $result->serverallow;
  173.             $stmt->close();
  174.         } else {
  175.             return 1;
  176.         }
  177.     }
  178.    
  179.     //select sum(ident) from profiles where server=1 and profileport <> 0
  180.     //Get Sum of Profile ident by Server
  181.     function get_sum_profile_ident_by_server($server)
  182.     {
  183.         $query = "SELECT SUM(ident) FROM profiles
  184.                    WHERE server = $server
  185.                    and profileport <> 0";
  186.         if ($stmt = $this->conn->query($query)) {
  187.             $num_of_rows = $stmt->num_rows;
  188.            
  189.             if ($num_of_rows >= 1) {
  190.                 $result1 = $stmt->fetch_array(MYSQLI_NUM);
  191.                 $result  = intval($result1[0]);
  192.             }
  193.            
  194.             return $result;
  195.         }
  196.     }
  197.    
  198.     function get_permission_id($un)
  199.     {
  200.         unset($query);
  201.         $query = "SELECT permissions
  202.                FROM members
  203.                WHERE username = '$un'
  204.                LIMIT 1";
  205.        
  206.         if ($stmt = $this->conn->query($query)) {
  207.             $result = $stmt->fetch_object();
  208.             return $result->permissions;
  209.             $stmt->close();
  210.         }
  211.     }
  212.    
  213.     //================================================== Server Section ============================================================
  214.    
  215.    
  216.     // Add New Server Data
  217.     function add_server($server_name, $host_name)
  218.     {
  219.         $others      = new Others;
  220.         $last_number = $others->get_greater_number("csservers", "list");
  221.         $last_number = $last_number + 1;
  222.        
  223.        
  224.         $query = "INSERT INTO csservers
  225.                (hostname, servername, list)
  226.                VALUES ('$host_name', '$server_name', $last_number)";
  227.        
  228.         if ($stmt = $this->conn->query($query)) {
  229.             $responce = "Server successfully created.\n";
  230.             return $responce;
  231.         }
  232.        
  233.        
  234.     }
  235.    
  236.     // Get All Data Server By ID
  237.    
  238.     function get_server_data($id)
  239.     {
  240.         $query = "SELECT * FROM csservers
  241.                WHERE id = '$id'";
  242.        
  243.         if ($stmt = $this->conn->query($query)) {
  244.             $result = $stmt->fetch_array();
  245.             return $result;
  246.         }
  247.        
  248.        
  249.     }
  250.    
  251.     // Get All Data Server By List
  252.    
  253.     function get_server_data_bylist($list)
  254.     {
  255.         $query = "SELECT * FROM csservers
  256.                    WHERE list = '$list'";
  257.        
  258.         if ($stmt = $this->conn->query($query)) {
  259.             $result = $stmt->fetch_array();
  260.             return $result;
  261.         }
  262.        
  263.        
  264.     }
  265.    
  266.     // Update Data server($id,$list,$hostname,$servername) By ID
  267.     function edit_server_data($id, $list, $hostname, $servername)
  268.     {
  269.         $query = "UPDATE csservers
  270.                  SET hostname = '$hostname', servername = '$servername'
  271.                  WHERE id =$id
  272.                  LIMIT 1";
  273.        
  274.         if ($stmt = $this->conn->query($query)) {
  275.             $responce = "Server successfully Updated.\n";
  276.             return $responce;
  277.         }
  278.        
  279.        
  280.     }
  281.    
  282.     // Delete Data server By ID
  283.     function del_server($id)
  284.     {
  285.         $query = "DELETE FROM csservers
  286.                    WHERE id = $id
  287.                    LIMIT 1";
  288.        
  289.        
  290.         if ($stmt = $this->conn->query($query)) {
  291.             $responce = "Server successfully Deleted.\n";
  292.             return $responce;
  293.         } else {
  294.             return "Error: Server can not be deleted... ";
  295.         }
  296.        
  297.        
  298.     }
  299.    
  300.     //Get Server Host, Server Name By Server List "Use to build server options"
  301.     function get_server_name($server)
  302.     {
  303.         $query = "SELECT * FROM csservers
  304.                    WHERE list= $server
  305.                    LIMIT 1";
  306.        
  307.        
  308.         if ($stmt = $this->conn->query($query)) {
  309.             $result1 = $stmt->fetch_row();
  310.             $result  = array(
  311.                 $result1[3],
  312.                 $result1[2]
  313.             );
  314.             //$result1[2] = Server Host '10.10.10.2'
  315.             //$result1[3] = Server Name 'Test Server'
  316.            
  317.             return $result;
  318.         }
  319.        
  320.        
  321.     }
  322.    
  323.     // Get total servers nu,ber
  324.     function get_num_servers()
  325.     {
  326.         $query = "SELECT * FROM csservers";
  327.        
  328.         if ($stmt = $this->conn->query($query)) {
  329.             $result = $stmt->num_rows;
  330.             return $result;
  331.         }
  332.        
  333.        
  334.     }
  335.    
  336.     function serverList()
  337.     {
  338.         if (isset($_SESSION['serverList']))
  339.             return $_SESSION['serverList'];
  340.        
  341.         unset($query);
  342.         unset($result);
  343.        
  344.         $query = "SELECT *
  345.          FROM csservers ";
  346.         if (isset($_SESSION['serverallow']) && $_SESSION['serverallow'] <> 0) {
  347.             $query .= "WHERE list = " . $_SESSION['serverallow'] . " ";
  348.         }
  349.        
  350.         $query .= "ORDER BY list ";
  351.        
  352.         if ($result = $this->conn->query($query)) {
  353.             $num_of_rows = $result->num_rows;
  354.             if ($num_of_rows >= 1) {
  355.                 while ($row = $result->fetch_object()) {
  356.                     if ($row->list == 0)
  357.                         continue;
  358.                     $server             = array(
  359.                         'list' => $row->list,
  360.                         'servername' => $row->servername,
  361.                         'hostname' => $row->hostname
  362.                     );
  363.                     $this->serverList[] = $server;
  364.                 }
  365.             } else {
  366.                 $response = "there is no Group data in table!!";
  367.             }
  368.         }
  369.         return $this->serverList;
  370.     }
  371.    
  372.     public function getServerList()
  373.     {
  374.         $query = "SELECT * FROM csservers
  375.                    ORDER BY id";
  376.         if ($result = $this->conn->query($query)) {
  377.             $num_of_rows = $result->num_rows;
  378.             if ($num_of_rows >= 1) {
  379.                 $results_array = array();
  380.                 while ($row = $result->fetch_object()) {
  381.                     if ($row->list == 0)
  382.                         continue;
  383.                     $results_array[] = $row;
  384.                 }
  385.             }
  386.         }
  387.         return $results_array;
  388.     }
  389.    
  390.    
  391.     //************************************************* End Server Section ********************************************************
  392.    
  393.     //================================================== Profiles Section ============================================================
  394.    
  395.    
  396.    
  397.    
  398.    
  399.     //Add New Profile Data
  400.     //  id     server     list     ident     profilename     profileport     profiledesc     profiledetails
  401.     //add_profile($_POST['server_list'],$_POST['profile_name'],$_POST['profile_desc'],$_POST['profile_port'],$_POST['profile_key']);
  402.    
  403.     function add_profile($server, $profilename, $profiledetails, $profileport, $profiledesc)
  404.     {
  405.         $others = new Others;
  406.        
  407.         $list_number = $others->get_greater_number("profiles", "list", "server", "$server");
  408.        
  409.         if ($list_number >= 0) {
  410.             $list_number++;
  411.         } else {
  412.             $responce = "Error.\n";
  413.             return $responce;
  414.         }
  415.        
  416.         $ident_number = $others->get_greater_number("profiles", "ident", "server", "$server");
  417.         $ident_number = $ident_number == 0 ? $ident_number = 1 : $ident_number << 1;
  418.        
  419.         $query = "INSERT INTO profiles
  420.                (server, list, ident, profilename, profileport, profiledesc, profiledetails)
  421.                VALUES ($server, $list_number, $ident_number, '$profilename', $profileport, '$profiledesc', '$profiledetails')";
  422.        
  423.         if ($stmt = $this->conn->query($query)) {
  424.             $responce = "Profile successfully created.\n";
  425.             return $responce;
  426.         }
  427.        
  428.        
  429.     }
  430.    
  431.    
  432.    
  433.     //Get Profile Data
  434.     function get_profile_data($id)
  435.     {
  436.         $query = "SELECT * FROM profiles
  437.                    WHERE id = '$id'";
  438.        
  439.         if ($stmt = $this->conn->query($query)) {
  440.             $result = $stmt->fetch_array();
  441.             return $result;
  442.         }
  443.        
  444.        
  445.     }
  446.    
  447.     //Edit Profile Data
  448.    
  449.     function edit_profile_data($id, $server, $profilename, $profiledetails, $profileport, $profiledesc)
  450.     {
  451.         $others = new Others;
  452.        
  453.         $if_same_server = $this->get_profile_data($id);
  454.        
  455.         if ($server != $if_same_server['server']) {
  456.             $list_number  = $others->get_greater_number("profiles", "list", "server", "$server") + 1;
  457.             $ident_number = $others->get_greater_number("profiles", "ident", "server", "$server") << 1;
  458.            
  459.             $query = "UPDATE profiles
  460.                        SET server = '$server', ident = $ident_number, list = $list_number,  profilename = '$profilename'
  461.                        , profiledetails = '$profiledetails', profileport = '$profileport', profiledesc = '$profiledesc'
  462.                        WHERE id =$id
  463.                        LIMIT 1";
  464.            
  465.         } else {
  466.             $query = "UPDATE profiles
  467.                        SET profilename = '$profilename', profiledetails = '$profiledetails',
  468.                        profileport = '$profileport', profiledesc = '$profiledesc'
  469.                        WHERE id =$id
  470.                        LIMIT 1";
  471.         }
  472.        
  473.         if ($stmt = $this->conn->query($query)) {
  474.             $responce = "Profile successfully Updated.\n";
  475.             unset($list_number);
  476.             return $responce;
  477.         } else {
  478.             $responce = "Error: Can not edit this record, there is missing data.";
  479.             return $responce;
  480.            
  481.         }
  482.        
  483.        
  484.     }
  485.    
  486.    
  487.     //Delete Profile Data
  488.     function del_profile($id)
  489.     {
  490.         $query = "DELETE FROM profiles
  491.                    WHERE id = $id
  492.                    LIMIT 1";
  493.        
  494.        
  495.         if ($stmt = $this->conn->query($query)) {
  496.             $responce = "Server successfully Deleted.\n";
  497.             return $responce;
  498.         }
  499.        
  500.        
  501.     }
  502.    
  503.     public function getProfileList()
  504.     {
  505.         $error  = "";
  506.         $query1 = "SELECT server FROM profiles
  507.                    GROUP BY server
  508.                    ORDER BY server";
  509.         if ($result1 = $this->conn->query($query1)) {
  510.             $num_of_rows = $result1->num_rows;
  511.             if ($num_of_rows >= 1) {
  512.                 $results_array1 = array();
  513.                 $results_array3 = array();
  514.                
  515.                 while ($row1 = $result1->fetch_object()) {
  516.                     $query2 = "SELECT * FROM profiles WHERE server= '";
  517.                     $query2 .= $row1->server;
  518.                     $query2 .= "' ORDER BY id";
  519.                    
  520.                     $serverNumber   = $row1->server;
  521.                     $serverNameHost = $this->get_server_name($serverNumber);
  522.                     $serverNameHost = array(
  523.                         $serverNameHost['0'] => $serverNameHost['1']
  524.                     );
  525.                    
  526.                     if ($result2 = $this->conn->query($query2)) {
  527.                         $num_of_rows = $result2->num_rows;
  528.                         if ($num_of_rows >= 1) {
  529.                             $results_array2 = array();
  530.                             while ($row2 = $result2->fetch_object()) {
  531.                                 $results_array2[] = $row2;
  532.                             }
  533.                             $results_array3[] = array(
  534.                                 $serverNameHost,
  535.                                 $results_array2
  536.                             );
  537.                            
  538.                         }
  539.                     } else {
  540.                         echo "There is no profiles available for this server";
  541.                     }
  542.                    
  543.                     $results_array[] = $results_array3;
  544.                 }
  545.             }
  546.            
  547.         } else {
  548.             $error = "There is no profiles available";
  549.         }
  550.        
  551.         return $results_array3;
  552.     }
  553.    
  554.    
  555.     //************************************************* End Profiles Section ********************************************************
  556.    
  557.     //================================================== Members Section ============================================================
  558.    
  559.    
  560.     // id     username     password     reseller     total_users     active_users     permissions
  561.    
  562.     //Add  Member Data
  563.    
  564.     function add_member($username, $password, $reseller_group, $reseller = 1, $total_users, $active_users, $permissions = 2, $serverAllow, $profileAllow)
  565.     {
  566.         // if it old version cspum
  567.         $oldver = $reseller_group == null ? true : false;
  568.        
  569.         $query = "INSERT INTO members
  570.                    (username, password, reseller, total_users, active_users, permissions, serverallow, profileallow";
  571.         $query .= $oldver ? ")" : " ,reseller_group)";
  572.         $query .= "VALUES ('$username', '$password', $reseller, $total_users, $active_users, $permissions, $serverAllow, $profileAllow";
  573.         $query .= $oldver ? ")" : " ,'$reseller_group')";
  574.        
  575.         if ($stmt = $this->conn->query($query)) {
  576.             $response = "Member successfully created.\n";
  577.             return $response;
  578.         } else {
  579.             $response = "Error: " . $this->conn->error;
  580.             return $response;
  581.         }
  582.        
  583.        
  584.     }
  585.    
  586.    
  587.    
  588.     //Get Member Data
  589.     function get_member_data($id)
  590.     {
  591.         $query = "SELECT * FROM members
  592.                    WHERE id = '$id'";
  593.        
  594.         if ($stmt = $this->conn->query($query)) {
  595.             $result = $stmt->fetch_object();
  596.             return $result;
  597.         }
  598.        
  599.        
  600.     }
  601.    
  602.     //Edit Member Data
  603.    
  604.     //$mysql->edit_member_data($member_data['id'],$member_data['username'],md5($_POST['password']),$_POST['reseller']
  605.     //        ,$_POST['total_users'],$_POST['active_users'],$_POST['permissions']);
  606.    
  607.     // id     username     password     reseller     total_users     active_users     permissions
  608.    
  609.     function edit_member_data($id, $username, $password, $reseller_group, $reseller, $total_users, $active_users, $permissions, $serverAllow, $profileAllow)
  610.     {
  611.         $query = "UPDATE members SET username = '$username', ";
  612.         $query .= (!is_null($password)) ? "password = '$password', " : "";
  613.         $query .= (!empty($reseller_group)) ? "reseller_group = '$reseller_group',  " : "";
  614.         $query .= "  reseller = $reseller,
  615.                    total_users = $total_users,
  616.                    active_users = $active_users,
  617.                    permissions = $permissions,
  618.                    serverallow = $serverAllow,
  619.                    profileallow = $profileAllow
  620.                    WHERE id =$id
  621.                    LIMIT 1";
  622.        
  623.        
  624.         if ($stmt = $this->conn->query($query)) {
  625.             $responce = "Member successfully Updated.\n";
  626.             unset($list_number);
  627.             return $responce;
  628.         } else {
  629.             $response = "Error: " . $this->conn->error . "<br/> or older db version.. remove Reseller Group Name and try again";
  630.             return $response;
  631.         }
  632.        
  633.        
  634.     }
  635.    
  636.    
  637.     //Delete Member Data
  638.     function del_member($id)
  639.     {
  640.         $query = "DELETE FROM members
  641.                    WHERE id = $id
  642.                    LIMIT 1";
  643.        
  644.        
  645.         if ($stmt = $this->conn->query($query)) {
  646.             $responce = "Member successfully Deleted.\n";
  647.             return $responce;
  648.         }
  649.        
  650.        
  651.     }
  652.    
  653.    
  654.     function groupsList()
  655.     {
  656.         global $membership;
  657.         if (isset($_SESSION['groupList']) && !empty($_SESSION['groupList']))
  658.             return $_SESSION['groupList'];
  659.         $reseller = (!isset($_SESSION['reseller'])) ? $this->get_reseller_id($membership->getUsername()) : $_SESSION['reseller'];
  660.        
  661.         unset($query);
  662.         unset($result);
  663.        
  664.        
  665.         $query = "SELECT reseller_group
  666.          FROM members ";
  667.         if (isset($reseller) && $reseller <> 0) {
  668.             $query .= "WHERE reseller = " . $reseller . " AND WHERE reseller <> 0 ";
  669.         } else {
  670.             $query .= "WHERE reseller <> 0 ";
  671.         }
  672.         $query .= "GROUP BY reseller_group
  673.                   ORDER BY id";
  674.        
  675.         if ($result = $this->conn->query($query)) {
  676.             $num_of_rows = $result->num_rows;
  677.             if ($num_of_rows >= 1) {
  678.                 while ($row = $result->fetch_object()) {
  679.                     $this->groupList[] = $row->reseller_group;
  680.                 }
  681.             }
  682.         } else {
  683.             $query = "SELECT server
  684.                      FROM users ";
  685.             if (isset($reseller) && $reseller <> 0) {
  686.                 $query .= "WHERE reseller = " . $reseller . " ";
  687.             }
  688.            
  689.             $query .= "GROUP BY server
  690.                       ORDER BY id ";
  691.            
  692.             if ($result = $this->conn->query($query)) {
  693.                 $num_of_rows = $result->num_rows;
  694.                 if ($num_of_rows >= 1) {
  695.                     while ($row = $result->fetch_object()) {
  696.                         $this->groupList[] = $row->server;
  697.                     }
  698.                 } else {
  699.                     $response = "there is no Group data in table!!";
  700.                 }
  701.             }
  702.         }
  703.        
  704.         return $this->groupList;
  705.     }
  706.    
  707.    
  708.    
  709.     function groupsListReseller()
  710.     {
  711.         global $membership;
  712.         $reseller = (!isset($_SESSION['reseller'])) ? $this->get_reseller_id($membership->getUsername()) : $_SESSION['reseller'];
  713.        
  714.         unset($query);
  715.         unset($result);
  716.        
  717.         $query = "SELECT reseller, reseller_group
  718.          FROM members ";
  719.         if (isset($reseller) && $reseller <> 0) {
  720.             $query .= "WHERE reseller = " . $reseller . " AND WHERE reseller <> 0 ";
  721.         } else {
  722.             $query .= "WHERE reseller <> 0 ";
  723.         }
  724.         $query .= "GROUP BY reseller_group
  725.                        ORDER BY id";
  726.        
  727.         if ($result = $this->conn->query($query)) {
  728.             $num_of_rows = $result->num_rows;
  729.             if ($num_of_rows >= 1) {
  730.                 while ($row = $result->fetch_object()) {
  731.                     $this->groupList[] = array(
  732.                         $row->reseller_group,
  733.                         $row->reseller
  734.                     );
  735.                 }
  736.             }
  737.         } else {
  738.             $query = "SELECT server, reseller
  739.          FROM users ";
  740.             if (isset($reseller) && $reseller <> 0) {
  741.                 $query .= "WHERE reseller = " . $reseller . " ";
  742.             }
  743.            
  744.             $query .= "GROUP BY server
  745.           ORDER BY id ";
  746.            
  747.             if ($result = $this->conn->query($query)) {
  748.                 $num_of_rows = $result->num_rows;
  749.                 if ($num_of_rows >= 1) {
  750.                     while ($row = $result->fetch_object()) {
  751.                         $this->groupList[] = array(
  752.                             $row->server,
  753.                             $row->reseller
  754.                         );
  755.                     }
  756.                 } else {
  757.                     $response = "there is no Group data in table!!";
  758.                 }
  759.                
  760.             }
  761.         }
  762.         return $this->groupList;
  763.     }
  764.    
  765.    
  766.    
  767.    
  768.    
  769.     //************************************************* End Members Section ********************************************************
  770.    
  771.    
  772.    
  773.     //===================================================== User Section ============================================================
  774.    
  775.    
  776.    
  777.     //Add User Data
  778.     function add_user($login, $password, $account_status, $group_name, $server_name, $expire_date, $max_con, $display_name, $ecm_rate, $full_name, $user_mobile, $user_email, $user_country, $profiles)
  779.     {
  780.         $sessionResellerSet = (isset($_SESSION['reseller']) && $_SESSION['reseller'] <> 0) ? true : false;
  781.        
  782.         $curr_timestamp = date("y/m/d : H:i:s", time());
  783.        
  784.         //check if user dublicated
  785.         $query = "SELECT login
  786.                  FROM users
  787.                  WHERE login='$login'
  788.                  LIMIT 1";
  789.        
  790.        
  791.        
  792.         if ($stmt = $this->conn->query($query)) {
  793.             if ($stmt->num_rows == 0) {
  794.                 //if not dublicated and login name avilable
  795.                
  796.                 if (empty($expire_date)) {
  797.                     $expire_date = EXPIREDATE;
  798.                 }
  799.                 if (empty($max_con)) {
  800.                     $max_con = MAXCON;
  801.                 }
  802.                 if (empty($ecm_rate)) {
  803.                     $ecm_rate = -1;
  804.                 }
  805.                 if (empty($display_name)) {
  806.                     $display_name = "";
  807.                 }
  808.                 if (empty($server_name)) {
  809.                     $server_name = "";
  810.                 }
  811.                 if (empty($group_name)) {
  812.                     $group_name = "fastsat";
  813.                 }
  814.                 if (empty($full_name)) {
  815.                     $full_name = "N/A";
  816.                 }
  817.                 if (empty($user_mobile)) {
  818.                     $user_mobile = "N/A";
  819.                 }
  820.                 if (empty($user_email)) {
  821.                     $user_email = "none@none.com";
  822.                 }
  823.                 if (empty($user_country)) {
  824.                     $user_country = 1;
  825.                 }
  826.                 if (empty($profiles)) {
  827.                     $profiles = 0;
  828.                 }
  829.                
  830.                
  831.                
  832.                 $query = "INSERT INTO users (login, password, enabled, server, serverinfo,  expire, maxcon, displayname, ecmrate,
  833.                         name, mobile, email, country, modified, profiles";
  834.                
  835.                 $query .= ($sessionResellerSet) ? ", reseller)" : ")";
  836.                
  837.                
  838.                
  839.                 $query .= "VALUES ('$login', '$password', '$account_status', '$group_name', $server_name, '$expire_date',
  840.                           $max_con, '$display_name', $ecm_rate, '$full_name', '$user_mobile', '$user_email', $user_country,
  841.                           '$curr_timestamp', $profiles";
  842.                
  843.                 $query .= ($sessionResellerSet) ? ", " . $_SESSION['reseller'] . ")" : ")";
  844.                
  845.                
  846.                
  847.                 if ($stmt1 = $this->conn->query($query)) {
  848.                     $stmt->close();
  849.                     $this->log->LogInfo($this->log_init . 'New Username: ' . $login . '  Add with the following info: G:' . $group_name . ' | S:' . $server_name . ' | E:' . $expire_date . ' | P:' . $profiles . '.');
  850.                     $responce                          = "User successfully created.\n";
  851.                     $_SESSION['updateActiveTotalUser'] = 1;
  852.                     return $responce;
  853.                 }
  854.                
  855.             } else {
  856.                 //if found duplicated username
  857.                
  858.                 $responce = "User already use.\n";
  859.                 return $responce;
  860.             }
  861.         } else {
  862.             $responce = "Error in Database.\n";
  863.             return $responce;
  864.            
  865.         }
  866.        
  867.     }
  868.    
  869.     //Delete User
  870.     function del_user($id)
  871.     {
  872.         $username = $this->get_user_name($id);
  873.         $query    = "DELETE FROM users
  874.                    WHERE id = $id
  875.                    LIMIT 1";
  876.        
  877.         if ($stmt = $this->conn->query($query)) {
  878.             $this->log->LogInfo($this->log_init . 'user id:' . $id . ' Username: ' . $username . ' account deleted .');
  879.             $responce                          = "User successfully Deleted.\n";
  880.             $_SESSION['updateActiveTotalUser'] = 1;
  881.             return $responce;
  882.         }
  883.        
  884.     }
  885.    
  886.    
  887.    
  888.     //Get User Data
  889.     function get_user_data($id)
  890.     {
  891.         $query = "SELECT * FROM users
  892.                    WHERE id = '$id'";
  893.        
  894.         if ($stmt = $this->conn->query($query)) {
  895.             $result = $stmt->fetch_object();
  896.             return $result;
  897.         }
  898.     }
  899.    
  900.    
  901.     //Get User name by id
  902.     function get_user_name($id)
  903.     {
  904.         $query = "SELECT login FROM users
  905.                        WHERE id = '$id'";
  906.        
  907.         if ($stmt = $this->conn->query($query)) {
  908.             $result  = $stmt->fetch_object();
  909.             $result1 = $result->login;
  910.             return $result1;
  911.         }
  912.     }
  913.    
  914.    
  915.    
  916.     //Get User Data That belong to Reseller
  917.     //Total users and total Active users
  918.     function get_info($reseller)
  919.     {
  920.         if (!isset($_SESSION['currActiveTotalUser']) || $_SESSION['updateActiveTotalUser'] <> 0) {
  921.             $reseller = $_SESSION['reseller'];
  922.            
  923.             $query = "SELECT COUNT(id) ";
  924.             $query .= "FROM users ";
  925.             if ($reseller <> 0) {
  926.                 $query .= "WHERE reseller = '$reseller' ";
  927.             }
  928.            
  929.             if ($stmt = $this->conn->query($query)) {
  930.                 $result = $stmt->fetch_row();
  931.                 define("TOTALUSER", $result[0]);
  932.             }
  933.            
  934.             $query = "SELECT COUNT(id) ";
  935.             $query .= "FROM users ";
  936.             $query .= 'WHERE enabled = "true" AND STR_TO_DATE(expire,"%d/%m/%Y")>CURDATE() ';
  937.             if ($reseller <> 0) {
  938.                 $query .= "AND reseller = '$reseller' ";
  939.             }
  940.            
  941.            
  942.            
  943.             if ($stmt = $this->conn->query($query)) {
  944.                 $result = $stmt->fetch_row();
  945.                 define("ACTIVEUSER", $result[0]);
  946.             }
  947.            
  948.             $result                            = "[" . TOTALUSER . "/" . ACTIVEUSER . "]";
  949.             $_SESSION['currActiveTotalUser']   = $result;
  950.             $_SESSION['updateActiveTotalUser'] = 0;
  951.             return $result;
  952.         } else
  953.             return $_SESSION['currActiveTotalUser'];
  954.     }
  955.    
  956.    
  957.    
  958.     //Edit User Data
  959.     //$response = $mysql->edit_user_data
  960.     //($user_data-id,$_POST['login'],$_POST['password'],$_POST['account_status'],
  961.     //$_POST['main_server_name'],$_POST['group_name'],$_POST['expire_date'],$_POST['max_con'],
  962.     //$_POST['display_name'],$_POST['ecm_rate']);
  963.    
  964.     //table structure
  965.     //id , login , password , enabled , admin , server , expire , displayname , maxcon , profiles , mapexclude , debug , ecmrate ,
  966.     //name , country , email , mobile , serverinfo , creationdate , modified , demo , reseller
  967.    
  968.     function edit_user_data($id, $login, $password, $enabled, $serverinfo, $server, $expire, $maxcon, $displayname, $ecmrate, $full_name, $user_mobile, $user_email, $user_country, $profiles)
  969.     {
  970.         if (empty($user_country)) {
  971.             $user_country = 1;
  972.         }
  973.         $curr_timestamp = date("y/m/d : H:i:s", time());
  974.        
  975.         $query = "UPDATE users
  976.                    SET login = '$login', password = '$password', enabled = '$enabled',  serverinfo = $serverinfo
  977.                    , server = '$server', expire = '$expire', maxcon = $maxcon, displayname = '$displayname', ecmrate = $ecmrate,
  978.                    name = '$full_name', mobile = '$user_mobile', email = '$user_email', country = $user_country, modified = '$curr_timestamp', profiles = $profiles
  979.                    WHERE id =$id
  980.                    LIMIT 1";
  981.        
  982.        
  983.         $curr_user_data = $this->get_user_data($id);
  984.        
  985.         if ($curr_user_data->password == $password) {
  986.             $pass_change_status = "no change";
  987.            
  988.         } else {
  989.             $pass_change_status = "changed";
  990.         }
  991.        
  992.         if ($stmt = $this->conn->query($query)) {
  993.             $this->log->LogInfo($this->log_init . 'Edited Username: ' . $login . '  with the following info: ' . 'P:' . $pass_change_status . ' | S:' . $curr_user_data->enabled . '->' . $enabled . ' | G:' . $curr_user_data->server . '->' . $server . ' | S:' . $curr_user_data->serverinfo . '->' . $serverinfo . ' | E:' . $curr_user_data->expire . '->' . $expire . ' | P:' . $curr_user_data->profiles . '->' . $profiles . '.');
  994.             $responce = "User successfully Updated.\n";
  995.             unset($list_number);
  996.             $_SESSION['updateActiveTotalUser'] = 1;
  997.             return $responce;
  998.         }
  999.        
  1000.     }
  1001.    
  1002.     // Enable/Disable User
  1003.     function enable_disable_user($id, $status)
  1004.     {
  1005.         $username       = $this->get_user_name($id);
  1006.         $log            = New KLogger('log/cspum.log', KLogger::DEBUG);
  1007.         $log_init       = 'User [' . $_SESSION['username'] . '] (' . $_SESSION['remote_address'] . ') | ';
  1008.         $curr_timestamp = date("y/m/d : H:i:s", time());
  1009.         if ($this->check_user_reseller($id)) {
  1010.             $query = "UPDATE users
  1011.                        SET enabled = '$status', modified = '$curr_timestamp'
  1012.                        WHERE id =$id
  1013.                        LIMIT 1";
  1014.            
  1015.             if ($stmt = $this->conn->query($query)) {
  1016.                 $log->LogInfo($log_init . 'user id:' . $id . ' login: ' . $username . ' change account status to ' . strtoupper($status) . ' .');
  1017.                 $responce = "User successfully Updated.\n";
  1018.                 unset($list_number);
  1019.                 $_SESSION['updateActiveTotalUser'] = 1;
  1020.                 return $responce;
  1021.             }
  1022.         } else
  1023.             return "This User ID do not belong to this reseller.";
  1024.        
  1025.     }
  1026.    
  1027.    
  1028.     // check if user belong to reseller
  1029.    
  1030.     function check_user_reseller($id)
  1031.     {
  1032.         if ($_SESSION['reseller'] <> 0) {
  1033.             $query = "SELECT reseller
  1034.                        FROM users
  1035.                        WHERE id =$id
  1036.                        LIMIT 1";
  1037.            
  1038.             if ($stmt = $this->conn->query($query)) {
  1039.                 $result = $stmt->fetch_object();
  1040.                
  1041.                 if ($result->reseller == $_SESSION['reseller']) {
  1042.                     return true;
  1043.                 } else
  1044.                     return false;
  1045.                
  1046.                
  1047.             }
  1048.         } else
  1049.             return true;
  1050.     }
  1051.    
  1052.     //
  1053.     function createQuery($posts)
  1054.     {
  1055.         //$xslt_file = "userlist.xsl";
  1056.         //         Array
  1057.         //(
  1058.         //    [userStatus] => all
  1059.         //    [expired] => all
  1060.         //    [usersGroup] => fastsat
  1061.         //    [serverName] => 1
  1062.         //    [recentlyAdd] => thistweek
  1063.         //    [recentlyUpdate] => all
  1064.         //    [browse] => browse
  1065.         //    [profiles_checkbox] => 0
  1066.         //    [main_server_name] => 0
  1067.         //)
  1068.        
  1069.         isset($posts['userStatus']) ? $userStatus = $posts['userStatus'] : null;
  1070.         isset($posts['expired']) ? $expired = $posts['expired'] : null;
  1071.         isset($posts['usersGroup']) ? $usersGroup = $posts['usersGroup'] : null;
  1072.         isset($posts['serverName']) ? $serverName = $posts['serverName'] : null;
  1073.         isset($posts['recentlyAdd']) ? $recentlyAdd = $posts['recentlyAdd'] : null;
  1074.         isset($posts['recentlyUpdate']) ? $recentlyUpdate = $posts['recentlyUpdate'] : null;
  1075.         isset($posts['userNameInput']) ? $userNameInput = $posts['userNameInput'] : null;
  1076.         isset($posts['fullNameInput']) ? $fullNameInput = $posts['fullNameInput'] : null;
  1077.         isset($posts['mobile']) ? $mobile = $posts['mobile'] : null;
  1078.        
  1079.         $reseller = $_SESSION['reseller'];
  1080.        
  1081.         if (isset($userStatus) && $userStatus == "all")
  1082.             unset($userStatus);
  1083.         if (isset($expired) && $expired == "all")
  1084.             unset($expired);
  1085.         if (isset($usersGroup) && $usersGroup == "all")
  1086.             unset($usersGroup);
  1087.         if (isset($serverName) && $serverName == "all")
  1088.             unset($serverName);
  1089.         if (isset($recentlyAdd) && $recentlyAdd == "all")
  1090.             unset($recentlyAdd);
  1091.         if (isset($recentlyUpdate) && $recentlyUpdate == "all")
  1092.             unset($recentlyUpdate);
  1093.         if (isset($userNameInput) && $userNameInput == "")
  1094.             unset($userNameInput);
  1095.         if (isset($fullNameInput) && $fullNameInput == "")
  1096.             unset($fullNameInput);
  1097.         if (isset($mobile) && $mobile == "")
  1098.             unset($mobile);
  1099.        
  1100.         if (isset($expired) && $expired != "all" && $expired != "expired")
  1101.             $expired = $this->getdate($expired);
  1102.         if (isset($recentlyAdd))
  1103.             $recentlyAdd = $this->getdate($recentlyAdd);
  1104.         if (isset($recentlyUpdate))
  1105.             $recentlyUpdate = $this->getdate($recentlyUpdate);
  1106.        
  1107.        
  1108.         $i        = 0;
  1109.         $skipnext = 0;
  1110.        
  1111.         $query = "SELECT id,login,enabled,server,expire,displayname,creationdate,modified,name
  1112.                             FROM users ";
  1113.        
  1114.         if (isset($userStatus) && $userStatus == "enable" && empty($expired)) {
  1115.             $query .= 'WHERE enabled="true" AND STR_TO_DATE(expire,"%d/%m/%Y")>CURDATE() ';
  1116.             $i = 1;
  1117.         } elseif (isset($userStatus) && $userStatus == "disable" && empty($expired)) {
  1118.             $query .= 'WHERE enabled="false" AND STR_TO_DATE(expire,"%d/%m/%Y")>CURDATE() ';
  1119.             $i = 1;
  1120.         }
  1121.        
  1122.         if (isset($userStatus) && $userStatus == "enable" && isset($expired) && $expired <> "all") {
  1123.             $query .= 'WHERE enabled="true" ';
  1124.             $i = 1;
  1125.         } elseif (isset($userStatus) && $userStatus == "disable" && isset($expired) && $expired <> "all") {
  1126.             $query .= 'WHERE enabled="false" ';
  1127.             $i = 1;
  1128.         }
  1129.        
  1130.         $skipnext = 0;
  1131.         if (isset($usersGroup) && $i == 0) {
  1132.             $skipnext = 0;
  1133.             $query .= 'WHERE server="' . $usersGroup . '" ';
  1134.             $i        = 1;
  1135.             $skipnext = 1;
  1136.         } elseif (isset($usersGroup) && $i == 1 && $skipnext == 0) {
  1137.             $query .= 'AND server="' . $usersGroup . '" ';
  1138.             $i = 1;
  1139.         }
  1140.        
  1141.         $skipnext = 0;
  1142.         if (isset($serverName) && $serverName <> 0 && $i == 0) {
  1143.             $skipnext = 0;
  1144.             $query .= "WHERE serverinfo=$serverName ";
  1145.             $i        = 1;
  1146.             $skipnext = 1;
  1147.         }
  1148.         if (isset($serverName) && $serverName <> 0 && $i == 1 && $skipnext == 0) {
  1149.             $query .= "AND serverinfo=$serverName ";
  1150.             $i = 1;
  1151.         }
  1152.        
  1153.         $skipnext = 0;
  1154.         if (isset($expired) && $expired == "expired" && $i == 0) {
  1155.             $skipnext = 0;
  1156.             $query .= "WHERE STR_TO_DATE(expire,'%d/%m/%Y')<CURDATE() ";
  1157.             $i        = 1;
  1158.             $skipnext = 1;
  1159.         }
  1160.        
  1161.         if (isset($expired) && $expired == "expired" && $i == 1 && $skipnext == 0) {
  1162.             $query .= "AND STR_TO_DATE(expire,'%d/%m/%Y')<CURDATE() ";
  1163.             $i = 1;
  1164.         }
  1165.        
  1166.         $skipnext = 0;
  1167.         if (isset($expired) && $expired != "expired" && $i == 0) {
  1168.             $skipnext = 0;
  1169.             $query .= "WHERE CAST(STR_TO_DATE(expire,'%d/%m/%Y') AS DATE) BETWEEN CAST('$expired' AS DATE) AND CURDATE() ";
  1170.             $i        = 1;
  1171.             $skipnext = 1;
  1172.         }
  1173.        
  1174.         if (isset($expired) && $expired != "expired" && $i == 1 && $skipnext == 0) {
  1175.             $query .= "AND CAST(STR_TO_DATE(expire,'%d/%m/%Y') AS DATE) BETWEEN CAST('$expired' AS DATE) AND CURDATE() ";
  1176.             $i = 1;
  1177.         }
  1178.        
  1179.         $skipnext = 0;
  1180.         if (isset($recentlyAdd) && $i == 0) {
  1181.             $skipnext = 0;
  1182.             $query .= "WHERE CAST(creationdate AS DATE) BETWEEN CAST('$recentlyAdd' AS DATE) AND CAST(CURDATE()+ INTERVAL 1 DAY AS DATE) ";
  1183.             $i        = 1;
  1184.             $skipnext = 1;
  1185.         }
  1186.        
  1187.         if (isset($recentlyAdd) && $i == 1 && $skipnext == 0) {
  1188.             $query .= "AND CAST(creationdate AS DATE) BETWEEN CAST('$recentlyAdd' AS DATE) AND CAST(CURDATE()+ INTERVAL 1 DAY AS DATE) ";
  1189.             $i = 1;
  1190.         }
  1191.        
  1192.         $skipnext = 0;
  1193.         if (isset($recentlyUpdate) && $i == 0) {
  1194.             $skipnext = 0;
  1195.             $query .= "WHERE CAST(modified AS DATE) BETWEEN CAST('$recentlyUpdate' AS DATE) AND CAST(CURDATE()+ INTERVAL 1 DAY AS DATE) ";
  1196.             $i        = 1;
  1197.             $skipnext = 1;
  1198.         }
  1199.        
  1200.         if (isset($recentlyUpdate) && $i == 1 && $skipnext == 0) {
  1201.             $query .= "AND CAST(modified AS DATE) BETWEEN CAST('$recentlyUpdate' AS DATE) AND CAST(CURDATE()+ INTERVAL 1 DAY AS DATE) ";
  1202.             $i = 1;
  1203.         }
  1204.        
  1205.         $skipnext = 0;
  1206.         if (isset($userNameInput) && $i == 0) {
  1207.             $skipnext = 0;
  1208.             $query .= 'WHERE login LIKE "%' . $userNameInput . '%" ';
  1209.             $i        = 1;
  1210.             $skipnext = 1;
  1211.         }
  1212.        
  1213.         if (isset($userNameInput) && $i == 1 && $skipnext == 0) {
  1214.             $query .= 'AND login LIKE "%' . $userNameInput . '%" ';
  1215.             $i = 1;
  1216.         }
  1217.        
  1218.         $skipnext = 0;
  1219.         if (isset($fullNameInput) && $i == 0) {
  1220.             $skipnext = 0;
  1221.             $query .= 'WHERE name LIKE "%' . $fullNameInput . '%" ';
  1222.             $i        = 1;
  1223.             $skipnext = 1;
  1224.         }
  1225.        
  1226.         if (isset($fullNameInput) && $i == 1 && $skipnext == 0) {
  1227.             $query .= 'AND name LIKE "%' . $fullNameInput . '%" ';
  1228.             $i = 1;
  1229.         }
  1230.        
  1231.         $skipnext = 0;
  1232.         if (isset($mobile) && $i == 0) {
  1233.             $skipnext = 0;
  1234.             $query .= 'WHERE mobile LIKE "%' . $mobile . '%" ';
  1235.             $i        = 1;
  1236.             $skipnext = 1;
  1237.         }
  1238.        
  1239.         if (isset($mobile) && $i == 1 && $skipnext == 0) {
  1240.             $query .= 'AND mobile LIKE "%' . $mobile . '%" ';
  1241.             $i = 1;
  1242.         }
  1243.        
  1244.         // in case reseller is set
  1245.         if (isset($reseller) && $reseller <> 0 && $i == 0) {
  1246.             $query .= "WHERE reseller=" . $_SESSION['reseller'] . " ";
  1247.             $i        = 1;
  1248.             $skipnext = 1;
  1249.         } elseif (isset($reseller) && $reseller <> 0 && $i == 1 && $skipnext == 0) {
  1250.             $query .= "AND reseller=" . $_SESSION['reseller'] . " ";
  1251.             $i = 1;
  1252.         }
  1253.        
  1254.        
  1255.         $query .= "ORDER BY id";
  1256.        
  1257.        
  1258.         return $query;
  1259.        
  1260.        
  1261.        
  1262.     }
  1263.    
  1264.    
  1265.     function createUserTable($post)
  1266.     {
  1267.         //array(8) (
  1268.         //[id] => (string) 27
  1269.         //[login] => (string) papu
  1270.         //[enabled] => (string) true
  1271.         //[server] => (string) fastsat
  1272.         //[expire] => (string) 01/02/2011
  1273.         //[displayname] => (string) Hitesh Gandhi
  1274.         //[creationdate] => (string) 0000-00-00 00:00:00
  1275.         //[modified] => (string) 2011-01-06 19:10:50
  1276.         //)
  1277.         $data  = "";
  1278.         $query = $this->createQuery($post);
  1279.        
  1280.         if ($result = $this->conn->query($query)) {
  1281.             $num_of_rows = $result->num_rows;
  1282.             if ($num_of_rows >= 1) {
  1283.                 while ($row = $result->fetch_array(MYSQL_ASSOC)) {
  1284.                     if ($row['modified'] == "0000-00-00 00:00:00") {
  1285.                         $modifid_data = "2009-01-01";
  1286.                     } else {
  1287.                         $modifid_data = $row['modified'];
  1288.                     }
  1289.                    
  1290.                     $row['modified'] = date("m/d/Y", strtotime($modifid_data));
  1291.                     $last_update     = $row['modified'];
  1292.                    
  1293.                     if ($row['enabled'] == "true") {
  1294.                         $value          = Others::Statictimeleft($row['expire']);
  1295.                         $row['enabled'] = $value['daysleft'] != 0 ? "Enabled" : "Expired";
  1296.                     } else
  1297.                         $row['enabled'] = "Disabled";
  1298.                    
  1299.                     $row['expire'] = date("m/d/Y", strtotime(str_replace('/', '-', $row['expire'])));
  1300.                    
  1301.                     $data[] = $row;
  1302.                 }
  1303.             }
  1304.             return $data;
  1305.         } else {
  1306.             $response = "there is no data in table!!";
  1307.         }
  1308.     }
  1309.    
  1310.    
  1311.     function createXML($query)
  1312.     {
  1313.         if ($result = $this->conn->query($query)) {
  1314.             $num_of_rows = $result->num_rows;
  1315.             if ($num_of_rows >= 1) {
  1316.                 // we produce XML
  1317.                 header("Content-type: text/xml");
  1318.                 $XML = "<?xml version=\"1.0\"?>\n";
  1319.                 if ($xslt_file)
  1320.                     $XML .= "<?xml-stylesheet href=\"$xslt_file\" type=\"text/xsl\" ?>";
  1321.                
  1322.                 // root node
  1323.                 $XML .= '<result>';
  1324.                 // rows
  1325.                
  1326.                 $XML .= '<info><table>';
  1327.                
  1328.                 $XML .= $serverName;
  1329.                
  1330.                
  1331.                 $XML .= '</table></info>';
  1332.                
  1333.                 while ($row = $result->fetch_array(MYSQL_ASSOC)) {
  1334.                     $XML .= "\t<row>\n";
  1335.                    
  1336.                     if ($row['modified'] == "0000-00-00 00:00:00") {
  1337.                         $modifid_data = "2009-01-01";
  1338.                     } else {
  1339.                         $modifid_data = $row['modified'];
  1340.                     }
  1341.                    
  1342.                     $row['modified'] = date("m/d/Y", strtotime($modifid_data));
  1343.                     $last_update     = $row['modified'];
  1344.                    
  1345.                     if ($row['enabled'] == "true") {
  1346.                         $value          = Others::Statictimeleft($row['expire']);
  1347.                         $row['enabled'] = $value['daysleft'] != 0 ? "Enabled" : "Expired";
  1348.                     } else
  1349.                         $row['enabled'] = "Disabled";
  1350.                    
  1351.                     $row['expire'] = date("m/d/Y", strtotime(str_replace('/', '-', $row['expire'])));
  1352.                    
  1353.                    
  1354.                     $i = 0;
  1355.                    
  1356.                     // cells
  1357.                     foreach ($row as $key => $cell) {
  1358.                         // Escaping illegal characters - not tested actually ;)
  1359.                         $cell = str_replace("&", "&amp;", $cell);
  1360.                         $cell = str_replace("<", "&lt;", $cell);
  1361.                         $cell = str_replace(">", "&gt;", $cell);
  1362.                         $cell = str_replace("\"", "&quot;", $cell);
  1363.                         // creates the "<tag>contents</tag>" representing the column
  1364.                         $XML .= "\t\t<" . $key . ">" . $cell . "</" . $key . ">\n";
  1365.                         $i++;
  1366.                     }
  1367.                     $XML .= "\t</row>\n";
  1368.                 }
  1369.                 $XML .= "</result>\n";
  1370.                
  1371.                 // output the whole XML string
  1372.                 return $XML;
  1373.             } else {
  1374.                 $response = "there is no data in table!!";
  1375.             }
  1376.         }
  1377.     }
  1378.    
  1379.     function displayusers2($posts)
  1380.     {
  1381.         // Load the XML source
  1382.         $xml         = new DOMDocument;
  1383.         $createquery = $this->displayUsers($posts);
  1384.         $xml_doc     = $this->createXML($createquery);
  1385.         $xml->loadXML($xml_doc);
  1386.         //$xml->load('xml.xml');
  1387.        
  1388.         $xsl = new DOMDocument;
  1389.         $xsl->load('userlist.xsl');
  1390.        
  1391.         // Configure the transformer
  1392.         $proc = new XSLTProcessor;
  1393.         $proc->importStyleSheet($xsl); // attach the xsl rules
  1394.        
  1395.         return $proc->transformToXML($xml);
  1396.     }
  1397.    
  1398.     // Get reseller users
  1399.    
  1400.     //    function get_reseller_users($resseller) {
  1401.     //
  1402.     //        $query = "SELECT login
  1403.     //                    FROM users
  1404.     //                    WHERE reseller = $resseller
  1405.     //                    ORDER BY login";
  1406.     //
  1407.     //        if($stmt = $this->conn->query($query)) {
  1408.     //
  1409.     //
  1410.     //            while($row = $stmt->fetch_array(MYSQLI_ASSOC))
  1411.     //            {
  1412.     //                $result[] = $row['login'];
  1413.     //            }
  1414.     //
  1415.     //            return $result;
  1416.     //
  1417.     //
  1418.     //        }
  1419.     //
  1420.     //    }
  1421.    
  1422.    
  1423.    
  1424.     //************************************************* End User Section ********************************************************
  1425.    
  1426.    
  1427.    
  1428.    
  1429.    
  1430.    
  1431.     //===================================================== Profile Permision Section ============================================================
  1432.    
  1433.     //Get Profile Data by Server
  1434.     function get_profile_data_by_server($server)
  1435.     {
  1436.         $query = "SELECT * FROM profiles
  1437.                    WHERE server = $server
  1438.                    ORDER BY list";
  1439.        
  1440.         if ($stmt = $this->conn->query($query)) {
  1441.             $num_of_rows = $stmt->num_rows;
  1442.            
  1443.             if ($num_of_rows >= 1) {
  1444.                 while ($result1 = $stmt->fetch_array(MYSQLI_ASSOC)) {
  1445.                     $result[] = $result1;
  1446.                 }
  1447.                
  1448.                 return $result;
  1449.             }
  1450.         }
  1451.        
  1452.     }
  1453.    
  1454.    
  1455.    
  1456.     //Get User Profile mask bit
  1457.     function get_user_profile_bit($id)
  1458.     {
  1459.         $query = "SELECT profiles FROM users
  1460.                    WHERE id = $id
  1461.                    LIMIT 1";
  1462.        
  1463.         if ($stmt = $this->conn->query($query)) {
  1464.             $result = $stmt->fetch_array(MYSQLI_ASSOC);
  1465.             list(, $value) = each($result);
  1466.             return $value;
  1467.         }
  1468.        
  1469.        
  1470.     }
  1471.    
  1472.    
  1473.    
  1474.     //check_user_profile_permission
  1475.     function check_user_profile_permission($user_allow_profile, $profile)
  1476.     {
  1477.         if ($user_allow_profile & $profile)
  1478.             return true;
  1479.         else
  1480.             return false;
  1481.     }
  1482.    
  1483.     // change_user_profile_permission
  1484.     function change_user_profile_permission($user_allow_profile, $profile)
  1485.     {
  1486.         $result = ($user_allow_profile ^ $profile);
  1487.         return $result;
  1488.        
  1489.     }
  1490.    
  1491.     // list_profiles_by_server
  1492.     function list_profiles_by_server($server)
  1493.     {
  1494.         if (empty($server))
  1495.             $server = 1;
  1496.         $profiles             = $this->get_profile_data_by_server($server);
  1497.         $resellerProfileAllow = $this->get_reseller_profile_allow($_SESSION['username'], $server);
  1498.         reset($profiles);
  1499.         $result = "";
  1500.         $i      = 0;
  1501.         $result .= '<table border="0" cellpadding="2" id="profile_table" ><tr>';
  1502.        
  1503.         foreach ($profiles as $value) {
  1504.             $ident                 = $value['ident'];
  1505.             $profilename           = $value['profilename'];
  1506.             $profileport           = $value['profileport'];
  1507.             $checkRessellerBitwise = intval($ident) & intval($resellerProfileAllow);
  1508.             if (isset($resellerProfileAllow) && $resellerProfileAllow <> 0 && !$checkRessellerBitwise) {
  1509.                 continue;
  1510.             }
  1511.             if ($profileport == 0) {
  1512.                 continue;
  1513.             }
  1514.             $i++;
  1515.             $result .= '<td id="td_profile_table">';
  1516.             $result .= '<input type="checkbox" name="profiles_checkbox[]" value="' . $ident . '" />' . $profilename . '</td>';
  1517.             if ($i == 4) {
  1518.                 $result .= '</tr><tr>';
  1519.                 $i = 0;
  1520.             }
  1521.         }
  1522.        
  1523.         $result .= '</tr><tr><td id="td_profile_table"><input type="checkbox" name="profiles_checkbox[]" value="0" checked="checked"/><strong>All Profiles</strong></td></tr></table>';
  1524.         echo $result;
  1525.     }
  1526.    
  1527.    
  1528.    
  1529.    
  1530.     //list_profiles_by_user_bitmask_by_server
  1531.     function list_profiles_by_user_bitmask_by_server($user_allow_profile, $server)
  1532.     {
  1533.         $profiles             = $this->get_profile_data_by_server($server);
  1534.         $resellerProfileAllow = $this->get_reseller_profile_allow($_SESSION['username'], $server);
  1535.         $reset                = reset($profiles);
  1536.         $user_mask            = intval($this->get_user_profile_bit($user_allow_profile));
  1537.         $result               = "";
  1538.         $i                    = 0;
  1539.         $result .= '<table border="0" cellpadding="2" id="profile_table" ><tr>';
  1540.        
  1541.         foreach ($profiles as $value) {
  1542.             $ident                 = $value['ident'];
  1543.             $profilename           = $value['profilename'];
  1544.             $profileport           = $value['profileport'];
  1545.             $checkRessellerBitwise = intval($ident) & intval($resellerProfileAllow);
  1546.             if (isset($resellerProfileAllow) && $resellerProfileAllow <> 0 && !$checkRessellerBitwise) {
  1547.                 continue;
  1548.             }
  1549.             if ($profileport == 0) {
  1550.                 continue;
  1551.             }
  1552.             $i++;
  1553.             $result .= '<td id="td_profile_table">';
  1554.             $result .= "<input  type=\"checkbox\" name=\"profiles_checkbox[]\" value=\"$ident\"";
  1555.             if ($this->check_user_profile_permission($user_mask, $ident)) {
  1556.                 $result .= " checked=\"checked\"";
  1557.             }
  1558.             $result .= "/>$profilename</td>\n";
  1559.             if ($i == 4) {
  1560.                 $result .= '</tr><tr>';
  1561.                 $i = 0;
  1562.             }
  1563.            
  1564.         }
  1565.        
  1566.         $result .= "</tr><tr><td id=\"td_profile_table\"><input type=\"checkbox\" name=\"profiles_checkbox[]\" value=\"0\"";
  1567.         if ($user_mask == 0) {
  1568.             $result .= " checked=\"checked\"";
  1569.         }
  1570.         $result .= "/><strong>All Profiles</strong></td></tr></table>";
  1571.        
  1572.         echo $result;
  1573.        
  1574.     }
  1575.    
  1576.     //list_profiles_by_member
  1577.     function list_profiles_by_member($memberId)
  1578.     {
  1579.         $query = "SELECT serverallow, profileallow
  1580.                        FROM members
  1581.                        WHERE id = '$memberId'
  1582.                        LIMIT 1";
  1583.        
  1584.         if ($result = $this->conn->query($query)) {
  1585.             $num_of_rows = $result->num_rows;
  1586.             if ($num_of_rows >= 1) {
  1587.                 while ($row = $result->fetch_object()) {
  1588.                     $results1     = $row->profileallow;
  1589.                     $results2     = $row->serverallow == 0 ? 1 : $row->serverallow;
  1590.                     $profileallow = $results1;
  1591.                 }
  1592.             } else {
  1593.                 $response = "there is no Group data in table!!";
  1594.             }
  1595.            
  1596.            
  1597.         }
  1598.        
  1599.         $profiles             = $this->get_profile_data_by_server($results2);
  1600.         //        $resellerProfileAllow = $this->get_reseller_profile_allow($_SESSION['username'], $server);
  1601.         $resellerProfileAllow = $results1;
  1602.         $reset                = reset($profiles);
  1603.         //$user_mask = intval($this->get_user_profile_bit($user_allow_profile));
  1604.         $result               = "";
  1605.         $i                    = 0;
  1606.         $result .= '<table border="0" cellpadding="2" id="profile_table" ><tr>';
  1607.        
  1608.         foreach ($profiles as $value) {
  1609.             $ident                 = $value['ident'];
  1610.             $profilename           = $value['profilename'];
  1611.             $profileport           = $value['profileport'];
  1612.             $checkRessellerBitwise = intval($ident) & intval($resellerProfileAllow);
  1613.             //            if ( isset($resellerProfileAllow) && $resellerProfileAllow <>0 &&  ! $checkRessellerBitwise ){
  1614.             //            if ( isset($resellerProfileAllow) && $resellerProfileAllow == 0 ){
  1615.             //                continue;
  1616.             //            }
  1617.             if ($profileport == 0) {
  1618.                 continue;
  1619.             }
  1620.             $i++;
  1621.             $result .= '<td id="td_profile_table">';
  1622.             $result .= "<input  type=\"checkbox\" name=\"profiles_checkbox[]\" value=\"$ident\"";
  1623.             //            if ( $profileallow & $ident  ) {
  1624.             $result .= (int) $profileallow & (int) $ident ? " checked=\"checked\"" : "";
  1625.             //            }
  1626.             $result .= "/>$profilename</td>\n";
  1627.             if ($i == 4) {
  1628.                 $result .= '</tr><tr>';
  1629.                 $i = 0;
  1630.             }
  1631.            
  1632.         }
  1633.        
  1634.         $result .= "</tr><tr><td id=\"td_profile_table\"><input type=\"checkbox\" name=\"profiles_checkbox[]\" value=\"0\"";
  1635.         if ($resellerProfileAllow == 0) {
  1636.             $result .= " checked=\"checked\"";
  1637.         }
  1638.         $result .= "/><strong>All Profiles</strong></td></tr></table>";
  1639.        
  1640.         echo $result;
  1641.        
  1642.     }
  1643.    
  1644.    
  1645.    
  1646.     //Get profiles Array by user profiles by_server
  1647.     //Used in email.php
  1648.     function array_profiles_by_user_bitmask_by_server($user_mask, $server)
  1649.     {
  1650.         $profiles = $this->get_profile_data_by_server($server);
  1651.        
  1652.         if (count($profiles) > 1) {
  1653.             reset($profiles);
  1654.         }
  1655.        
  1656.        
  1657.         foreach ($profiles as $value) {
  1658.             $ident       = $value['ident'];
  1659.             $port        = $value['profileport'];
  1660.             $desc        = $value['profiledesc'];
  1661.             $details     = $value['profiledetails'];
  1662.             $profilename = $value['profilename'];
  1663.            
  1664.             if ($this->check_user_profile_permission($user_mask, $ident) && $port <> 0) {
  1665.                 $result[] = array(
  1666.                     'port' => $port,
  1667.                     'profilename' => $profilename,
  1668.                     'desc' => $desc,
  1669.                     'details' => $details
  1670.                 );
  1671.             }
  1672.            
  1673.         }
  1674.        
  1675.        
  1676.        
  1677.         return $result;
  1678.        
  1679.     }
  1680.    
  1681.    
  1682.     //Get bitnumber for all profiles avilable by
  1683.     function get_sumbit_all_profiles($server)
  1684.     {
  1685.         $profiles = $this->get_profile_data_by_server($server);
  1686.        
  1687.         reset($profiles);
  1688.        
  1689.         $ident = 0;
  1690.        
  1691.         foreach ($profiles as $value) {
  1692.             $ident += $value['ident'];
  1693.            
  1694.         }
  1695.        
  1696.        
  1697.        
  1698.         return $ident;
  1699.        
  1700.     }
  1701.    
  1702.    
  1703.    
  1704.    
  1705.     //***************************************************** Profile Permision Section ************************************************************
  1706.    
  1707.    
  1708.    
  1709.     //===================================================== Others Section ============================================================
  1710.    
  1711.     // Get Country list
  1712.     function get_country_list($country_id = 0)
  1713.     {
  1714.         $query = "SELECT *
  1715.              FROM parameters
  1716.              WHERE item = 'country'
  1717.              ORDER BY list";
  1718.        
  1719.        
  1720.        
  1721.         if ($stmt = $this->conn->query($query)) {
  1722.             $num_of_rows = $stmt->num_rows;
  1723.            
  1724.             if ($num_of_rows >= 1) {
  1725.                 while ($result1 = $stmt->fetch_object()) {
  1726.                     $result .= "<option ";
  1727.                     if ($country_id == $result1->list) {
  1728.                         $result .= 'selected="selected" ';
  1729.                     }
  1730.                     $result .= 'value="' . $result1->list . '">' . $result1->desc . '</option>' . "\n";
  1731.                 }
  1732.                
  1733.                 return $result;
  1734.             }
  1735.         }
  1736.        
  1737.        
  1738.     }
  1739.    
  1740.     //===================================================== cspwindow Section ============================================================
  1741.    
  1742.     // Get reseller Users
  1743.    
  1744.     function get_reseller_users($reseller)
  1745.     {
  1746.         $query = "SELECT login ";
  1747.         $query .= "FROM users ";
  1748.         if ($reseller <> 0)
  1749.             $query .= "WHERE reseller =$reseller ";
  1750.         $query .= "ORDER BY login";
  1751.        
  1752.         if ($stmt = $this->conn->query($query)) {
  1753.             while ($row = $stmt->fetch_array(MYSQLI_ASSOC)) {
  1754.                 $rows[] = $row['login'];
  1755.             }
  1756.             return $rows;
  1757.         }
  1758.     }
  1759.    
  1760.    
  1761.     function get_xml_from_csp()
  1762.     {
  1763.         $error   = false;
  1764.         $counter = 0;
  1765.        
  1766.         if (!isset($_SESSION["sessionid"]) || is_null($_SESSION["sessionid"])) {
  1767.             $sessionId = false;
  1768.             while (!$sessionId) {
  1769.                 if ($sessionId = $this->get_csp_session_id()) {
  1770.                     $_SESSION["sessionid"] = $sessionId;
  1771.                 }
  1772.                 $counter++;
  1773.                 if ($counter == 3)
  1774.                     break;
  1775.                 sleep(5);
  1776.             }
  1777.            
  1778.             if (!$sessionId) {
  1779.                 echo "Server is busy now..... please try again after few minutes...... ";
  1780.                 die;
  1781.             }
  1782.         }
  1783.        
  1784.         $data = "";
  1785.         header("content-type: application/xml; charset=ISO-8859-15");
  1786.        
  1787.         $data = '<?xml version="1.0" encoding="UTF-8"?>';
  1788.         $data .= '<cws-status-req ver="1.0">';
  1789.         $data .= '<session session-id="' . $_SESSION["sessionid"] . '"/>';
  1790.         $data .= '<proxy-status include="true"/>';
  1791.         $data .= '<ca-profiles include="true"/>';
  1792.         $data .= '<proxy-users';
  1793.         if (isset($_SESSION["hide_inactive"]) && $_SESSION["hide_inactive"] === "true") {
  1794.             $data .= ' hide-inactive="true"';
  1795.         }
  1796.         $data .= ' include="true"/>';
  1797.         if (isset($_SESSION["profile_select"]) && $_SESSION["profile_select"] <> "All") {
  1798.             $data .= '<profile>' . $_SESSION["profile_select"] . '</profile>';
  1799.         }
  1800.         //$data .='<proxy-users profile="jsc" include="true"/>';
  1801.         $data .= '</cws-status-req>';
  1802.        
  1803.         defined('XML_PAYLOAD') ? null : define('XML_PAYLOAD', $data);
  1804.         defined('XML_POST_URL') ? null : define('XML_POST_URL', CSPURL . '://' . CSPSERVER . ':' . CSPPORT . '/xmlHandler');
  1805.        
  1806.         /**
  1807.          * Initialize handle and set options
  1808.          */
  1809.         $ch = curl_init();
  1810.         curl_setopt($ch, CURLOPT_URL, XML_POST_URL);
  1811.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  1812.         curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
  1813.         curl_setopt($ch, CURLOPT_POSTFIELDS, XML_PAYLOAD);
  1814.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  1815.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  1816.         //curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));
  1817.         curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  1818.             'Content-Type: text/xml'
  1819.         ));
  1820.        
  1821.         /**
  1822.          * Execute the request and also time the transaction
  1823.          */
  1824.         $start     = array_sum(explode(' ', microtime()));
  1825.         $result    = curl_exec($ch);
  1826.         $stop      = array_sum(explode(' ', microtime()));
  1827.         $totalTime = $stop - $start;
  1828.        
  1829.         /**
  1830.          * Check for errors
  1831.          */
  1832.         if (curl_errno($ch)) {
  1833.             $error  = true;
  1834.             $result = 'ERROR -> ' . curl_errno($ch) . ': ' . curl_error($ch);
  1835.         } else {
  1836.             $returnCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
  1837.             switch ($returnCode) {
  1838.                 case 404:
  1839.                     $result = 'ERROR -> 404 Not Found';
  1840.                     $error  = true;
  1841.                     break;
  1842.                 default:
  1843.                     break;
  1844.             }
  1845.         }
  1846.        
  1847.        
  1848.         curl_close($ch);
  1849.        
  1850.         if (!$error) {
  1851.             return $result;
  1852.         } else {
  1853.             return false;
  1854.         }
  1855.     }
  1856.    
  1857.     function get_csp_session_id()
  1858.     {
  1859.         $error = false;
  1860.        
  1861.         //header( "content-type: application/xml; charset=ISO-8859-15" );
  1862.         $sessionid = "";
  1863.         $sessionid .= '<?xml version="1.0" encoding="UTF-8"?>';
  1864.         $sessionid .= '<cws-status-req ver="1.0">';
  1865.         $sessionid .= '<cws-login>';
  1866.         $sessionid .= '<user name="' . CSPUSERNAM . '" password="' . CSPPASSWD . '"/>';
  1867.         $sessionid .= '</cws-login>';
  1868.         $sessionid .= '</cws-status-req>';
  1869.        
  1870.         defined('XML_PAYLOAD1') ? null : define('XML_PAYLOAD1', $sessionid);
  1871.         defined('XML_POST_URL1') ? null : define('XML_POST_URL1', CSPURL . '://' . CSPSERVER . ':' . CSPPORT . '/xmlHandler');
  1872.        
  1873.         $headers = array(
  1874.             "Content-type: text/xml"
  1875.         );
  1876.        
  1877.         /**
  1878.          * Initialize handle and set options
  1879.          */
  1880.         $ch1 = curl_init();
  1881.         curl_setopt($ch1, CURLOPT_URL, XML_POST_URL1);
  1882.         curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
  1883.         curl_setopt($ch1, CURLOPT_TIMEOUT, TIMEOUT);
  1884.         curl_setopt($ch1, CURLOPT_POSTFIELDS, XML_PAYLOAD1);
  1885.         curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false);
  1886.         curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, false);
  1887.         //curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));
  1888.         curl_setopt($ch1, CURLOPT_HTTPHEADER, $headers);
  1889.        
  1890.         /**
  1891.          * Execute the request and also time the transaction
  1892.          */
  1893.         $start     = array_sum(explode(' ', microtime()));
  1894.         $result    = curl_exec($ch1);
  1895.         $stop      = array_sum(explode(' ', microtime()));
  1896.         $totalTime = $stop - $start;
  1897.        
  1898.        
  1899.         if (curl_errno($ch1)) {
  1900.             $error  = true;
  1901.             $result = 'ERROR -> ' . curl_errno($ch1) . ': ' . curl_error($ch1);
  1902.         } else {
  1903.             $returnCode = (int) curl_getinfo($ch1, CURLINFO_HTTP_CODE);
  1904.             switch ($returnCode) {
  1905.                 case 404:
  1906.                     $result = 'ERROR -> 404 Not Found';
  1907.                     break;
  1908.                 default:
  1909.                     break;
  1910.             }
  1911.         }
  1912.        
  1913.         /**
  1914.          * Close the handle
  1915.          */
  1916.         curl_close($ch1);
  1917.        
  1918.         /**
  1919.          * Output the results and time
  1920.          */
  1921.         if (!$error) {
  1922.             $xml                     = new DOMDocument('1.0', 'utf-8');
  1923.             $xml->formatOutput       = true;
  1924.             $xml->preserveWhiteSpace = false;
  1925.             $xml->loadXML("$result");
  1926.             $cwsstatusresp = $xml->getElementsByTagName("cws-status-resp")->item(0);
  1927.             $status        = $cwsstatusresp->getElementsByTagName("status")->item(0);
  1928.             $sessionid     = $status->getAttribute('session-id');
  1929.            
  1930.             return $sessionid;
  1931.            
  1932.         } else {
  1933.             return false;
  1934.         }
  1935.        
  1936.     }
  1937.    
  1938.    
  1939.    
  1940.     //********* [End] *********************************** cspwindow Section ************************************************************
  1941.    
  1942.    
  1943.     //***************************************************** Others Section ************************************************************
  1944.     // Bitwise Checking
  1945.     function bitwise_check($var1, $var2)
  1946.     {
  1947.         if ($var1 & $var2) {
  1948.             return true;
  1949.         } else {
  1950.             return false;
  1951.         }
  1952.        
  1953.     }
  1954.    
  1955.     public static function bitwise_checking($var1, $var2)
  1956.     {
  1957.         if ($var1 & $var2) {
  1958.             return true;
  1959.         } else {
  1960.             return false;
  1961.         }
  1962.        
  1963.     }
  1964.    
  1965.    
  1966.    
  1967.     // Send Email to Client
  1968.     function send_email($id)
  1969.     {
  1970.         //        $firephp = FirePHP::getInstance(true);  //must be delete when all prog is finished
  1971.         $others = new Others;
  1972.        
  1973.         error_reporting(E_STRICT);
  1974.         date_default_timezone_set('Africa/Khartoum');
  1975.         require_once('classes/class.phpmailer.php');
  1976.         //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
  1977.         $mail = new PHPMailer();
  1978.        
  1979.        
  1980.         //Get User Data
  1981.         $user_data = $this->get_user_data(intval($id));
  1982.         $username  = $user_data->login;
  1983.         $password  = $user_data->password;
  1984.         $profiles  = intval($user_data->profiles);
  1985.         $expire    = $user_data->expire;
  1986.         $server    = intval($user_data->serverinfo);
  1987.         $real_name = $user_data->name;
  1988.        
  1989.         //Get Server Data
  1990.         $server_data = $this->get_server_data_bylist($server);
  1991.         $hostname    = $server_data[hostname];
  1992.         $server_list = $server_data[1];
  1993.        
  1994.        
  1995.         // if profile=0 (mean user have access to all profiles)
  1996.         if ($profiles == 0) {
  1997.             $profiles = $this->get_sumbit_all_profiles($server);
  1998.            
  1999.         }
  2000.        
  2001.        
  2002.         //Get Profile Data
  2003.         $profile_data = $this->array_profiles_by_user_bitmask_by_server($profiles, $server_list);
  2004.        
  2005.        
  2006.        
  2007.        
  2008.         //Get number of profiles
  2009.         $num_of_profile = count($profile_data, 0);
  2010.        
  2011.         //start build email body
  2012.        
  2013.         $n_line = "";
  2014.         $c_line = "";
  2015.         if ($num_of_profile >= 1) {
  2016.             $n_line .= "#### Mgcamd Lines\n\n<br/><br/>";
  2017.             $c_line .= "#### CCcam Line\n\n<br/><br/>";
  2018.            
  2019.             for ($i = 0; $i < $num_of_profile; $i++) {
  2020.                 $n_line .= '<span style="color: #8F8F8F">#' . $profile_data[$i][details] . '</span><br/>' . "\n";
  2021.                 $c_line .= '<span style="color: #8F8F8F">#' . $profile_data[$i][details] . '</span><br/>' . "\n";
  2022.                
  2023.                 $n_line .= 'CWS = ' . $hostname . ' ' . $profile_data[$i][port] . ' ' . $username . ' ' . $password . ' ' . $profile_data[$i][desc] . "\n<br/>";
  2024.                 $c_line .= 'N: ' . $hostname . ' ' . $profile_data[$i][port] . ' ' . $username . ' ' . $password . ' ' . $profile_data[$i][desc] . "\n<br/>";
  2025.                
  2026.             }
  2027.            
  2028.         }
  2029.        
  2030.         if ($user_data->email <> "" && $user_data->email <> "none@none.com") {
  2031.             $mail_header .= "<html><head><body>";
  2032.             $mail_header .= "<br/>Hello ";
  2033.            
  2034.             if ($real_name <> "") {
  2035.                 $mail_header .= $real_name . "\n<br/>";
  2036.             } else {
  2037.                 $mail_header .= " Sir\n<br/>";
  2038.             }
  2039.            
  2040.            
  2041.             $filename    = "includes/email_header.txt";
  2042.             $handle      = fopen($filename, "r");
  2043.             $mail_header = fread($handle, filesize($filename));
  2044.             fclose($handle);
  2045.            
  2046.             $filename    = "includes/email_footer.txt";
  2047.             $handle      = fopen($filename, "r");
  2048.             $mail_footer = stream_get_contents($handle);
  2049.             fclose($handle);
  2050.            
  2051.             $extended_port = "Here is Extended Newcamd port configuration line:\n<br/>";
  2052.             $extended_port .= 'CWS = ' . $hostname . ' ' . CSPEXTPORT . ' ' . $username . ' ' . $password . ' ' . CSPEXTDESKEY . "\n<br/>";
  2053.            
  2054.             $mail_expire = "\n<br/>I'd like to bring to your attention this account will be expire in <strong>" . $expire . "</strong>, so plz contact us to avoid any interuption on the service.\n\n<br/><br/>";
  2055.            
  2056.            
  2057.             // email parameters
  2058.             $mail_body = $mail_header . "\n<br/>" . $extended_port . "\n\n<br/><br/>" . $n_line . "\n\n<br/><br/>" . $c_line . $mail_expire . $mail_footer;
  2059.            
  2060.             $body            = $mail_body;
  2061.             $text_body       = $mail_body;
  2062.             $mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
  2063.             // 1 = errors and messages
  2064.             // 2 = messages only
  2065.             $mail->IsSMTP();
  2066.             $mail->SMTPAuth   = true; // enable SMTP authentication
  2067.             $mail->SMTPSecure = "tls"; // sets the prefix to the server
  2068.             $mail->Host       = "smtp.gmail.com"; // sets GMAIL as the SMTP server
  2069.             $mail->Port       = 587; // set the SMTP port for the GMAIL server
  2070.             $mail->Username   = 'serverscccam'; // SMTP account username
  2071.             $mail->Password   = 'ka_@r_a@m_z~a_k$i'; // SMTP account password
  2072.            
  2073.             $mail->SetFrom(EMAILFROM, EMAILFROMNAME);
  2074.            
  2075.             $mail->AddReplyTo(EMAILFROM, EMAILFROMNAME);
  2076.            
  2077.             $mail->Subject = 'csp server';
  2078.            
  2079.             $mail->Body    = $body;
  2080.             $mail->AltBody = $text_body;
  2081.            
  2082.            
  2083.             $mail->MsgHTML($body);
  2084.            
  2085.             $address = "$user_data->email";
  2086.             $mail->AddAddress($address, $real_name);
  2087.            
  2088.             $user_name_own = "root";
  2089.            
  2090.             /**
  2091.              *
  2092.              * Create Newcamd zip file
  2093.              */
  2094.             $filename   = "includes/cfg_files/mgcamd/keys/newcamd.list.header";
  2095.             $handle     = fopen($filename, "r");
  2096.             $config_cam = fread($handle, filesize($filename));
  2097.             fclose($handle);
  2098.            
  2099.             $config_cam .= strip_tags($n_line, '\n');
  2100.            
  2101.             $tempdir  = 'tmp/' . time() . rand();
  2102.             $tempdir1 = $tempdir;
  2103.            
  2104.             if (mkdir($tempdir, 0777)) {
  2105.                 $tempdir = $tempdir . '/keys';
  2106.                 mkdir($tempdir, 0777);
  2107.                 $filename = $tempdir . "/newcamd.list";
  2108.                 $handle   = fopen($filename, "w");
  2109.                 fwrite($handle, $config_cam);
  2110.                 fclose($handle);
  2111.                
  2112.             }
  2113.            
  2114.             $files_to_zip = array(
  2115.                 'includes/cfg_files/mgcamd/keys/ignore.list',
  2116.                 'includes/cfg_files/mgcamd/keys/mg_cfg',
  2117.                 'includes/cfg_files/mgcamd/keys/priority.list',
  2118.                 'includes/cfg_files/mgcamd/keys/replace.list',
  2119.                 $filename
  2120.             );
  2121.             //if true, good; if false, zip creation failed
  2122.             if ($others->create_zip($files_to_zip, $tempdir1 . '/mgcamd_settings.zip')) {
  2123.                 unlink($filename);
  2124.                 unlink($tempdir);
  2125.                 rmdir($tempdir);
  2126.                 $tempdir = $tempdir1;
  2127.                
  2128.             }
  2129.            
  2130.            
  2131.            
  2132.             /**
  2133.              * Create CCcam zip file
  2134.              */
  2135.             $filename   = "includes/cfg_files/cccam/etc/CCcam.cfg_header";
  2136.             $handle     = fopen($filename, "r");
  2137.             $config_cam = fread($handle, filesize($filename));
  2138.             fclose($handle);
  2139.            
  2140.             $config_cam .= strip_tags($c_line, '\n');
  2141.            
  2142.             $filename = "includes/cfg_files/cccam/CCcam.cfg_footer";
  2143.             $handle   = fopen($filename, "r");
  2144.             $config_cam .= fread($handle, filesize($filename));
  2145.             fclose($handle);
  2146.            
  2147.            
  2148.             $tempdir = $tempdir . '/etc';
  2149.             if (mkdir($tempdir, 0777)) {
  2150.                 $filename = $tempdir . "/CCcam.cfg";
  2151.                 $handle   = fopen($filename, "w");
  2152.                 fwrite($handle, $config_cam);
  2153.                 fclose($handle);
  2154.                
  2155.             }
  2156.            
  2157.             $files_to_zip = array(
  2158.                 $filename
  2159.             );
  2160.             //if true, good; if false, zip creation failed
  2161.             if ($others->create_zip($files_to_zip, $tempdir1 . '/CCcam_settings.zip')) {
  2162.                 unlink($filename);
  2163.                 unlink($tempdir);
  2164.                 rmdir($tempdir);
  2165.                
  2166.             }
  2167.            
  2168.             shell_exec('chown -R root:root tmp/');
  2169.             shell_exec('chmod -R 777 tmp/');
  2170.            
  2171.             $mail->AddAttachment($tempdir1 . "/mgcamd_settings.zip"); // attachment
  2172.             $mail->AddAttachment($tempdir1 . "/CCcam_settings.zip"); // attachment
  2173.             //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
  2174.            
  2175.            
  2176.             if ($mail->Send()) {
  2177.                 $response .= "Message successfully sent to " . "<strong>" . $real_name . "</strong>";
  2178.                 unlink($tempdir1 . "/mgcamd_settings.zip");
  2179.                 unlink($tempdir1 . "/CCcam_settings.zip");
  2180.                 unlink($tempdir1);
  2181.                 rmdir($tempdir1);
  2182.                
  2183.             } else {
  2184.                 $response .= "Message delivery failed " . "<strong>" . $real_name . "</strong> ...";
  2185.                 unlink($tempdir1 . "/mgcamd_settings.zip");
  2186.                 unlink($tempdir1 . "/CCcam_settings.zip");
  2187.                 unlink($tempdir1);
  2188.                 rmdir($tempdir1);
  2189.                
  2190.             }
  2191.            
  2192.            
  2193.         } else {
  2194.             $response .= "Wrong Email for  client id#" . $id . "... Message delivery failed ...";
  2195.         }
  2196.         return $response;
  2197.        
  2198.         // Clear all addresses and attachments for next loop
  2199.         $mail->ClearAddresses();
  2200.         $mail->ClearAttachments();
  2201.         unlink($tempdir1 . "/mgcamd_settings.zip");
  2202.         unlink($tempdir1 . "/CCcam_settings.zip");
  2203.         unlink($tempdir1);
  2204.         rmdir($tempdir1);
  2205.        
  2206.     }
  2207.    
  2208.    
  2209.     function getdate($date)
  2210.     {
  2211.         switch ($date) {
  2212.             case 'today':
  2213.                 // $result = date("d/m/Y");
  2214.                 $result = date("Y-m-d");
  2215.                 break;
  2216.             case 'yesterday':
  2217.                 $result = $this->dateafter(-1);
  2218.                 break;
  2219.             case '2dayago':
  2220.                 $result = $this->dateafter(-2);
  2221.                 break;
  2222.             case 'thisweek':
  2223.                 $result = $this->dateafter(-7);
  2224.                 break;
  2225.             case 'thismonth':
  2226.                 $result = $this->dateafter(-30);
  2227.                 break;
  2228.             case 'tomorrow':
  2229.                 $result = $this->dateafter(1);
  2230.                 break;
  2231.         }
  2232.        
  2233.         return $result;
  2234.        
  2235.        
  2236.     }
  2237.    
  2238.    
  2239.     function dateafter($a)
  2240.     {
  2241.         $hours  = $a * 24;
  2242.         $added  = ($hours * 3600) + time();
  2243.         $days   = date("l", $added);
  2244.         $month  = date("m", $added);
  2245.         $day    = date("d", $added);
  2246.         $year   = date("Y", $added);
  2247.         //$result = "$day/$month/$year";
  2248.         $result = "$year-$month-$day";
  2249.         return ($result);
  2250.     }
  2251.    
  2252.    
  2253.    
  2254.     function get_user_settings_by_emu($id, $emu)
  2255.     {
  2256.         $others = new Others;
  2257.        
  2258.         //Get User Data
  2259.         $user_data = $this->get_user_data(intval($id));
  2260.         $username  = $user_data->login;
  2261.         $password  = $user_data->password;
  2262.         $profiles  = intval($user_data->profiles);
  2263.         $expire    = $user_data->expire;
  2264.         $server    = intval($user_data->serverinfo);
  2265.         $real_name = $user_data->name;
  2266.        
  2267.         //Get Server Data
  2268.         $server_data = $this->get_server_data_bylist($server);
  2269.         $hostname    = $server_data['hostname'];
  2270.         $server_list = $server_data[1];
  2271.        
  2272.        
  2273.         // if profile=0 (mean user have access to all profiles)
  2274.         if ($profiles == 0) {
  2275.             $profiles = $this->get_sumbit_all_profiles($server);
  2276.            
  2277.         }
  2278.        
  2279.        
  2280.         //Get Profile Data
  2281.         $profile_data = $this->array_profiles_by_user_bitmask_by_server($profiles, $server_list);
  2282.        
  2283.        
  2284.        
  2285.        
  2286.         //Get number of profiles
  2287.         $num_of_profile = count($profile_data, 0);
  2288.        
  2289.         //start build email body
  2290.        
  2291.         $n_line        = "";
  2292.         $c_line        = "";
  2293.         $smart_line    = "";
  2294.         $cleverhd_line = "";
  2295.         $Ggurd_line    = "";
  2296.         if ($num_of_profile >= 1) {
  2297.             $n_line .= "#### Mgcamd Lines\n\n<br/><br/>";
  2298.             $c_line .= "#### CCcam Line\n\n<br/><br/>";
  2299.             $smart_line .= "#### SmartLink Line\n\n<br/><br/>##my_newcam_his_cfg_your_sync###<br/><br/>
  2300.                            ###########Lan settings###########<br/>
  2301.                            ##    Local ip       gate way       net mask          DNS     MAC address         DHCP<br/>
  2302.                            La: { 0.0.0.0 }  {  192.168.1.254 }  { 0.0.0.0 }  {  0.0.0.0 }  { 00 ab 03 68 01 02 }   { 00 }<br/><br/><br/>  
  2303.                            #############newcamd settings########################<br/>
  2304.                            #Sr:host infor  max 16 servers<br/>
  2305.                            ### enable  port      server domain      Usename      password                  deskey<br/>";
  2306.             $cleverhd_line .= "#### CleverHD Line\n\n<br/><br/>";
  2307.             $Ggurd_line .= "#### Ggurd Line\n\n<br/><br/>[CS Information]<br/><br/>
  2308.                           #-------------------------------------------------------<br/>
  2309.                            sssp=<br/>
  2310.                            {<br/>
  2311.                            name: <br/>
  2312.                            baudrate: 115200<br/>
  2313.                            filtermode: auto<br/>
  2314.                            filterindex: 255<br/>
  2315.                            }<br/><br/>
  2316.                            #-------------------------------------------------------<br/>";
  2317.            
  2318.             for ($i = 0; $i < $num_of_profile; $i++) {
  2319.                 $n_line .= '<span style="color: #8F8F8F">#' . $profile_data[$i]['details'] . '</span><br/>' . "\n";
  2320.                 $c_line .= '<span style="color: #8F8F8F">#' . $profile_data[$i]['details'] . '</span><br/>' . "\n";
  2321.                 $smart_line .= '<span style="color: #8F8F8F">#' . $profile_data[$i]['details'] . '</span><br/>' . "\n";
  2322.                
  2323.                 $n_line .= 'CWS = ' . $hostname . ' ' . $profile_data[$i]['port'] . ' ' . $username . ' ' . $password . ' ' . $profile_data[$i]['desc'] . "\n<br/>";
  2324.                 $c_line .= 'N: ' . $hostname . ' ' . $profile_data[$i]['port'] . ' ' . $username . ' ' . $password . ' ' . $profile_data[$i]['desc'] . "\n<br/>";
  2325.                 $smart_line .= 'Sr: { 1 }' . ' { ' . $profile_data[$i]['port'] . ' }' . ' { ' . $hostname . ' } ' . ' { ' . $username . ' } ' . ' { ' . $password . ' } ' . ' { ' . $profile_data[$i]['desc'] . ' } ' . "\n<br/>";
  2326.                 //                {n,30000,newhd.no-ip.ca,user,passwd,01 02 03 04 05 06 07 08 09 10 11 12 13 14}
  2327.                 $cleverhd_line .= "{n," . $profile_data[$i]['port'] . ',' . $hostname . ',' . $username . ',' . $password . ',' . $profile_data[$i]['desc'] . '}' . "\n<br/>";
  2328.                
  2329.                 $Ggurd_line .= "{ " . "\n<br/>" . "slot" . $i . " =" . "\n<br/>" . "name: " . $profile_data[$i]['details'] . "\n<br/>" . "ip: " . $hostname . "\n<br/>" . "user: " . $username . "\n<br/>" . "password: " . $password . "\n<br/>" . "protocol: newcamd525 " . "\n<br/>" . "deskey: " . $profile_data[$i]['desc'] . "\n<br/>" . "filtermode: auto " . "\n<br/>" . "filterindex: 0 " . "\n<br/>" . "port: " . $profile_data[$i]['port'] . "\n<br/>" . "timeout: 0 " . "\n<br/>" . "} " . "\n<br/><br/>";
  2330.                
  2331.             }
  2332.            
  2333.         }
  2334.        
  2335.        
  2336.         $extended_port_r = "#Note: Here is Extended Newcamd port configuration line:\n<br/>";
  2337.         $extended_port_r .= '# CWS = ' . $hostname . ' ' . CSPEXTPORT . ' ' . $username . ' ' . $password . ' ' . CSPEXTDESKEY . "\n<br/>";
  2338.         $extended_port = "#Note: Here is Extended Newcamd port configuration line:\n<br/>";
  2339.         $extended_port .= 'CWS = ' . $hostname . ' ' . CSPEXTPORT . ' ' . $username . ' ' . $password . ' ' . CSPEXTDESKEY . "\n<br/>";
  2340.        
  2341.         $smart_line .= "<br/>#Upgard s/w server<br/>Up: { 10110  } { 127.0.0.1 }<br/>";
  2342.        
  2343.         $expiredate = "\n<br/>##Note: I'd like to bring to your attention this account will be expire in <strong>" . $expire . "</strong>, so plz contact us before that date to avoid any interuption on the service.\n\n<br/><br/>";
  2344.        
  2345.         switch ($emu) {
  2346.             case "mg":
  2347.                 return $extended_port . $expiredate;
  2348.                 break;
  2349.             case "cc":
  2350.                 return $c_line . $expiredate;
  2351.                 break;
  2352.             case "sm":
  2353.                 return $smart_line . $expiredate;
  2354.                 break;
  2355.             case "cl":
  2356.                 return $extended_port . $expiredate;
  2357.                 break;
  2358.             case "gg":
  2359.                 return $Ggurd_line . $expiredate;
  2360.                 break;
  2361.         }
  2362.        
  2363.     }
  2364.    
  2365. }
  2366.  
  2367. $mysql = New Mysql();
  2368. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement