-2

народ помогите или подскажите как выявить синтаксичиские ошибки в коде крон фаила. пробывал запускать через терминал не че не понял. запускал через отладку то перекидывает в локалхост 8080 я хз уже как запустить этот код и посмотреть ошибки в нем как к примеру в индексе или в какойто функции есди ошибка есть то выдает ошибку online и строку. а в крон фаиле я уже всю голову сломал и все проги уже перепробывал . даже пробывал уже через это https://ru.rakko.tools/tools/63/ да и вообще я уже эти валидаторы все перепробывал и ошибка только в инклуде бд ну это понятно подключения к бд. удаляю инклуде бд выдает что нет ошибок . короче это пиз.... вот сам код

<?php

require_once 'bd.php';

if (isset($_GET['time'])) { if ($_GET['time'] == "1800") { //время 18:00 первый вжв (7) $ucharr = $mc->query("SELECT * FROM huntb_list WHERE type = 7 ORDER BY location ASC")->fetch_all(MYSQLI_ASSOC);

    ///Получаем отсортированный список, теперь пройдем цикл и знаем что к чему
    //$zem[1][1] = &quot;&quot;; [имялокации][Люди в локации] 
    $zem;
    $namezem;
    $namelocation = 0;
    $teclocation = 0;
    $teclocation2 = 0;
    $locazahvbd = &quot;&quot;;
    for ($i = 0; $i &lt; count($ucharr); $i++) {
        if ($namelocation != $ucharr[$i]['location']) {
            $teclocation += 1; //если лока сменилась новый массив
            $teclocation2 = 1;
            $namelocation = $ucharr[$i]['location'];
        }
        $zem[$teclocation][$teclocation2] = $ucharr[$i]['user_id'];
        $namezem[$teclocation] = $ucharr[$i]['location'];

        if ($locazahvbd == &quot;&quot;) {
            $locazahvbd .= &quot; `id` != &quot; . $namezem[$teclocation];
        } else {
            $locazahvbd .= &quot; AND `id` != &quot; . $namezem[$teclocation];
        }
        // echo $ucharr[$i]['user_id'].&quot;&lt;br&gt;&quot;;
        $teclocation2 += 1;
    }


    $nextZahvattime2 = mktime(19, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;) + 2, date(&quot;Y&quot;));
    $mc-&gt;query(&quot;UPDATE `location` SET `nextZahvat` = '&quot; . $nextZahvattime2 . &quot;' WHERE &quot; . $locazahvbd . &quot;&quot;);







    echo count($zem) . &quot;///&quot; . json_encode($zem) . &quot;&lt;br&gt;&quot;;
    //массив есть, теперьдумаем, что делать
    for ($i = 1; $i &lt; count($zem) + 1; $i++) {
        if (count($zem[$i]) &gt; 1) {
            //если людей много
            $battle_id = rand(0, time()) . rand(0, time()) . rand(0, time());
            $battle_start_time = time();
            $namebattle = &quot;Отбор (Земля)&quot;;
            for ($j = 1; $j &lt; count($zem[$i]) + 1; $j++) {
                $users = $mc-&gt;query(&quot;SELECT * FROM `users` WHERE `id` = '&quot; . $zem[$i][$j] . &quot;'&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
                echo $j . &quot;.&quot; . $users['name'] . &quot; Драка: &quot; . $zem[$i][$j] . &quot; за локу :&quot; . $namezem[$i] . &quot;&lt;br&gt;&quot;;

                if ($users['temp_health'] &lt; 2) {
                    //echo &quot;Ноль хп. нет&quot;;
                    $users['temp_health'] = 10;
                }

                hero_add($j, $namebattle, $users, $battle_id, $battle_start_time, 7);
                echo $j . &quot;.&quot; . $users['temp_health'] . &quot;.&quot; . $users['name'] . &quot; Драка: &quot; . $zem[$i][$j] . &quot; за локу :&quot; . $namezem[$i] . &quot;//&quot; . $namebattle . &quot;&lt;br&gt;&quot;;
                $namebattle = &quot;&quot;;
            }
        } else {

            echo &quot;Один на локе: &quot; . $zem[$i][1] . &quot; за локу :&quot; . $namezem[$i] . &quot;&lt;br&gt;&quot;;
            $users = $mc-&gt;query(&quot;SELECT * FROM `users` WHERE `id` = '&quot; . $zem[$i][1] . &quot;'&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
            $nextZahvattime = mktime(19, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;), date(&quot;Y&quot;));
            $mc-&gt;query(&quot;UPDATE `location` SET `idNextClan` = '&quot; . $users['id_clan'] . &quot;', `nextZahvat`='&quot; . $nextZahvattime . &quot;' WHERE `id` = &quot; . $namezem[$i] . &quot;&quot;);
            $mc-&gt;query(&quot;DELETE FROM `huntb_list` WHERE `location` ='&quot; . $namezem[$i] . &quot;' AND `type`=7&quot;);
            //а теперь отсылаем всему клану инфу о том, что они идиоты
            $Nameloca = $mc-&gt;query(&quot;SELECT `Name` FROM `location` WHERE `id`=&quot; . $namezem[$i] . &quot;&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
            $usersinclan = $mc-&gt;query(&quot;SELECT `id` FROM `users` WHERE `id_clan` = &quot; . $users['id_clan'] . &quot;&quot;)-&gt;fetch_all(MYSQLI_ASSOC);
            for ($b = 0; $b &lt; count($usersinclan); $b++) {
                $smsclan = &quot;Ваш клан добился права на бой за &quot; . $Nameloca['Name'] . &quot;! К 8-ми часам по Московскому времени собирайте всех из Вашего клана и идите в бой на локацию&quot;;
                $mc-&gt;query(&quot;INSERT INTO `msg` (`id_user`,`message`,`date`,`type`) VALUES ('&quot; . $usersinclan[$b]['id'] . &quot;','&quot; . $smsclan . &quot;','&quot; . time() . &quot;','msg')&quot;);
            }
        }
    }
    $nexttime2 = mktime(17, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;), date(&quot;Y&quot;));
    $nextZahvattime2 = mktime(19, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;), date(&quot;Y&quot;));
    $mc-&gt;query(&quot;UPDATE `location` SET `nextZahvat`='&quot; . $nextZahvattime2 . &quot;' WHERE nextZahvat` &lt;= '&quot; . $nexttime2 . &quot;'&quot;);
}





if ($_GET['time'] == &quot;2000&quot;) {

    //20:00
    $ucharr = $mc-&gt;query(&quot;SELECT * FROM `huntb_list` WHERE `type` = 8 ORDER BY `location` ASC&quot;)-&gt;fetch_all(MYSQLI_ASSOC);
    $zem;
    $namezem;
    $namelocation = 0;
    $teclocation = 0;
    $teclocation2 = 0;

    $locazahvbd = &quot;&quot;; // составляем запрос что бы узнать кто продляется
    for ($i = 0; $i &lt; count($ucharr); $i++) {
        if ($namelocation != $ucharr[$i]['location']) {
            $teclocation += 1; //если лока сменилась новый массив
            $teclocation2 = 1;
            $namelocation = $ucharr[$i]['location'];
        }

        $zem[$teclocation][$teclocation2] = $ucharr[$i]['user_id'];
        $namezem[$teclocation] = $ucharr[$i]['location'];
        //echo $ucharr[$i]['user_id'].&quot;&lt;br&gt;&quot;;
        if ($locazahvbd == &quot;&quot;) {
            $locazahvbd .= &quot; `id` != &quot; . $namezem[$teclocation];
        } else {
            $locazahvbd .= &quot; AND `id` != &quot; . $namezem[$teclocation];
        }



        $teclocation2 += 1;
    }

    $nextZahvattime2 = mktime(19, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;) + 2, date(&quot;Y&quot;));
    $mc-&gt;query(&quot;UPDATE `location` SET `nextZahvat` = '&quot; . $nextZahvattime2 . &quot;' WHERE &quot; . $locazahvbd . &quot;&quot;);



    for ($i = 1; $i &lt; count($namezem) + 1; $i++) {

        if (count($zem[$i]) &gt; 1) {
            //если людей много
            //если людей много
            $battle_id = rand(0, time()) . rand(0, time()) . rand(0, time());
            $battle_start_time = time();
            $namebattle = &quot;Земля&quot;;
            $novragov = true;
            $nv = 0;
            for ($j = 1; $j &lt; count($zem[$i]) + 1; $j++) {
                $users = $mc-&gt;query(&quot;SELECT * FROM `users` WHERE `id` = '&quot; . $zem[$i][$j] . &quot;'&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
                echo $users['name'] . &quot; Драка2: &quot; . $zem[$i][$j] . &quot; за локу :&quot; . $namezem[$i] . &quot;&lt;br&gt;&quot;;


                if ($users['temp_health'] &lt; 2) {
                    //echo &quot;Ноль хп. нет&quot;;
                    $users['temp_health'] = 10;
                }
                hero_add($users['id_clan'], $namebattle, $users, $battle_id, $battle_start_time, 8);
                ////Типа если 2 игрока с 1 клана, а с другого пусто, то ниче не будет
                if ($nv != 0 &amp;&amp; $nv != $users['id_clan']) {
                    $novragov = false;
                }
                $nv = $users['id_clan'];

                $namebattle = &quot;&quot;;
            }


            if ($novragov) {
                //отдать локу одному
                echo &quot;Нет соперника&quot;;
                $nexttime2 = mktime(17, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;) + 2, date(&quot;Y&quot;));
                $users = $mc-&gt;query(&quot;SELECT * FROM `users` WHERE `id` = '&quot; . $zem[$i][1] . &quot;'&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
                echo &quot;UPDATE `location` SET `idClan` = '&quot; . $users['id_clan'] . &quot;', `idNextClan` = '0', `nextZahvat`='&quot; . $nexttime2 . &quot;' WHERE `id` = &quot; . $namezem[$i] . &quot;&quot; . &quot;&lt;br&gt;&quot;;
                $mc-&gt;query(&quot;UPDATE `location` SET `idClan` = '&quot; . $users['id_clan'] . &quot;', `idNextClan` = '0', `nextZahvat`='&quot; . $nexttime2 . &quot;' WHERE `id` = &quot; . $namezem[$i] . &quot;&quot;);
                //DELETE FROM `battle` WHERE `battle_id` = ''
                $mc-&gt;query(&quot;DELETE FROM `battle` WHERE `battle_id` = '&quot; . $battle_id . &quot;'&quot;);
                $mc-&gt;query(&quot;DELETE FROM `huntb_list` WHERE `location` ='&quot; . $namezem[$i] . &quot;' AND `type`=8&quot;);

                //а теперь отсылаем всему клану инфу о том, что они идиоты
                $Nameloca = $mc-&gt;query(&quot;SELECT `Name` FROM `location` WHERE `id`=&quot; . $namezem[$i] . &quot;&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
                $usersinclan = $mc-&gt;query(&quot;SELECT `id` FROM `users` WHERE `id_clan` = &quot; . $users['id_clan'] . &quot;&quot;)-&gt;fetch_all(MYSQLI_ASSOC);
                for ($b = 0; $b &lt; count($usersinclan); $b++) {
                    $smsclan = &quot;Ваш клан захватил &quot; . $Nameloca['Name'] . &quot;! &quot;;
                    $mc-&gt;query(&quot;INSERT INTO `msg` (`id_user`,`message`,`date`,`type`) VALUES ('&quot; . $usersinclan[$b]['id'] . &quot;','&quot; . $smsclan . &quot;','&quot; . time() . &quot;','msg')&quot;);
                }
            }
        } else {
            //отдать локу одному
            $nexttime2 = mktime(17, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;) + 2, date(&quot;Y&quot;));
            $users = $mc-&gt;query(&quot;SELECT * FROM `users` WHERE `id` = '&quot; . $zem[$i][1] . &quot;'&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
            echo $users['name'] . &quot; отдать: &quot; . $zem[$i][1] . &quot; за локу :&quot; . $namezem[$i] . &quot;&lt;br&gt;&quot;;
            $mc-&gt;query(&quot;UPDATE `location` SET `idClan` = '&quot; . $users['id_clan'] . &quot;', `idNextClan` = '0', `nextZahvat`='&quot; . $nexttime2 . &quot;' WHERE `id` = &quot; . $namezem[$i] . &quot;&quot;);
            $mc-&gt;query(&quot;DELETE FROM `huntb_list` WHERE `location` ='&quot; . $namezem[$i] . &quot;' AND `type`=8&quot;);

            //а теперь отсылаем всему клану инфу о том, что они идиоты
            $Nameloca = $mc-&gt;query(&quot;SELECT `Name` FROM `location` WHERE `id`=&quot; . $namezem[$i] . &quot;&quot;)-&gt;fetch_array(MYSQLI_ASSOC);
            $usersinclan = $mc-&gt;query(&quot;SELECT `id` FROM `users` WHERE `id_clan` = &quot; . $users['id_clan'] . &quot;&quot;)-&gt;fetch_all(MYSQLI_ASSOC);
            for ($v = 0; $v &lt; count($usersinclan); $v++) {
                $smsclan = &quot;Ваш клан захватил &quot; . $Nameloca['Name'] . &quot;! &quot;;
                $mc-&gt;query(&quot;INSERT INTO `msg` (`id_user`,`message`,`date`,`type`) VALUES ('&quot; . $usersinclan[$v]['id'] . &quot;','&quot; . $smsclan . &quot;','&quot; . time() . &quot;','msg')&quot;);
            }
        }
    }

    $nexttime2 = mktime(17, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;) + 1, date(&quot;Y&quot;));
    $nextZahvattime2 = mktime(19, 50, 0, date(&quot;m&quot;), date(&quot;d&quot;) + 2, date(&quot;Y&quot;));
    $mc-&gt;query(&quot;UPDATE `location` SET `nextZahvat`='&quot; . $nextZahvattime2 . &quot;' , `idNextClan` = '0' WHERE nextZahvat` &lt;= '&quot; . $nexttime2 . &quot;'&quot;);
}

}

function hero_add($command, $type_battle, $userjuhg8, $battle_id, $battle_start_time, $type) { global $mc; $PA = $userjuhg8; $PA['weaponico'] = 0; $PA['Pshieldnum'] = 0; $PweaponEffect = array();

//pl 1
$arr1 = [];
$shops_ids = [];
$arr1['temp_health'] = $PA['temp_health'];
$arr1['max_health'] = $PA['health'];
$arr1['strength'] = $PA['strength'];
$arr1['toch'] = $PA['toch'];
$arr1['lov'] = $PA['lov'];
$arr1['kd'] = $PA['kd'];
$arr1['block'] = $PA['block'];
$arr1['bron'] = $PA['bron'];
//пересчет параметров игрока
//получаем список одетых вещей героя
$result221 = $mc-&gt;query(&quot;SELECT * FROM `userbag` WHERE `id_user` = '&quot; . $PA['id'] . &quot;' AND `dress`='1'  &amp;&amp; `BattleFlag`='1' || `id_user` = '&quot; . $PA['id'] . &quot;' AND `id_punct`&gt;'9' &amp;&amp; `BattleFlag`='1'&quot;);
$myrow221 = $result221-&gt;fetch_all(MYSQLI_ASSOC);
//перебираем параметры вещей

for ($i = 0; $i &lt; count($myrow221); $i++) {
    //read thing
    $result1 = $mc-&gt;query(&quot;SELECT * FROM `shop` WHERE `id`='&quot; . $myrow221[$i]['id_shop'] . &quot;'&quot;);
    if ($result1-&gt;num_rows) {
        //thing to arr par
        $infoshop = $result1-&gt;fetch_array(MYSQLI_ASSOC);
        $shops_ids[] = [addslashes($infoshop['name']), $infoshop['id']];
        $arr1['max_health'] += $infoshop['health'];
        $arr1['strength'] += $infoshop['strength'];
        $arr1['toch'] += $infoshop['toch'];
        $arr1['lov'] += $infoshop['lov'];
        $arr1['kd'] += $infoshop['kd'];
        $arr1['block'] += $infoshop['block'];
        $arr1['bron'] += $infoshop['bron'];
        //переводим в иконку оружия
        if ((int) $infoshop['id_punct'] == 1) {
            if ($infoshop['id_image'] &lt;= 36 || $infoshop['id_image'] &gt;= 279 &amp;&amp; $infoshop['id_image'] &lt;= 298) {
                $PA['weaponico'] = $infoshop['id_image'];
            } else {
                $PA['weaponico'] = 0;
            }
        }
        //получаем количество щита
        if ((int) $infoshop['id_punct'] == 2) {
            $PA['Pshieldnum'] = $infoshop['koll'];
        }
        if ($PA['stil'] &gt;= 0 &amp;&amp; $PA['stil'] &lt; 5) {
            //запись эффектов оружия
            if (is_array(json_decode_nice($infoshop['effects']))) {
                $PweaponEffect = array_merge($PweaponEffect, json_decode_nice($infoshop['effects']));
            }
        }
    }
}
$mc-&gt;query(&quot;INSERT INTO`battle`&quot;
        . &quot;(&quot;
        . &quot;`id`,&quot;
        . &quot;`Pname`,&quot;
        . &quot;`Pnamevs`,&quot;
        . &quot;`Pvsname`,&quot;
        . &quot;`level`,&quot;
        . &quot;`Pico`,&quot;
        . &quot;`Pflife`,&quot;
        . &quot;`Plife` ,&quot;
        . &quot;`Ptochnost`,&quot;
        . &quot;`Pblock`,&quot;
        . &quot;`Puron`,&quot;
        . &quot;`Pbronia`,&quot;
        . &quot;`Poglushenie`,&quot;
        . &quot;`Puvorot`,&quot;
        . &quot;`Pweaponico`,&quot;
        . &quot;`Pshieldnum`,&quot;
        . &quot;`Pshieldonoff`,&quot;
        . &quot;`Ptype`,&quot;
        . &quot;`Pvisible`,&quot;
        . &quot;`Mvisible`,&quot;
        . &quot;`Panimation`,&quot;
        . &quot;`Manimation`,&quot;
        . &quot;`Phod`,&quot;
        . &quot;`Phodtime`,&quot;
        . &quot;`Pauto`,&quot;
        . &quot;`PAlwaysEffect`,&quot;
        . &quot;`PeleksirVisible`,&quot;
        . &quot;`PweaponEffect`,&quot;
        . &quot;`PentityEffect`,&quot;
        . &quot;`MentityEffect`,&quot;
        . &quot;`super`,&quot;
        . &quot;`Mid`,&quot;
        . &quot;`location`,&quot;
        . &quot;`type_battle`,&quot;
        . &quot;`battle_id`,&quot;
        . &quot;`battle_start_time`,&quot;
        . &quot;`command`,&quot;
        . &quot;`lost_mob_id`,&quot;
        . &quot;`player_activ`,&quot;
        . &quot;`end_battle`,&quot;
        . &quot;`counter`,&quot;
        . &quot;`stil`,&quot;
        . &quot;`shops_ids`&quot;
        . &quot;)VALUES(&quot;
        . &quot;NULL,&quot;
        . &quot;'&quot; . $PA['name'] . &quot;',&quot;
        . &quot;'$type_battle',&quot;
        . &quot;'',&quot;
        . &quot;'&quot; . $PA['level'] . &quot;',&quot;
        . &quot;'&quot; . $PA['side'] . &quot;',&quot;
        . &quot;'&quot; . $arr1['max_health'] . &quot;',&quot;
        . &quot;'&quot; . $PA['temp_health'] . &quot;',&quot;
        . &quot;'&quot; . $arr1['toch'] . &quot;',&quot;
        . &quot;'&quot; . $arr1['block'] . &quot;',&quot;
        . &quot;'&quot; . $arr1['strength'] . &quot;',&quot;
        . &quot;'&quot; . $arr1['bron'] . &quot;',&quot;
        . &quot;'&quot; . $arr1['kd'] . &quot;',&quot;
        . &quot;'&quot; . $arr1['lov'] . &quot;',&quot;
        . &quot;'&quot; . $PA['weaponico'] . &quot;',&quot;
        . &quot;'&quot; . $PA['Pshieldnum'] . &quot;',&quot;
        . &quot;'0',&quot;
        . &quot;'0',&quot;
        . &quot;'1',&quot;
        . &quot;'1',&quot;
        . &quot;'0',&quot;
        . &quot;'0',&quot;
        . &quot;'1',&quot;
        . &quot;'&quot; . time() . &quot;',&quot;
        . &quot;'0',&quot;
        . &quot;'[]',&quot;
        . &quot;'1',&quot;
        . &quot;'&quot; . json_encode($PweaponEffect) . &quot;',&quot;
        . &quot;'[]',&quot;
        . &quot;'[]',&quot;
        . &quot;'&quot; . $PA['superudar'] . &quot;',&quot;
        . &quot;'&quot; . $PA['id'] . &quot;',&quot;
        . &quot;'&quot; . $PA['location'] . &quot;',&quot;
        . &quot;'$type',&quot;
        . &quot;'&quot; . $battle_id . &quot;',&quot;
        . &quot;'&quot; . $battle_start_time . &quot;',&quot;
        . &quot;'&quot; . $command . &quot;',&quot;
        . &quot;'0',&quot;
        . &quot;'1',&quot;
        . &quot;'0',&quot;
        . &quot;'0',&quot;
        . &quot;'&quot; . $PA['stil'] . &quot;',&quot;
        . &quot;'&quot; . json_encode($shops_ids, JSON_UNESCAPED_UNICODE) . &quot;'&quot;
        . &quot;)&quot;);

}

function json_decode_nice($json) { $json = str_replace("\n", "\n", $json); $json = str_replace("\r", "", $json); $json = preg_replace('/([{,]+)(\s)([^"]+?)\s:/', '$1"$3":', $json); $json = preg_replace('/(,)\s*}$/', '}', $json); return json_decode($json); }

?>

подскажите через что ео можно проверить. уже в висуал студио все имеющиеся разширения скачал и хз что да как . при отладке выкидывает в локалхост а там естественно нет подключения... а так чтоб без нета проверить я хз уже как

insolor
  • 49,104

2 Answers2

0

Для поиска синтаксических ошибок просто используйте IDE или текстовые редакторы кода, например:

PhpStorm

Visual Studio Code

SUBLIME

notepad

Пример:

введите сюда описание изображения

По расширениям файла, они понимают код и могут показывать ошибки.

По дебагу:

Добавьте в начале исполняемого файла или в начале файла который отвечает за старт проекта или в файл конфигураций такой код:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Этот код покажет вам какие ошибки есть в файле.

Так же если есть возможность включите DEBAG если это CMS или фреймворк.

Примеры включения DEBAG в разных системах:

Worpdpress: (wp-config.php)

// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

Laravel: (.env)

APP_DEBUG=true

Так же очень важный момент, дебажить код нужно уметь и подходить к этому аналитическим и логическим умом.

Разделять код на части и проверять его блоками, возможно удалять код блоками и добавлять код по частям обратно, смотреть правильность и совпадение условий и многое другое.

Можете попробовать добавить код в исключения.

Даниил
  • 3,443
0

все спс ребят. теперь когда задал ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1);

и теперь ошибки видны что мне и надо было

Примечание: Неопределенная переменная: пользователь в /home/a0572531/domains/xn--57-vlcakj0bi.xn--p1ai/public_html/ap.php в строке 7

Обратитевнимание: Неопределенная переменная: mc в /home/a0572531/domains/xn--57-vlcakj0bi.xn--p1ai/public_html/ap.php в строке 8

Неустранимая ошибка: вызов функции-члена query() с нулевым значением в /home/a0572531/domains/xn--57-vlcakj0bi.xn--p1ai/public_html/ap.php в строке 8 '''