Вход Регистрация
Файл: wapxl.ru/shaxty/classes/core.php
Строк: 175
<?php


class core {
    public static 
$db FALSE;   // Инициируем $db
    
public static $set = array();                // Настройки сайта
    
public static $core_error = array();          // Ошибки ядра
    
public static $realtime;                    // Время сайта



    
public static $ipp;                            // IP Адрес
    
public static $ipl;                            // IP Адрес
    
public static $agn;                          // User Agent

    
public static $user_id FALSE;                     // ID пользователя
    
public static $user_ps FALSE;                     // pass пользователя
    
public static $level 0;                     // Уровень пользователя
    
public static $max 10;                     // Сообщений на стр
    
public static $sid 1;                     // cид
    
public static $user = array();              // Данные пользователя




public function __construct(){





                require_once 
'ip.php';
                
$ipinit = new ipinit();
                
self::$ipl $ipinit->ip;
                
self::$ipp long2ip(self::$ipl);
                unset (
$ipinit);

                 if (isset(
$_SERVER["HTTP_X_OPERAMINI_PHONE_UA"]) && strlen(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) > 5) {
                
self::$agn 'Opera Mini: ' htmlspecialchars(mb_substr(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']), 0150));
              } elseif (isset(
$_SERVER['HTTP_USER_AGENT'])) {
                
self::$agn htmlspecialchars(mb_substr(trim($_SERVER['HTTP_USER_AGENT']), 0150));
              } else {
                
self::$agn 'Not Recognised';
              }



               if (
get_magic_quotes_gpc()) $this->del_slashes();
                   
$this->connect_Old(); //  Подключаемся к базе данных (mysql_connect)
                
$this->connect(); //  Подключаемся к базе данных  PDO

                
$this->session_start(); // Стартуем сессию
                
$this->startTimer(); //  Старт подсчета генерации

                //self::$set         = $this -> setting();
                
self::$realtime $_SERVER['REQUEST_TIME'];


                
$this->autorize(); // авторизация

            //   $this->ip_ban(); // Проверяем адрес IP на бан
//                $this->agent_ban(); // Проверяем user_agent на бан
//                $this->user_ban(); // Проверяем пользователя на бан
//                $this->unset_ban(); // снимаем баны и пинки


            
}

            public function 
__destruct(){
                
self::$db     Null;
            }

            public function 
check($str) {
                if (
function_exists('iconv')) $str iconv("UTF-8""UTF-8"$str);
                 
$str preg_replace('/[^P{C}n]+/u'''$str);
                  return 
htmlentities(trim($str), ENT_QUOTES'UTF-8');
            }

            
/* Удаляем слэши из глобальных переменных */
            
private function del_slashes(){
                
$in = array(&$_GET,&$_POST,&$_COOKIE);
                while ((list(
$k$v) = each($in)) !== FALSE) {
                    foreach (
$v as $key => $val) {
                        if (!
is_array($val)) {
                            
$in[$k][$key] = stripslashes($val);
                            continue;
                        }
                        
$in[] = & $in[$k][$key];
                    }
                }
                unset(
$in);
                if (!empty(
$_FILES)) foreach ($_FILES as $k => $v$_FILES[$k]['name'] = stripslashes((string)$v['name']);
            }


            
/* функции для подсчета генерации страницы */
            
public static function startTimer(){
                
$mtime microtime ();
                
$mtime explode (' '$mtime);
                
$mtime $mtime[1] + $mtime[0];
                
$_SESSION['starttime'] = $mtime;
            }


                
/* Подключаемся к базе данных */
            
public static function connect() {
                
// Подключаем PDO
                 
include_once 'pdo.php';
                @
self :: $db = new PDO_('mysql:host=' DBHOST ';port=' DBPORT ';dbname=' DBNAMEDBUSERDBPASS);
                
self :: $db -> exec('SET CHARACTER SET utf8');
                
self :: $db -> exec('SET NAMES utf8');


            }

            public static function 
endTimer(){
                
$mtime microtime ();
                
$mtime explode (' '$mtime);
                
$mtime $mtime[1] + $mtime[0];
                
$endtime $mtime;
                
$totaltime round (($endtime $_SESSION['starttime']), 5);
                return 
$totaltime;
            }




            
/* подключение через mysql_connect*/
            
public static function connect_Old() {

                
$connect = @ mysql_connect(DBHOSTDBUSERDBPASS) or die('Невозможно подключится к серверу БД!');
                
mysql_select_db(DBNAME) or die('Проблемы с БД!');
                
mysql_query("SET NAMES 'utf8'");
                
mysql_query("SET character_set_client='utf8'");
                
mysql_query("SET character_set_connection='utf8'");
                
mysql_query("SET character_set_results='utf8'");


            }




            private function 
session_start(){
                
session_name('SIDS');
                
session_start();
            }

                
/* авторизаци пользователя*/
            
private function autorize(){
                
$user_id FALSE;
                
$user_ps FALSE;

        if (isset (
$_SESSION['sesid']) && isset ($_SESSION['sesps'])) {
                 
$user_id intval($_SESSION['sesid']);
                 
$user_ps trim($_SESSION['sespass']);
                }


                
// Авторизация по COOKIE
                
elseif (isset ($_COOKIE['cookid']) && isset ($_COOKIE['cookps'])) {
                 
$user_id intval(base64_decode($_COOKIE['cookid']));
                 
$_SESSION['sesid'] = $user_id;
                 
$user_ps trim(md5($_COOKIE['cookps']));
                 
$_SESSION['sespass'] = $user_ps;
                 
$cookauth TRUE;
                }



                if(
$user_id && $user_ps){
                    
$user self :: $db->query("SELECT * FROM `users` WHERE id=? LIMIT 1;", array($user_id));
                    if(
$user->rowCount() == 1){
                        
$user $user -> fetch();
                        if(
$user_ps === $user['pass']){
                            
self::$user     $user;
                            
self::$user_id     $user['id'];
                            
self::$level     $user['level'];
                            
self::$max     $user['max'];


                               
// $this->user_ip_history();// История ИП
                                //$this->user_ip_bloced(); // Блок левых ИП
                                //$this->user_level_up(); // Изменение уровня по постам



                                /* считаем время проведения юзера на сайте */
                                /*if ($user['user_ip'] != self::$ipp)
                                    $sql .= "`user_ip` = '".self::$ipp."',";*/
                                
if ($user['user_soft'] != self::$agn)
                                    
$sql .= "`user_soft` = '".self::$agn."',";
                                if (
$user['onl'] > (self::$realtime 300))
                                    
$user['total_on_site'] = $user['total_on_site'] + self::$realtime $user['onl'];
                                
self::$db->query("UPDATE `users` SET {$sql} `total_on_site`=?, `onl`=? WHERE `id`=? LIMIT 1",array($user['total_on_site'],self::$realtime,$user['id']));


                                
//$this->user_onl_max(); // Подсчет максимального онлайн

                                /* Запрет авторизованным пользователям посещать страницы гостей*/
                                /*$pag = explode('::', 'nous.php::in.php::reg.php::lost_pass.php');
                                $co = count($pag);
                                for($i=0;$i<$co;$i++){
                                 $direct[] = $pag[$i];
                                }

                                if(in_array(substr($_SERVER['PHP_SELF'], 1) , $direct)){
                                 header("Location: /index.php");
                                }*/





                        
}else $this->user_unset();
                    }else 
$this->user_unset();
                } else 
$this->user_unset();
            }


        
/* уничтожаем данные пользователя и ведем учет гостей... */
            
private function user_unset(){
        
/*        unset($_SESSION['sesid']);
                unset($_SESSION['sesps']);
                setcookie('cookid','');
                setcookie('cookps','');*/
                
self::$user_id FALSE;
                
self::$level 0;
                
self::$max  10;

                if (!isset (
$_COOKIE['sessionid']))setcookie("sessionid"session_id(), self::$realtime 3600 24 365);


                
// учет гостей сайта
                
$gip md5(self::$ipp);


            }



            
// Блок посторонних IP
        
private function user_ip_bloced()
        {

             if(
self::$user['ip_bloced']!=NULL)
             {
                 
$pag explode('::'self::$user['ip_bloced']);
                 
$co count($pag);
                  for(
$i=0;$i<$co;$i++){
                   
$direct[] = $pag[$i];
                  }

                 if(!
in_array(self::$ipp $direct)){
                 
$title 'Стоп!';
                 
$align 'center';
                 
$head 'Стоп!';
                 include_once (
H.'shaxty/head.php');

                 if(isset(
$_POST['otvet_pass_ip_bloced'])){
                 if(
md5(md5($_POST['otvet_pass_ip_bloced']))==self::$user['otvet_pass']){
                 
$ip_bloced self::$user['ip_bloced'].'::'.self::$ipp;

                 
$dbi core::$db -> prepare("UPDATE `users` SET `ip_bloced`=? WHERE `id`=?");
                 
$dbi -> execute($ip_blocedself::$user['id']);

                 echo 
"<br /><b>Ваш IP адрес добавлен в список разрешенных!</b><br />";
                 echo 
'<br /><a href="'.H.'index.php" class="href">На главную</a><br />';
                 echo 
'<br />';
                 include_once (
H.'shaxty/foot.php');
                 }else{ echo 
"<br /><b>Ответ неверен!</b><br />";

                 
$opovesh 'Сработал фильтр IP адресов!
                 Ответ на секретный вопрос был введен неверно!<br />
                 <b>IP:</b> '
.core::$ipp.'
                 <b>Soft:</b> '
.core::$agn.'
                 <br />Если это были не вы, сообщите администрации!'
;
                 
self::$db->query("INSERT INTO `users_opovesh` SET `user_id` = '" self::$user_id "', `msg` = '" $opovesh "', `time` = '" self::$realtime "' ");




                 }

                 }


                 echo 
'<br /><b>Вам необходимо подтвердить, что эта учетная запись действительно ваша!</b><br /><br />';

                 echo 
'<form action="'.H.'index.php?" method="post">';
                 echo 
'Ответьте на ваш Секретный вопрос: <b>'.self::$user['vopros_pass'].'</b> <br/><br />';
                 echo 
'<b>Ответ:</b><br/><input type="text" name="otvet_pass_ip_bloced" /><br />';

                 echo 
'<p><input type="submit" class="ibutton" value="Далее"/></p></form>';

                 echo 
'<br />';
                 include_once (
H.'shaxty/foot.php');
                 }
             }
         }

    
//История IP адресов
    
private function user_ip_history()
    {
/*        if (self::$user['user_ip'] != self::$ipp) {
            // Удаляем из истории текущий адрес (если есть)
            self::$db->query("DELETE FROM `users_iphistory` WHERE `user_id`=? AND `ip`=? LIMIT 1",array(self::$user_id,self::$ipp));

            if (!empty(self::$user['user_ip'])) {
                // Вставляем в историю предыдущий адрес IP
                self::$db->query("INSERT INTO `users_iphistory` SET `user_id` = '" . self::$user_id . "', `ip` = '" . self::$user['user_ip'] . "', `time` = '" . self::$user['onl'] . "' ");
            }
            // Оповещение юзера
           if(self::$user['ip_edit']==1){
           $opovesh = 'IP адрес последнего визита не совпадает с вашим нынешним адресом!
           <br /> IP последнего посещения: <b>' . self::$user['user_ip'] . '</b>
           <br />Ваш IP: <b>' . self::$ipp . '</b>
           <br />Если вы уверены, что этот IP адрес не ваш, сообщите администрации!';
           self::$db->query("INSERT INTO `users_opovesh` SET `user_id` = '" . self::$user_id . "', `msg` = '" . $opovesh . "', `time` = '" . self::$realtime . "' ");
           }

            // Обновляем текущий адрес в таблице `users`
            self::$db->query("UPDATE `users` SET `user_ip` = '" . self::$ipp . "' WHERE `id` = '" . self::$user_id . "'");
        }*/
    
}


     
// Изменение уровня по постам
    
private function user_level_up()
    {

/*     if ((self::$user["posts"]>=200)&&(self::$user["level"]<1)){
    $message = "Поздравляю [b]".self::$user["user"]."[/b]!!! Вы набрали необходимое колличество постов и вам присвоен уровень <b>Новичек</b>.";
     self::$db->query("INSERT INTO `users_opovesh` SET `user_id` = '" . self::$user_id . "', `msg` = '" . $message . "', `time` = '" . self::$realtime . "' ");
     self::$db->query("UPDATE `users` SET `level` = '1' WHERE `id` = '" . self::$user_id . "'");
     } else if ((self::$user["posts"]>=400)&&(self::$user["level"]<2)){      $message = "Поздравляю [b]".self::$user["user"]."[/b]!!! Вы набрали необходимое колличество постов и вам присвоен уровень <b>Наш чел</b>.";
     self::$db->query("INSERT INTO `users_opovesh` SET `user_id` = '" . self::$user_id . "', `msg` = '" . $message . "', `time` = '" . self::$realtime . "' ");
     self::$db->query("UPDATE `users` SET `level` = '2' WHERE `id` = '" . self::$user_id . "'");
     } else if ((self::$user["posts"]>=600)&&(self::$user["level"]<3)){
   $message = "Поздравляю [b]".self::$user["user"]."[/b]!!! Вы набрали необходимое колличество постов и вам присвоен уровень <b>Мастер</b>.";
     self::$db->query("INSERT INTO `users_opovesh` SET `user_id` = '" . self::$user_id . "', `msg` = '" . $message . "', `time` = '" . self::$realtime . "' ");
     self::$db->query("UPDATE `users` SET `level` = '3' WHERE `id` = '" . self::$user_id . "'");
     }
*/
    
}




    
// Подсчет и запись максимального онлайн
    
private function user_onl_max()
    {
     
/*    $onler = self:: $db -> querySingle("SELECT COUNT(id) FROM `users` WHERE `onl`>'".(self::$realtime-self::$set['time_aut']) ."'");

         if($onler>self::$set['max_onl']){

          $dbr = self::$db -> prepare("UPDATE `setting` SET `value`=? WHERE `name`=?;");
          $dbr -> execute($onler, 'max_onl');
          $dbr -> execute(self::$realtime, 'max_onl_time');


         }
*/
    
}




/*__подгружаем_системные_настройки__*/
            
public static function setting(){
                
$setting =self::$db->query("SELECT `name`, `value` FROM `setting`;");
                return 
$setting -> fetchAssoc();
            }

 }  
//конец класса

?>
Онлайн: 2
Реклама