За последние 24 часа нас посетили 55712 программистов и 1618 роботов. Сейчас ищут 1219 программистов ...

Тыкните кота на ошибки

Тема в разделе "Сделайте за меня", создана пользователем boy1998, 1 июн 2017.

  1. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    Тыкните кота на ошибки, плюс если есть они, подскажите почему так нельзя делать, а как можно:
    index.php
    PHP:
    1. <?php
    2.  
    3. /**
    4. * Коменты
    5. */
    6.  
    7. defined('DEBUG_MODE') or define('DEBUG_MODE', false);
    8. defined('APP_PATH') or define('APP_PATH', dirname(__FILE__));
    9. defined('DS') or define('DS', DIRECTORY_SEPARATOR);
    10.  
    11. $config = APP_PATH . '/protected/config/main.php';
    12.  
    13. require_once(APP_PATH . '/application/My.php');
    14.  
    15. My::init($config)->run();
    B вот такой файлик:

    PHP:
    1. <?php
    2.  
    3. error_reporting(E_ALL ^ E_NOTICE);
    4. ini_set('display_errors', true);
    5. $config = require_once(dirname(__FILE__) . '/protected/config/main.php');
    6. require_once(dirname(__FILE__) . '/application/utils/CHash.php');
    7. require_once(dirname(__FILE__) . '/application/db/CDatabase.php');
    8.  
    9. function curlPost($url, $data){
    10.     global $config;
    11.     $ch = curl_init();
    12.     curl_setopt($ch, CURLOPT_URL, $config['serverUrl'] . $url);
    13.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    14.     curl_setopt($ch, CURLOPT_HEADER, 0);
    15.     curl_setopt($ch, CURLOPT_ENCODING, 'utf-8');
    16.     curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    17.     curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    18.     curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    19.     curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    20.     curl_setopt($ch, CURLOPT_POST, 1);
    21.     curl_setopt($ch, CURLOPT_POSTFIELDS, 'CLIENT_TOKEN_KEY=' . CHash::encrypt($config['licenseKey'], $config['installKey']) . '&data=' . json_encode($data));
    22.     $result = curl_exec($ch);
    23.     curl_close($ch);
    24.     $result = json_decode($result, true);
    25.     if(!empty($result['data']) and $result['status'] == 1){
    26.         return $result['data'];
    27.     }else{
    28.         return ($result['status'] == 1) ? true : false;
    29.     }
    30. }
    31.  
    32. if(isset($_GET['key']) && !strcmp($_GET['key'], $config['installKey'])){
    33.     $db = CDatabase::init(array('dbType'=>$config['db']['type'], 'dbHost'=>$config['db']['host'], 'dbName'=>$config['db']['name'], 'dbUser'=>$config['db']['user'], 'dbPassword'=>$config['db']['password']));
    34.     $file = file($config['mmotop']['file']);
    35.     for($i = 0; $i < sizeof($file); $i++){
    36.         $buffer = explode("\t", $file[$i]);
    37.         $id = trim($buffer[0]);
    38.         $date = trim($buffer[1]);
    39.         $name = trim($buffer[3]);
    40.         $type = trim($buffer[4]);
    41.         if(preg_match('/^[A-Za-z0-9_]+$/u', $name)){
    42.             $user = curlPost('user/getUser', array('user'=>$name));
    43.             if(!empty($user['ID'])){
    44.                 if(!$db->count('mw_vote', 'id='.(int)$id)){
    45.                     if($db->insert('mw_vote', array('id'=>$id, 'user'=>$user['ID'], 'type'=>$type, 'date'=>$date))){
    46.                         foreach($config['vote'] as $key => $value){
    47.                             $count = ($type == 2) ? $config['mmotop']['sms'] : $config['mmotop']['common'];
    48.                             if($key == 'coins' and $value == true){
    49.                                 if(curlPost('user/wallet', array('id'=>$user['ID'], 'type'=>'money', 'value'=>$count))){
    50.                                     $db->insert('mw_logs', array('user'=>$user['ID'], 'date'=>date('Y-m-j H:i:s'), 'product'=>base64_encode('Поощрение за голосование в виде монет'), 'event'=>'Vote', 'wallet'=>$count, 'type'=>'transfer'));
    51.                                 }
    52.                             }else if($key == 'bonuses' and $value == true){
    53.                                 if(curlPost('user/wallet', array('id'=>$user['ID'], 'type'=>'bonuses', 'value'=>$count))){
    54.                                     $db->insert('mw_logs', array('user'=>$user['ID'], 'date'=>date('Y-m-j H:i:s'), 'product'=>base64_encode('Поощрение за голосование в виде бонусов'), 'event'=>'Vote', 'wallet'=>$count, 'type'=>'transfer'));
    55.                                 }
    56.                             }else if($key == 'cubigold' and $value == true){
    57.                                 if(curlPost('user/addCash', array('userid'=>$user['ID'], 'gold'=>$count))){
    58.                                     $db->insert('mw_logs', array('user'=>$user['ID'], 'date'=>date('Y-m-j H:i:s'), 'product'=>base64_encode('Поощрение за голосование в виде золотых'), 'event'=>'Vote', 'wallet'=>$count, 'type'=>'ingame'));
    59.                                 }
    60.                             }else if($key == 'item' and $value == true){
    61.                                 $db->insert('mw_notices', array('to'=>$user['ID'], 'from'=>0, 'type'=>'mmotop', 'date'=>date('Y-m-j H:i:s'), 'item'=>json_encode($config['voteItem'])));
    62.                             }
    63.                         }
    64.                     }
    65.                     echo 1;
    66.                 }
    67.             }
    68.         }
    69.         set_time_limit(60);
    70.     }
    71. }

    И еще вот
    PHP:
    1. <?php
    2.  
    3. /**
    4. *
    5. */
    6.  
    7. class CAuth
    8. {
    9.     /**
    10.      * Handles access for non-logged users (block access)
    11.      */
    12.     public static function handleLogin()
    13.     {
    14.         if(My::app()->getSession()->get('loggedIn') == false)
    15.         {
    16.             session_destroy();
    17.             if(!preg_match('/user\//i', isset($_GET['url']) ? $_GET['url'] : ''))
    18.             {
    19.                 header('location: '.My::app()->getRequest()->getBaseUrl().'user/');
    20.                 exit;
    21.             }
    22.         }
    23.     }
    24.  
    25.     /**
    26.      * Handles access for logged users (redirect logged in users)
    27.      * @param string $location
    28.      */
    29.     public static function handleLogged($location = '')
    30.     {
    31.         if(My::app()->getSession()->get('loggedIn') == true)
    32.         {
    33.             header('location: '.My::app()->getRequest()->getBaseUrl().$location);
    34.             exit;
    35.         }
    36.     }
    37.    
    38.     /**
    39.      * @return string
    40.      */
    41.     public static function getLoggedId()
    42.     {
    43.         return My::app()->getSession()->get('loggedId');
    44.     }
    45.    
    46.     /**
    47.      * @return string
    48.      */
    49.     public static function getLoggedName()
    50.     {
    51.         return My::app()->getSession()->get('loggedName');
    52.     }
    53.    
    54.     /**
    55.      * @return string
    56.      */
    57.     public static function getLoggedRole()
    58.     {
    59.         return My::app()->getSession()->get('loggedRole');
    60.     }
    61.    
    62.     /**
    63.      * @return string
    64.      */
    65.     public static function getLoggedAccess()
    66.     {
    67.         return My::app()->getSession()->get('loggedAccess');
    68.     }
    69.  
    70.     /**
    71.      * @return bool
    72.      */
    73.     public static function isLoggedIn()
    74.     {
    75.         return My::app()->getSession()->get('loggedIn') ? true : false;
    76.     }
    77.    
    78.     /**
    79.      * @return bool
    80.      */
    81.     public static function isLoggedAdmin()
    82.     {
    83.         return (in_array(self::getLoggedRole(), CConfig::get('rights.groups')) ? true : false);
    84.     }
    85.    
    86.     /**
    87.      * @return string
    88.      */
    89.     public static function selectedRoleId()
    90.     {
    91.         return My::app()->getSession()->get('selectedRoleId') ? My::app()->getSession()->get('selectedRoleId') : false;
    92.     }
    93.    
    94.     /**
    95.      * @return string
    96.      */
    97.     public static function selectedRoleName()
    98.     {
    99.         return My::app()->getSession()->get('selectedRoleName') ? My::app()->getSession()->get('selectedRoleName') : false;
    100.     }
    101.    
    102.     /**
    103.      * @return string
    104.      */
    105.     public static function getLoggedEmail()
    106.     {
    107.         return My::app()->getSession()->get('loggedEmail') ? My::app()->getSession()->get('loggedEmail') : false;
    108.     }
    109. }
     
    #1 boy1998, 1 июн 2017
    Последнее редактирование: 1 июн 2017
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    это как ?
     
  3. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    ну это типа так "нельзя писать "жы" надо писать "жи", потому что в правилах так правильней и с этим текстом ты будешь выглядеть на много красивее и адекватней" ..
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    хорошо.
    почему у тебя set_time_limit(60);
    делает на 69 строке ?
     
  5. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    А че надо было в начало переместить или же сделать ini_set("max_execution_time", "60");

    Я тебя правильно понял, я просто не профи в этом .. Если нет, объясни
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    я не знаю, у тебя хотел узнать куда ее прописыватьo_O
    ну ладно... зачем тебе ini_set("max_execution_time", "60"); ?
     
  7. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    ну на скок я понимаю ini_set - это файлик конфигурации настроек
    а эта деректива max_execution_time влияет на выполнения самого скрипта
    а вся эта вещь указывает на время выполнения, можно вроде еще из базы взять этот параметр int $seconds
    Опять я могу путать, но подправьте ..
    автор скриптов не я, по этому не знаю почему так расположено, я пробежался вроде что я знал не увидел такого проблемного, вот решил тут спросить, как ни как форум ..
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    если код работает как надо - не парь себе мозги ибо нюансов тут много
     
  9. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    ну вдруг есть что-то такое, что может привести к отверстию
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Программисты не специализируются на отверстиях!
     
  11. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    наверное это было образное выражения таких фраз как: дыры/баги/sql инкц.