Jump to content

Featured Replies

Posted
comment_41467

Добрый день. Столкнулся с проблемой.

 

именно , что не могу сделать отоброжение строчки как надо : есть файл 

<?php
if (!defined('SELL_SCRIPT')) {header("Location: ./"); die();}

$cipher = "rijndael-256"; 
$mode = MCRYPT_MODE_CBC;


    function test_db_config()
    {
        global $cfgDbHost, $cfgDbUsername, $cfgDbPassword,$cfgDbTableAccounts,$cfgDbName,$fields;
        $database = @mysql_connect ( $cfgDbHost, $cfgDbUsername, $cfgDbPassword );
        //$database = @mysql_connect ( $cfgDbHost, "root", "" );
        if ($database)
        {   
            // соединились, врубаем кодировку utf8
            if (function_exists('mysql_set_charset'))
            {
                mysql_set_charset("utf8");
            }
            else
            {
                mysql_query("SET NAMES utf8");
            }            
            
            // пробуем выбрать базу
            $result = mysql_select_db ( $cfgDbName, $database );
            if (!$result)
            {
                showerror ("Не могу открыть базу с данными для работы!<br />".mysql_error());
                die();
            }
            else
            {// таблица найдена. проверяем наличие таблицы
                $r = mysql_query("SELECT 1 FROM `".$cfgDbTableAccounts."` WHERE 0");
                if (!$r) {
                    // Таблица не существует
                    showerror ("Таблица с аккаунтами отсутствует!");
                    die();
                }
                else
                {// тестим поля
                    if (is_array($fields))
                    {
                        foreach ($fields as $field=>$data)
                        {
                            // проверяем существование полей в таблице:
                            $r = mysql_query("SELECT `".$field."` FROM `".$cfgDbTableAccounts."` WHERE 0");
                            if (!$r) 
                            {
                                showerror ("В таблице данных отсутствует поле ".$field."!");
                                die();
                            }
                        }
                    }
                    else
                    {
                        showerror ("В конфигурации не задан список полей таблицы!");
                        die();
                    }
                }
            }
        }
        else
        {
            showerror ("Ошибка соедиения с сервером базы данных!<br />".mysql_error());
            die();
        }
    }

    function showerror ($msg)
    {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "__www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>Критическая ошибка!</title>
        <style type="text/css">
            .rounded-corner {
                css-border-radius: 5px;
                -webkit-border-radius: 5px;
                -moz-border-radius: 5px;
            }
            .title-text {
                vertical-align: top;
            }
            #main-content {
                font-family:Arial,sans-serif;
                margin-top: 150px;
                margin-left: auto;
                margin-right: auto;
                position: relative;
                width: 650px;
            }
            #error-message {
                text-align: center;
                font-size: 12px;
                font-weight: bold;
                color: #666;
                background-color: #FFC;
                margin-top: 50px;
                padding: 12px 0;
                border: 1px solid #FFCC05;
            }
            #logo {
                float: left;
                padding: 0 20px;
                border-right: 1px solid #CCC;
            }
            #links {
                text-align: center;
                margin-top: 10px;
                font-size:11px;
                line-height:13px;
                border:1px;
            }
            #copynotice {
                margin: 20px 0;
                text-align: center;
                font-size: 11px;
            }
        </style>
    </head>
    <body>
        <div id="main-content">
            <div id="error-message" class="rounded-corner">
                <div id="logo">
                    <a href="/"><img src="./img/logo.png" border=0/></a>
                </div>
                <?php echo $msg;?>
            <div style="clear:both;"></div>
            </div>
            <div id="links">
                <a href="./index.php">Главная</a>
            </div>
            <div id="copynotice">
                &copy; 2011 Amx-Admin
            </div>
        </div>
    </body>
</html>
<?php
    }

    function test_ssh_function()
    {
        if (!extension_loaded('ssh2')) {
            showerror ("Библиотека php для работы с SSH отсутствует!");
            die();
        }
    }


    function error_msg_format($msg) 
    {
        return '<div id="error-message" class="rounded-corner">'.$msg.'</div>';
    }

    function info_msg_format($msg) 
    {
        return '<div id="info-message" class="rounded-corner">'.$msg.'</div>';
    }

    function upload_config ($server,$config_text)
    {
        global $gameservers,$info_msg,$error_msg;
        // Имена файлов
        // создаем временный файл
        $local_tmp_configfile = tempnam("tmp", "");
        if ($local_tmp_configfile===false)
        {
            $error_msg = "Внутренняя ошибка генерации конфигурации (возможно недоступен временный каталог)";
            return;
        }
        $handle = fopen($local_tmp_configfile, "w");
        if (!$handle)
        {
            $error_msg = "Внутренняя ошибка генерации конфигурации (возможно он недоступен для записи)";
            return;
        }
        fwrite($handle, $config_text);
        fclose($handle);

        $remote_file = 'users.ini';
        // Открытие соединения 
        $conn_id = ftp_connect($gameservers[$server][0]);
        if ($conn_id){
            // Авторизация
            $login_result = ftp_login($conn_id, $gameservers[$server][1], $gameservers[$server][2]);
            
            if ($login_result)
            {   
                // переходим в папку
                $chdir = ftp_chdir($conn_id, $gameservers[$server][3]);
                if ($chdir)
                {
                    // Загрузка файла $server_file и сохранение его как $local_file
                    if ($res = ftp_put($conn_id, $remote_file, $local_tmp_configfile, FTP_BINARY)) {
                        $info_msg .= "Файл конфигурации успешно загружен на ".$server."<br />";
                        
                        
                        // проверяем что есть необходимость обновления юзеров
                        if (isset($gameservers[$server][6],$gameservers[$server][7],$gameservers[$server][8]) && !( empty($gameservers[$server][6]) || empty($gameservers[$server][7]) || empty($gameservers[$server][8]) ))
                        {
                            list($addr,$port) = explode(":",$gameservers[$server][6],2);
                            if (isset($addr,$port) && !empty($addr) && !empty($port))
                            {
                                //error_reporting(E_ERROR | E_WARNING | E_PARSE);
                                error_reporting(E_ERROR);
                                //connect to current server
                                $rcon_server = new Rcon();
                                
                                //build connection to Gameserver
                                $pass=$gameservers[$server][7];
                                $rcon_server->Connect($addr, $port, $pass);
                                $command = "amx_reloadadmins";
                                $result = $rcon_server->RconCommand($command);
                                //close connection
                                $rcon_server->Disconnect();
                                // 
                                if ($result)
                                {
                                    preg_match("/[AMXX] Loaded (d+)+ admins? from file/u",$result,$admins);
                                    if (isset($admins[1]) && !(empty($admins[1]) && $admins[1]!=="0"))
                                    {
                                        $info_msg .= "Произведена мгновенная перезагрузка списка админов на сервере. всего админов: ".$admins[1]."<br />";
                                    }
                                    else
                                    {
                                        $error_msg .= "<br /> Ошибка мгновенной перезагрузки списка юзеров в игре:<br>".$result;
                                    }
                                }
                                else
                                {
                                    $error_msg .= "<br /> Ошибка! Не могу соединиться через Rconn с $server для мгновенного обновления списка админов в игре. <br>Вход на сервер будет возможен после смены локации в игре";
                                }
                            }
                            else
                            {
                                $error_msg .= "<br />Ошибка в адресе сервера при подаче rconn! Сервер: ".$server.".";
                            }
                        }
                    }
                    else
                    {
                        $error_msg = "Ошибка загрузки файла конфигурации! Сервер: ".$server.".";
                    }
                }
                else
                {
                    $error_msg = "Не могу перейти в каталог настроек! Сервер: ".$server.".";
                }
            }
            else
            {
                $error_msg = "Ошибка авторизации на FTP во время обновления конфигурации! Сервер: ".$server.".";
            }
            
            ftp_close($conn_id);
            
        }
        else
        {
            $error_msg = "Не могу подключиться к серверу для обновления конфигурации! Сервер: ".$gameservers[$server][3].".";
        }
        // удаляем временный локальный файл конфига
        unlink($local_tmp_configfile);

    }
    
    function format_serverlist($servers,$current,$check_post_ok)
    {
        if (!is_array($servers) || count($servers)<1)
        {
            return "<b>Серверов пока нет</b>";
        }
        $list = "";
        if (empty($current) || !$check_post_ok)
        {
            foreach ($servers as $name=>$serv)
            {
                $sel = "";
                if ($current==$name)
                {
                    $sel = ' selected="selected"';
                }
                $list .= "  <option".$sel.">".$name."</option>rn";
            }
        }
        else
        {
            $list = "  <option>".$current."</option>rn";
        }

        return "<select name='selected_server'>rn".$list."</select>rn";
    }

    function format_price_list($prices,$current)
    {
        if (!is_array($prices[$current]) || count($prices[$current])<1)
        {
            return " <b>Тарифов на этом сервере пока нет</b>";
        }
        $list = "";
        foreach ($prices[$current] as $price)
        {
            $list .= "  <option>".$price[2]."</option>rn";
        }

        return "<select name='selected_price'>rn".$list."</select>rn";
    }


    function format_config_options()
    {
        global $admin_options, $admin_options_disabled, $admin_login_acc_config, $admin_login_options_disabled;
        // получаем настройки для админа
        $admin_acc_config = "";
        foreach ($admin_options as $key=>$descr)
        {
            if (isset($_POST["adm_opt_".$key]) && !empty($_POST["adm_opt_".$key]) && !in_array($key,$admin_options_disabled))
            {
                $admin_acc_config .= $key;
            }
        }
        // получаем настройки для логина
        $admin_login_acc_config = "";
        foreach ($admin_login_options as $key=>$descr)
        {
            if (isset($_POST["adm_opt_".$key]) && !empty($_POST["adm_opt_".$key]) && !in_array($key, $admin_login_options_disabled))
            {
                $admin_login_acc_config .= $key;
            }
        }
        return array($admin_acc_config,$admin_login_acc_config);
    }

    function generate_config($server)
    {
        global $gameservers,$cfgDbTableAccounts;

        // считываем из базы действующие акки для этого сервера
        $sql = "SELECT `date_pay`, `login`, `pass`, `options`, `access_flags`, `days_count` FROM ".$cfgDbTableAccounts." WHERE `server`='".$server."' AND `activated`=1";
        //var_dump($sql);
        $select = mysql_query($sql);
        if (mysql_num_rows($select) > 0)
        {
            $config = "";
            while ($row = mysql_fetch_assoc($select))
            {
                if (($row[date_pay]+$row[days_count]*3600*24)>time() || $row[days_count]==0)
                {
                    $config .= '"'.$row[login].'" "'.$row[pass].'" "'.$row[options].'" "'.$row[access_flags].'"'."rn";
                }
            }
        }
        return $config;
    }

    function show_tariffs()
    {
        global $gameservers,$prices;
        $tarifs = "";
        foreach($gameservers as $server=>$conf)
        {
            if (is_array($prices) && is_array($prices[$server]) && count($prices[$server])>0)
            {
                $temp_tarifs = "";
                foreach ($prices[$server] as $curr_tarif)
                {
                    $temp_tarifs .= '&nbsp;&nbsp;&nbsp;'.$curr_tarif[2].',';
                }
                $tarifs .= "<a class='plugins' href='./mon.php?serv=".$conf[6]."'><b><u>".$server."</u></b></a>&nbsp;&nbsp;".(!empty($conf[6])?('('.$conf[6].')'):'')."&nbsp;-".$temp_tarifs."<br />rn";
            }
            else
            {
                $tarifs .= "<b>".$server."</b>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;тарифов пока нет<br />rn";
            }
        }
        return $tarifs;
    }
    
    class XMLParser {
        var $path;
        var $result;

        function cleanString($string) {
            return trim(str_replace("'", "&#39;", $string));
        }
       
        function XMLParser($encoding, $data) {
            $this->path = "$this->result";
            $this->index = 0;
           
            $xml_parser = xml_parser_create($encoding);
            xml_set_object($xml_parser, &$this);
            xml_set_element_handler($xml_parser, 'startElement', 'endElement');
            xml_set_character_data_handler($xml_parser, 'characterData');

            xml_parse($xml_parser, $data, true);
            xml_parser_free($xml_parser);
        }
       
        function startElement($parser, $tag, $attributeList) {
            $this->path .= "->".$tag;
            eval("$data = ".$this->path.";");
            if (is_array($data)) {
                $index = sizeof($data);
                $this->path .= "[".$index."]";
            } else if (is_object($data)) {
                eval($this->path." = array(".$this->path.");");
                $this->path .= "[1]";
            }

            foreach($attributeList as $name => $value)
                eval($this->path."->".$name. " = '".XMLParser::cleanString($value)."';");
        }
       
        function endElement($parser, $tag) {
            $this->path = substr($this->path, 0, strrpos($this->path, "->"));
        }
       
        function characterData($parser, $data) {
            if (strlen($data = XMLParser::cleanString($data)))
                eval($this->path." = '$data';");
        }
    }

    // Шифрование данных 
    function encrypt($data,  $key,  $cipher,  $mode)   
    {
        return  (string)base64_encode (
                            mcrypt_encrypt (
                                $cipher,
                                substr (md5 ($key) , 0,mcrypt_get_key_size ($cipher,  $mode) ) ,
                                $data,
                                $mode,
                                substr (md5 ($key), 0, mcrypt_get_block_size ($cipher,  $mode))
                            )
                        );
    }
    // Дешифрование данных 
    function decrypt($data,  $key,  $cipher, $mode)   
    {
        return (string) mcrypt_decrypt (
                                    $cipher,
                                    substr(md5($key),0,mcrypt_get_key_size($cipher,  $mode)), 
                                    base64_decode($data),
                                    $mode,
                                    substr(md5($key),0,mcrypt_get_block_size($cipher,  $mode))
                                    );
    }
    
    function acc_list()
    {
        global $cfgDbTableAccounts;
        $accounts = array();
        $sql = "SELECT `login` FROM `".$cfgDbTableAccounts."`";
        $select = mysql_query($sql);
        if (mysql_num_rows($select) > 0)
        {
            while ($row = mysql_fetch_assoc($select))
            {
                $accounts[] = $row['login'];
            }
        }
        return $accounts;
    }
    
    function get_logintype ($access_flags,$type=0)
    {
            if (stripos($access_flags,"a")!==false)
        {
            $login_type = "login_pass";
            $login_type_txt = "паролю";
        }
        elseif (stripos($access_flags,"d")!==false && stripos($access_flags,"e")!==false)
        {
            $login_type = "IP";
            $login_type_txt = "IP";
        }
        elseif (stripos($access_flags,"c")!==false && stripos($access_flags,"e")!==false)
        {
            $login_type = "steamid";
            $login_type_txt = "SteamID";
        }
        else
        {
            $login_type = "login_pass";
            $login_type_txt = "паролю";
        }
        
        if ($type==0)
        {
            return $login_type;
        }
        else
        {
            return $login_type_txt;
        }
    }

    function format_acc_edit_form($user_info)
    {
        $login_type = get_logintype($user_info["access_flags"]);
        global $gameservers;
        return
    '<form method="post" action="">
    <input type="hidden" name="account_edit_num2" value="'.$user_info[userid].'">
                <table cellpadding="4" width="1000px" cellspacing="0" style="padding:2px; border:2px dashed #cccccc;">
                    <tr align="center">
                        <td width="15%"><b>Логин / IP-адрес / SteamID:</b></td>
                        <td width="15%"><b>Пароль:</b></td>
                        <td width="12%"align="left"><b>Тип авторизации:</b></td>
                        <td width="10%"><b>Права аккаунта:</b></td>
                        <td width="10%"><b>Cервер:</b></td>
                        <td width="10%"><b>Эл. почта:</b></td>
                    </tr>
                    <tr valign="top">
                        <td ><input type="text" name="admin_login" value="'.$user_info[login].'" size="25"></td>
                        <td ><input type="text" name="admin_pass" value="'.$user_info[pass].'" size="20"></td>
                        <td rowspan="2">
                            <input type="radio" name="logintype" value="loginpass" '.($login_type == "login_pass"?'checked="checked"':'').' /> логин и пароль<br />
                            <input type="radio" name="logintype" value="byIP" '.($login_type == "IP"?'checked="checked"':'').' /> по IP-адресу<br />
                            <input type="radio" name="logintype" value="SteamID" '.($login_type == "steamid"?'checked="checked"':'').' /> по SteamID
                        </td>
                        <td ><input type="text" name="admin_rights" value="'.$user_info[options].'" size="20"></td>
                        <td>'.format_serverlist($gameservers,$user_info[server],false).'
                        </td>
                        <td ><input type="text" name="email" value="'.$user_info.'" size="20"></td>
                    </tr>
                    <tr align="center">
                        <td><b>Акк на <input type="text" name="days" value="'.$user_info[days_count].'" size="5"> дней</b></td>
                        <td><b>Цена:</b> <input type="text" name="price" value="'.$user_info[account_price].'" size="5"></td>
                        <td colspan="2" align="left"><input type="checkbox" name="activate" '.($user_info[activated]=="1"?'disabled="disabled" checked="checked"><b> аккаунт активирован</b>':"><b> активировать аккаунт</b>").'
                        <br /><input type="checkbox" name="paydate_update"><b> обновить дату оплаты (акк оплачен сейчас):</b></td>
                        <td align="center" >
                            <input type="submit" name="save" value="Обновить акк" class="button" style="border:7px groove #0000ff;">
                        </td>
                    </tr>
                    <tr>
                        <td colspan="6">Допполнительные контакты для связи (ICQ, Skype, другое), пожелания админу, примечания:<br /><input class="form_off" type="text" onFocus="this.className='form_on'" onBlur="this.className='form_off'" name="comment" value="'.$user_info[comment].'" style="width: 100%;"></td>
                    </tr>
                    <tr>
                        <td colspan="6" align="center" >
                            <input  onclick = "return confirm('Точно удалить этот акк?')" type="submit" name="delete" value=" Удалить акк " class="button" style="border:7px groove #ff0000;">
                        </td>
                    </tr>
                </table></form>';
    }

    function format_acc_line($acc,$i=0)
    {
        global $inv_id;
        $login_type_txt = get_logintype($acc["access_flags"],1);
        $end_acc = $acc ["date_pay"]+3600*24*$acc ["days_count"];
        $color = (($i % 2)==0)?"#FFFFFF":"#E8EEF7";
        if (isset($inv_id) && $inv_id == $acc["userid"])
        {
            $color = "#AAE8AA";
        }
        return '<tr align="center" bgcolor="'.$color.'" onclick="edit(''.$acc['userid'].'')">'."rn".
        "  <td>&nbsp;".date('d.m.Y',$acc ["date_create"])."</td>rn".
        ($acc ["date_pay"]!=0?("  <td>&nbsp;".date('d.m.Y&nbsp;&nbsp;H:i',$acc ["date_pay"])."</td>rn"):"  <td>не оплачен</td>").
        ($acc ["days_count"]!=0 ? 
            ($end_acc>time() ? 
                ($acc[activated]=="1" ?
                    "  <td bgcolor='#44E844'>".date('d.m.Y',$end_acc)."</td>rn"
                    :
                    "  <td bgcolor='#999999'>не активен</td>rn"
                )
                : 
                ($acc ["date_pay"]!=0 ? 
                    "  <td bgcolor='#FF6666'>&nbsp;просрочен</td>rn" 
                    : 
                    "  <td bgcolor='#66FFFF'>&nbsp;не&nbsp;оплачен</td>rn"
                )
            )
            : 
            ($acc[activated]=="1" ?
                "  <td bgcolor='#FFFF66'><b>&#8734;</b> никогда</td>"
                :
                "  <td bgcolor='#999999'>не активен</td>rn"
            )
        ).
        //($acc ["date_pay"]!=0?($end_acc>time()?("  <td>&nbsp;".date('d.m.Y',$end_acc)."</td>rn"):("  <td>&nbsp;просрочен</td>rn"))$acc ["date_pay"]==0?"  <td>не оплачен</td>":"  <td>закончился</td>")).
		"  <td>&nbsp;".$acc ["server"]."</td>rn".
		"  <td>&nbsp;".$acc ["login"]."</td>rn".
        "  <td>&nbsp;".$acc ["account_price"]."</td>rn".
        "  <td>&nbsp;".$acc ["days_count"]."</td>rn".
        
        "  <td class='b-fade' title='".$acc ["email"]."'>&nbsp;".$acc ["email"]."<i class='fade'></i></td>rn".
        "  <td>&nbsp;".$login_type_txt."</td>rn".
        "  <td>&nbsp;".$acc ["login"]."</td>rn".
        "  <td>&nbsp;".$acc ["pass"]."</td>rn".
        "  <td>&nbsp;".$acc ["options"]."</td>rn".
        "  <td class='b-fade' title='".$acc ["comment"]."' >".$acc ["comment"]."<i
		 class='fade'></i></td>rn".
		"  <td class='b-fade' title='".$acc ["imya"]."' >".$acc ["imya"]."<i
		 class='fade'></i></td>rn".
        "</tr>rn";
    }

    function format_accounts_table($data)
    {
        $curr_date = date('H:i:s,&nbsp;&nbsp;d.m.Yг.',time());    
        return
	
    '<center><h4>Текущие время и дата (МСК): '.$curr_date.'<br />Состояние аккаунтов на серверах:</h4>
    <form method="post">
    <input  onclick = "return confirm('Точно надо создать новый акк?')" type="submit" name="create" value=" Создать новый аккаунт " class="button" style="border:7px groove #00ff00;">
    </form>
                        
                        <caption>щелкните на строке аккаунта, чтобы изменить или удалить его</caption>
                          <tbody>
                            <dv class="modal fade" id="modal1">
							<table class="table table-bordered table-hover">
							<thead>
							
			<th><i class="icon-hand-right"></i> Ник Админа</th>
            <th><i class="icon-user"></i> Сервер</th>
            <th><i class="icon-fire"></i> Оплачен</th>
			<th><center><i class="icon-calendar"></i> Истекает</center></th> 
			<th><center><i class="icon-comment"></i> Подробно</center></th>
        </thead></div>
		<tr style="background-color: #f5f5f5;" rel="popover" dera-trigger="hover">
		<td><b>'.$userinfo[date_pay].'</b></td>
		<td><b>ntrer</b></td>
		<td><b>erngr</b></td>
		<td><b>dfgrtg</b></td>
		<td><center><a data-toggle="modal" href="#modal'.$i.'" class="btn btn-mini btn-info" href="#"><i class="icon-fullscreen icon-white"></i></a></center></td>
                            </tr>
							<div class="modal fade" id="modal'.$i.'">
			<div class="modal-header">
				<button class="close" data-dismiss="modal">×</button>
				<h3><center><img alt="" src="images/country/GE.png" /> (1)Gamer</center></h3>
				<small style="color: #fff;"><b>Забанен:</b> 21.08.2013 [13:16] </small><small style="color: #fff; float:right;"><b>Разбан:</b> <span style="font-style:italic;font-weight:bold;color:red">Никогда</span></small>
			</div>	
							<div class="modal-body">
				<div style="clear:both;"></div>
				<div class="alert alert-danger">
					<div rel="tooltip" data-placement="bottom" data-original-title="Прошло 0% бана">
						<div class="progress progress-danger progress-striped active" style="margin-bottom: 0; width: 500px;">
							<div class="bar" style="width: 0%;"></div>
						</div>
					</div>
				</div>
		
				<div class="well well-large" class="th">
					<b>Ник:</b> killer <br />
					<b>IP Адрес:</b> 151.0.44.203<br />
					<b>Причина:</b> aim bleatb<br />
					<b>Добавлен:</b> 21.08.2013 [13:23]<br />
					<b>Истекает:</b> <span style="font-style:italic;font-weight:bold;color:red">Никогда</span><br />
					<b>Забанен админом:</b> Nafan9<br />
					<b>Последний ник:</b> killer<br />
					<b>Последний IP Адрес:</b> 151.0.44.203<br />
					<b>Последний визит:</b> 21.08.2013 [13:23]<br />
					<b>Местонахождения :</b> Italy
				</div>
				
				<div class="alert alert-info" style="padding: 8px 15px 8px 14px;">
				<a href="admin.php?do=bans&edit=49" class="btn btn-primary"><i class="icon-pencil"></i> Редактировать</a>
				<a href="admin.php?do=bans&delete=49" style="float: right;" class="btn btn-danger"><i class="icon-trash"></i> Удалить</a>
			</div>	
			'.
                            $data
                          .'
			</div>
			<div class="modal-footer">
				<a href="__pfcs.ru/gounban" class="btn btn-danger"  style="float: left;">Заявка на Unban</a>
				<a href="#" class="btn btn-inverse" data-dismiss="modal">Закрыть</a>
			</div>
		</div>
                          </tbody>
                        </table>
    </center>';

    }

	?>

 

и стандартный который я еще не менял

 


<?php
if (!defined('SELL_SCRIPT')) {header("Location: ./"); die();}

$cipher = "rijndael-256"; 
$mode = MCRYPT_MODE_CBC;


    function test_db_config()
    {
        global $cfgDbHost, $cfgDbUsername, $cfgDbPassword,$cfgDbTableAccounts,$cfgDbName,$fields;
        $database = @mysql_connect ( $cfgDbHost, $cfgDbUsername, $cfgDbPassword );
        //$database = @mysql_connect ( $cfgDbHost, "root", "" );
        if ($database)
        {   
            // соединились, врубаем кодировку utf8
            if (function_exists('mysql_set_charset'))
            {
                mysql_set_charset("utf8");
            }
            else
            {
                mysql_query("SET NAMES utf8");
            }            
            
            // пробуем выбрать базу
            $result = mysql_select_db ( $cfgDbName, $database );
            if (!$result)
            {
                showerror ("Не могу открыть базу с данными для работы!<br />".mysql_error());
                die();
            }
            else
            {// таблица найдена. проверяем наличие таблицы
                $r = mysql_query("SELECT 1 FROM `".$cfgDbTableAccounts."` WHERE 0");
                if (!$r) {
                    // Таблица не существует
                    showerror ("Таблица с аккаунтами отсутствует!");
                    die();
                }
                else
                {// тестим поля
                    if (is_array($fields))
                    {
                        foreach ($fields as $field=>$data)
                        {
                            // проверяем существование полей в таблице:
                            $r = mysql_query("SELECT `".$field."` FROM `".$cfgDbTableAccounts."` WHERE 0");
                            if (!$r) 
                            {
                                showerror ("В таблице данных отсутствует поле ".$field."!");
                                die();
                            }
                        }
                    }
                    else
                    {
                        showerror ("В конфигурации не задан список полей таблицы!");
                        die();
                    }
                }
            }
        }
        else
        {
            showerror ("Ошибка соедиения с сервером базы данных!<br />".mysql_error());
            die();
        }
    }

    function showerror ($msg)
    {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "__www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>Критическая ошибка!</title>
        <style type="text/css">
            .rounded-corner {
                css-border-radius: 5px;
                -webkit-border-radius: 5px;
                -moz-border-radius: 5px;
            }
            .title-text {
                vertical-align: top;
            }
            #main-content {
                font-family:Arial,sans-serif;
                margin-top: 150px;
                margin-left: auto;
                margin-right: auto;
                position: relative;
                width: 650px;
            }
            #error-message {
                text-align: center;
                font-size: 12px;
                font-weight: bold;
                color: #666;
                background-color: #FFC;
                margin-top: 50px;
                padding: 12px 0;
                border: 1px solid #FFCC05;
            }
            #logo {
                float: left;
                padding: 0 20px;
                border-right: 1px solid #CCC;
            }
            #links {
                text-align: center;
                margin-top: 10px;
                font-size:11px;
                line-height:13px;
                border:1px;
            }
            #copynotice {
                margin: 20px 0;
                text-align: center;
                font-size: 11px;
            }
        </style>
    </head>
    <body>
        <div id="main-content">
            <div id="error-message" class="rounded-corner">
                <div id="logo">
                    <a href="/"><img src="./img/logo.png" border=0/></a>
                </div>
                <?php echo $msg;?>
            <div style="clear:both;"></div>
            </div>
            <div id="links">
                <a href="./index.php">Главная</a>
            </div>
            <div id="copynotice">
                &copy; 2011 Amx-Admin
            </div>
        </div>
    </body>
</html>
<?php
    }

    function test_ssh_function()
    {
        if (!extension_loaded('ssh2')) {
            showerror ("Библиотека php для работы с SSH отсутствует!");
            die();
        }
    }


    function error_msg_format($msg) 
    {
        return '<div id="error-message" class="rounded-corner">'.$msg.'</div>';
    }

    function info_msg_format($msg) 
    {
        return '<div id="info-message" class="rounded-corner">'.$msg.'</div>';
    }

    function upload_config ($server,$config_text)
    {
        global $gameservers,$info_msg,$error_msg;
        // Имена файлов
        // создаем временный файл
        $local_tmp_configfile = tempnam("tmp", "");
        if ($local_tmp_configfile===false)
        {
            $error_msg = "Внутренняя ошибка генерации конфигурации (возможно недоступен временный каталог)";
            return;
        }
        $handle = fopen($local_tmp_configfile, "w");
        if (!$handle)
        {
            $error_msg = "Внутренняя ошибка генерации конфигурации (возможно он недоступен для записи)";
            return;
        }
        fwrite($handle, $config_text);
        fclose($handle);

        $remote_file = 'users.ini';
        // Открытие соединения 
        $conn_id = ftp_connect($gameservers[$server][0]);
        if ($conn_id){
            // Авторизация
            $login_result = ftp_login($conn_id, $gameservers[$server][1], $gameservers[$server][2]);
            
            if ($login_result)
            {   
                // переходим в папку
                $chdir = ftp_chdir($conn_id, $gameservers[$server][3]);
                if ($chdir)
                {
                    // Загрузка файла $server_file и сохранение его как $local_file
                    if ($res = ftp_put($conn_id, $remote_file, $local_tmp_configfile, FTP_BINARY)) {
                        $info_msg .= "Файл конфигурации успешно загружен на ".$server."<br />";
                        
                        
                        // проверяем что есть необходимость обновления юзеров
                        if (isset($gameservers[$server][6],$gameservers[$server][7],$gameservers[$server][8]) && !( empty($gameservers[$server][6]) || empty($gameservers[$server][7]) || empty($gameservers[$server][8]) ))
                        {
                            list($addr,$port) = explode(":",$gameservers[$server][6],2);
                            if (isset($addr,$port) && !empty($addr) && !empty($port))
                            {
                                //error_reporting(E_ERROR | E_WARNING | E_PARSE);
                                error_reporting(E_ERROR);
                                //connect to current server
                                $rcon_server = new Rcon();
                                
                                //build connection to Gameserver
                                $pass=$gameservers[$server][7];
                                $rcon_server->Connect($addr, $port, $pass);
                                $command = "amx_reloadadmins";
                                $result = $rcon_server->RconCommand($command);
                                //close connection
                                $rcon_server->Disconnect();
                                // 
                                if ($result)
                                {
                                    preg_match("/[AMXX] Loaded (d+)+ admins? from file/u",$result,$admins);
                                    if (isset($admins[1]) && !(empty($admins[1]) && $admins[1]!=="0"))
                                    {
                                        $info_msg .= "Произведена мгновенная перезагрузка списка админов на сервере. всего админов: ".$admins[1]."<br />";
                                    }
                                    else
                                    {
                                        $error_msg .= "<br /> Ошибка мгновенной перезагрузки списка юзеров в игре:<br>".$result;
                                    }
                                }
                                else
                                {
                                    $error_msg .= "<br /> Ошибка! Не могу соединиться через Rconn с $server для мгновенного обновления списка админов в игре. <br>Вход на сервер будет возможен после смены локации в игре";
                                }
                            }
                            else
                            {
                                $error_msg .= "<br />Ошибка в адресе сервера при подаче rconn! Сервер: ".$server.".";
                            }
                        }
                    }
                    else
                    {
                        $error_msg = "Ошибка загрузки файла конфигурации! Сервер: ".$server.".";
                    }
                }
                else
                {
                    $error_msg = "Не могу перейти в каталог настроек! Сервер: ".$server.".";
                }
            }
            else
            {
                $error_msg = "Ошибка авторизации на FTP во время обновления конфигурации! Сервер: ".$server.".";
            }
            
            ftp_close($conn_id);
            
        }
        else
        {
            $error_msg = "Не могу подключиться к серверу для обновления конфигурации! Сервер: ".$gameservers[$server][3].".";
        }
        // удаляем временный локальный файл конфига
        unlink($local_tmp_configfile);

    }
    
    function format_serverlist($servers,$current,$check_post_ok)
    {
        if (!is_array($servers) || count($servers)<1)
        {
            return "<b>Серверов пока нет</b>";
        }
        $list = "";
        if (empty($current) || !$check_post_ok)
        {
            foreach ($servers as $name=>$serv)
            {
                $sel = "";
                if ($current==$name)
                {
                    $sel = ' selected="selected"';
                }
                $list .= "  <option".$sel.">".$name."</option>rn";
            }
        }
        else
        {
            $list = "  <option>".$current."</option>rn";
        }

        return "<select name='selected_server'>rn".$list."</select>rn";
    }

    function format_price_list($prices,$current)
    {
        if (!is_array($prices[$current]) || count($prices[$current])<1)
        {
            return " <b>Тарифов на этом сервере пока нет</b>";
        }
        $list = "";
        foreach ($prices[$current] as $price)
        {
            $list .= "  <option>".$price[2]."</option>rn";
        }

        return "<select name='selected_price'>rn".$list."</select>rn";
    }


    function format_config_options()
    {
        global $admin_options, $admin_options_disabled, $admin_login_acc_config, $admin_login_options_disabled;
        // получаем настройки для админа
        $admin_acc_config = "";
        foreach ($admin_options as $key=>$descr)
        {
            if (isset($_POST["adm_opt_".$key]) && !empty($_POST["adm_opt_".$key]) && !in_array($key,$admin_options_disabled))
            {
                $admin_acc_config .= $key;
            }
        }
        // получаем настройки для логина
        $admin_login_acc_config = "";
        foreach ($admin_login_options as $key=>$descr)
        {
            if (isset($_POST["adm_opt_".$key]) && !empty($_POST["adm_opt_".$key]) && !in_array($key, $admin_login_options_disabled))
            {
                $admin_login_acc_config .= $key;
            }
        }
        return array($admin_acc_config,$admin_login_acc_config);
    }

    function generate_config($server)
    {
        global $gameservers,$cfgDbTableAccounts;

        // считываем из базы действующие акки для этого сервера
        $sql = "SELECT `date_pay`, `login`, `pass`, `options`, `access_flags`, `days_count` FROM ".$cfgDbTableAccounts." WHERE `server`='".$server."' AND `activated`=1";
        //var_dump($sql);
        $select = mysql_query($sql);
        if (mysql_num_rows($select) > 0)
        {
            $config = "";
            while ($row = mysql_fetch_assoc($select))
            {
                if (($row[date_pay]+$row[days_count]*3600*24)>time() || $row[days_count]==0)
                {
                    $config .= '"'.$row[login].'" "'.$row[pass].'" "'.$row[options].'" "'.$row[access_flags].'"'."rn";
                }
            }
        }
        return $config;
    }

    function show_tariffs()
    {
        global $gameservers,$prices;
        $tarifs = "";
        foreach($gameservers as $server=>$conf)
        {
            if (is_array($prices) && is_array($prices[$server]) && count($prices[$server])>0)
            {
                $temp_tarifs = "";
                foreach ($prices[$server] as $curr_tarif)
                {
                    $temp_tarifs .= '&nbsp;&nbsp;&nbsp;'.$curr_tarif[2].',';
                }
                $tarifs .= "<a class='plugins' href='./mon.php?serv=".$conf[6]."'><b><u>".$server."</u></b></a>&nbsp;&nbsp;".(!empty($conf[6])?('('.$conf[6].')'):'')."&nbsp;-".$temp_tarifs."<br />rn";
            }
            else
            {
                $tarifs .= "<b>".$server."</b>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;тарифов пока нет<br />rn";
            }
        }
        return $tarifs;
    }
    
    class XMLParser {
        var $path;
        var $result;

        function cleanString($string) {
            return trim(str_replace("'", "&#39;", $string));
        }
       
        function XMLParser($encoding, $data) {
            $this->path = "$this->result";
            $this->index = 0;
           
            $xml_parser = xml_parser_create($encoding);
            xml_set_object($xml_parser, &$this);
            xml_set_element_handler($xml_parser, 'startElement', 'endElement');
            xml_set_character_data_handler($xml_parser, 'characterData');

            xml_parse($xml_parser, $data, true);
            xml_parser_free($xml_parser);
        }
       
        function startElement($parser, $tag, $attributeList) {
            $this->path .= "->".$tag;
            eval("$data = ".$this->path.";");
            if (is_array($data)) {
                $index = sizeof($data);
                $this->path .= "[".$index."]";
            } else if (is_object($data)) {
                eval($this->path." = array(".$this->path.");");
                $this->path .= "[1]";
            }

            foreach($attributeList as $name => $value)
                eval($this->path."->".$name. " = '".XMLParser::cleanString($value)."';");
        }
       
        function endElement($parser, $tag) {
            $this->path = substr($this->path, 0, strrpos($this->path, "->"));
        }
       
        function characterData($parser, $data) {
            if (strlen($data = XMLParser::cleanString($data)))
                eval($this->path." = '$data';");
        }
    }

    // Шифрование данных 
    function encrypt($data,  $key,  $cipher,  $mode)   
    {
        return  (string)base64_encode (
                            mcrypt_encrypt (
                                $cipher,
                                substr (md5 ($key) , 0,mcrypt_get_key_size ($cipher,  $mode) ) ,
                                $data,
                                $mode,
                                substr (md5 ($key), 0, mcrypt_get_block_size ($cipher,  $mode))
                            )
                        );
    }
    // Дешифрование данных 
    function decrypt($data,  $key,  $cipher, $mode)   
    {
        return (string) mcrypt_decrypt (
                                    $cipher,
                                    substr(md5($key),0,mcrypt_get_key_size($cipher,  $mode)), 
                                    base64_decode($data),
                                    $mode,
                                    substr(md5($key),0,mcrypt_get_block_size($cipher,  $mode))
                                    );
    }
    
    function acc_list()
    {
        global $cfgDbTableAccounts;
        $accounts = array();
        $sql = "SELECT `login` FROM `".$cfgDbTableAccounts."`";
        $select = mysql_query($sql);
        if (mysql_num_rows($select) > 0)
        {
            while ($row = mysql_fetch_assoc($select))
            {
                $accounts[] = $row['login'];
            }
        }
        return $accounts;
    }
    
    function get_logintype ($access_flags,$type=0)
    {
            if (stripos($access_flags,"a")!==false)
        {
            $login_type = "login_pass";
            $login_type_txt = "паролю";
        }
        elseif (stripos($access_flags,"d")!==false && stripos($access_flags,"e")!==false)
        {
            $login_type = "IP";
            $login_type_txt = "IP";
        }
        elseif (stripos($access_flags,"c")!==false && stripos($access_flags,"e")!==false)
        {
            $login_type = "steamid";
            $login_type_txt = "SteamID";
        }
        else
        {
            $login_type = "login_pass";
            $login_type_txt = "паролю";
        }
        
        if ($type==0)
        {
            return $login_type;
        }
        else
        {
            return $login_type_txt;
        }
    }

    function format_acc_edit_form($user_info)
    {
        $login_type = get_logintype($user_info["access_flags"]);
        global $gameservers;
        return
    '<form method="post" action="">
    <input type="hidden" name="account_edit_num2" value="'.$user_info[userid].'">
                <table cellpadding="4" width="1000px" cellspacing="0" style="padding:2px; border:2px dashed #cccccc;">
                    <tr align="center">
                        <td width="15%"><b>Логин / IP-адрес / SteamID:</b></td>
                        <td width="15%"><b>Пароль:</b></td>
                        <td width="12%"align="left"><b>Тип авторизации:</b></td>
                        <td width="10%"><b>Права аккаунта:</b></td>
                        <td width="10%"><b>Cервер:</b></td>
                        <td width="10%"><b>Эл. почта:</b></td>
                    </tr>
                    <tr valign="top">
                        <td ><input type="text" name="admin_login" value="'.$user_info[login].'" size="25"></td>
                        <td ><input type="text" name="admin_pass" value="'.$user_info[pass].'" size="20"></td>
                        <td rowspan="2">
                            <input type="radio" name="logintype" value="loginpass" '.($login_type == "login_pass"?'checked="checked"':'').' /> логин и пароль<br />
                            <input type="radio" name="logintype" value="byIP" '.($login_type == "IP"?'checked="checked"':'').' /> по IP-адресу<br />
                            <input type="radio" name="logintype" value="SteamID" '.($login_type == "steamid"?'checked="checked"':'').' /> по SteamID
                        </td>
                        <td ><input type="text" name="admin_rights" value="'.$user_info[options].'" size="20"></td>
                        <td>'.format_serverlist($gameservers,$user_info[server],false).'
                        </td>
                        <td ><input type="text" name="email" value="'.$user_info.'" size="20"></td>
                    </tr>
                    <tr align="center">
                        <td><b>Акк на <input type="text" name="days" value="'.$user_info[days_count].'" size="5"> дней</b></td>
                        <td><b>Цена:</b> <input type="text" name="price" value="'.$user_info[account_price].'" size="5"></td>
                        <td colspan="2" align="left"><input type="checkbox" name="activate" '.($user_info[activated]=="1"?'disabled="disabled" checked="checked"><b> аккаунт активирован</b>':"><b> активировать аккаунт</b>").'
                        <br /><input type="checkbox" name="paydate_update"><b> обновить дату оплаты (акк оплачен сейчас):</b></td>
                        <td align="center" >
                            <input type="submit" name="save" value="Обновить акк" class="button" style="border:7px groove #0000ff;">
                        </td>
                    </tr>
                    <tr>
                        <td colspan="6">Допполнительные контакты для связи (ICQ, Skype, другое), пожелания админу, примечания:<br /><input class="form_off" type="text" onFocus="this.className='form_on'" onBlur="this.className='form_off'" name="comment" value="'.$user_info[comment].'" style="width: 100%;"></td>
                    </tr>
                    <tr>
                        <td colspan="6" align="center" >
                            <input  onclick = "return confirm('Точно удалить этот акк?')" type="submit" name="delete" value=" Удалить акк " class="button" style="border:7px groove #ff0000;">
                        </td>
                    </tr>
                </table></form>';
    }

    function format_acc_line($acc,$i=0)
    {
        global $inv_id;
        $login_type_txt = get_logintype($acc["access_flags"],1);
        $end_acc = $acc ["date_pay"]+3600*24*$acc ["days_count"];
        $color = (($i % 2)==0)?"#FFFFFF":"#E8EEF7";
        if (isset($inv_id) && $inv_id == $acc["userid"])
        {
            $color = "#AAE8AA";
        }
        return '<tr align="center" bgcolor="'.$color.'" onclick="edit(''.$acc['userid'].'')">'."rn".
        "  <td>&nbsp;".date('d.m.Y',$acc ["date_create"])."</td>rn".
        ($acc ["date_pay"]!=0?("  <td>&nbsp;".date('d.m.Y&nbsp;&nbsp;H:i',$acc ["date_pay"])."</td>rn"):"  <td>не оплачен</td>").
        ($acc ["days_count"]!=0 ? 
            ($end_acc>time() ? 
                ($acc[activated]=="1" ?
                    "  <td bgcolor='#44E844'>".date('d.m.Y',$end_acc)."</td>rn"
                    :
                    "  <td bgcolor='#999999'>не активен</td>rn"
                )
                : 
                ($acc ["date_pay"]!=0 ? 
                    "  <td bgcolor='#FF6666'>&nbsp;просрочен</td>rn" 
                    : 
                    "  <td bgcolor='#66FFFF'>&nbsp;не&nbsp;оплачен</td>rn"
                )
            )
            : 
            ($acc[activated]=="1" ?
                "  <td bgcolor='#FFFF66'><b>&#8734;</b> никогда</td>"
                :
                "  <td bgcolor='#999999'>не активен</td>rn"
            )
        ).
        //($acc ["date_pay"]!=0?($end_acc>time()?("  <td>&nbsp;".date('d.m.Y',$end_acc)."</td>rn"):("  <td>&nbsp;просрочен</td>rn"))$acc ["date_pay"]==0?"  <td>не оплачен</td>":"  <td>закончился</td>")).
        "  <td>&nbsp;".$acc ["account_price"]."</td>rn".
        "  <td>&nbsp;".$acc ["days_count"]."</td>rn".
        "  <td>&nbsp;".$acc ["server"]."</td>rn".
        "  <td class='b-fade' title='".$acc ["email"]."'>&nbsp;".$acc ["email"]."<i class='fade'></i></td>rn".
        "  <td>&nbsp;".$login_type_txt."</td>rn".
        "  <td>&nbsp;".$acc ["login"]."</td>rn".
        "  <td>&nbsp;".$acc ["pass"]."</td>rn".
        "  <td>&nbsp;".$acc ["options"]."</td>rn".
        "  <td class='b-fade' title='".$acc ["comment"]."' >".$acc ["comment"]."<i class='fade'></i></td>rn".
        "</tr>rn";
    }

    function format_accounts_table($data)
    {
        $curr_date = date('H:i:s,&nbsp;&nbsp;d.m.Yг.',time());    
        return
    '<center><h4>Текущие время и дата (МСК): '.$curr_date.'<br />Состояние аккаунтов на серверах:</h4>
    <form method="post">
    <input  onclick = "return confirm('Точно надо создать новый акк?')" type="submit" name="create" value=" Создать новый аккаунт " class="button" style="border:7px groove #00ff00;">
    </form>
                        <table width="1000px" cellspacing="0" cellpadding="2" border="0" bgcolor="#E8EEF7" class="th">
                        <caption>щелкните на строке аккаунта, чтобы изменить или удалить его</caption>
                          <tbody>
                            <tr align="center" bgcolor="#C3D9FF">
                              <td width="7%">заказан</td>
                              <td width="11%">оплачен</td>
                              <td width="7%">кончается</td>
                              <td width="3%">цена</td>
                              <td width="3%">срок</td>
                              <td width="14%">сервер</td>
                              <td width="12%">email</td>
                              <td width="5%">вход по</td>
                              <td width="11%">логин</td>
                              <td width="9%">пароль</td>
                              <td width="14%">опции админа</td>
                              <td width="4%">инф.</td>
                            </tr>'.
                            $data
                          .'</tbody>
                        </table>
    </center>';

    }

?>

 

в первом файле я изменил таблицу на блок.

Но не чего не отображается , там я решил вставить тег '.$data.' и тогда отображается но все равно в таблице.

надо бы мне найти сам код дата чтобы узнать от туда теги при помощи которых он её создает, вытащить от туда их и вставить в первый файл 

а именно вот сюда


<div class="well well-large" class="th">
					<b>Ник:</b>  <br />
					<b>IP Адрес:</b> <br />
					<b>Причина:</b> <br />
					<b>Добавлен:</b> <br />
					<b>Истекает:</b> <br />
					<b>Забанен админом:</b>  />
					<b>Последний ник:</b> <br />
					<b>Последний IP Адрес:</b> <br />
					<b>Последний визит:</b> <br />
					<b>Местонахождения :</b> 
				</div>

помогите пожалуйста!

Edited by MontiQ

comment_41515

нотепад, ошибка в строке.

Какой строчки? что пишет?

Edited by Pashok(one)

Guest
This topic is now closed to further replies.

Последние посетители 0

  • No registered users viewing this page.