За последние 24 часа нас посетили 20247 программистов и 1082 робота. Сейчас ищут 758 программистов ...

Проблема с получением данных.

Тема в разделе "PHP для новичков", создана пользователем Oleg3331, 22 окт 2016.

  1. Oleg3331

    Oleg3331 Новичок

    С нами с:
    22 окт 2016
    Сообщения:
    2
    Симпатии:
    0
    Имеется код, в котором идет получение данных класса товара, его фото и имени покупателя. Результаты фейковые.
    Но почему-то получение проходит через раз.
    Прошу помощи в фиксе данного вопроса.

    Прилагаю куски кода:
    Код (Javascript):
    1. var lastWinners=$('#lastWinners')
    2. function loadLastWinners(){if(openingCase)return;$.ajax({url:'/ajax/ajax_lastorders.php',type:'POST',dataType:'json',data:{action:'lastWinners'},success:function(data){var nickname;try{data.reverse().forEach(function(item){if(lastWinners.find('.item'+item.id).length==0){if(item.fake_nickname=='')nickname=item.v_nickname;else
    3. nickname=item.fake_nickname;var el=$('<div title="'+item.firstName+'" class="oflo '+item.type+'">'+'<img src="'+getImage(item.image)+'" />'+'<div class="ofloname">'+nickname+'</div>'+'</div>')
    4. el.hide().addClass('item'+item.id);lastWinners.prepend(el)
    5. el.fadeIn(1000)}})
    6. lastWinners.find(".oflo:gt(9)").remove()
    7. $('.oflo').tooltip()}catch(e){}},error:function(){}})}function bagSS(){if($('#lastWinners')[0].innerHTML==""){loadLastWinners();}}setInterval(bagSS,1000)
    8. setInterval(loadLastWinners,winnersInterval)
    PHP:
    1. <?php
    2. include('classCases.php');
    3.  
    4. $minUpdTime = 1;
    5.  
    6. if(rand(0,3) == 1 && filectime('cron_info.php') < time()-$minUpdTime){
    7.     $itemsCount = 10;
    8.  
    9.     $operationval = array_rand($arr, 1);
    10.     $case = $arr[$operationval];
    11.  
    12.     $random = steamRandom(0, $operationval, $arr);
    13.     $cases = $case[$random][3];
    14.  
    15.     $case = $case[$random];
    16.     $image = $case[3];
    17.     $type = $case[2];
    18.     $firstName = $case[0];
    19.     /*----------------------------------*/
    20.     $name = explode("\r", file_get_contents('fakename.php'));
    21.     $v_nickname = trim($name[mt_rand(0, count($name)-1)]);
    22.  
    23.     $arrs = json_decode(file_get_contents('cron_info.php'), true);
    24.     $new_tmp = array(
    25.                 'id' => $arrs[0]['id']+1,
    26.                 'fake_nickname' => "$v_nickname",
    27.                 'fake' => '1',
    28.                 'image' => "$image",
    29.                 'type' => "$type",
    30.                 'firstName' => "$firstName",
    31.                 'v_nickname' => '$v_nickname',
    32.                 'from_social' => 'vk'
    33.             );
    34.  
    35.     $arrsse[] = $new_tmp;  
    36.     for($i=0; $i<$itemsCount-1; $i++) $arrsse[] = $arrs[$i];
    37.  
    38.     file_put_contents('cron_info.php', '');
    39.     $file_hendle = fopen('cron_info.php', 'w');
    40.     fputs($file_hendle, json_encode($arrsse));
    41.     fclose($file_hendle);
    42. }
    43.  
    44. include('cron_info.php');
    45.  
    46. function steamRandom($skill, $case, $arr) {
    47.     switch ($skill) {
    48.         case 0:
    49.             $fora = 75;// 0 - 99
    50.             $fora = 10 * $fora;
    51.             $rand = mt_rand($fora, 1000);
    52.             break;
    53.         //50
    54.         case 1:
    55.             $rand = mt_rand(0,1000);
    56.             break;
    57.         //70
    58.         case 2:
    59.             $rand = mt_rand(700,1000);
    60.             break;
    61.         //90
    62.         case 3:
    63.             $rand = mt_rand(999,1000);
    64.             break;
    65.     }
    66.     if($rand >= 0 && $rand < 797) { // milspec
    67.         foreach($arr[$case] as $key => $val)
    68.             if($val[2] == 'milspec') $arrs[] = $key;  
    69.         return $arrs[rand(0, count($arrs)-1)];
    70.      }
    71.     if($rand >= 797 && $rand < 850) { // restricted
    72.         foreach($arr[$case] as $key => $val)
    73.             if($val[2] == 'restricted')$arrs[] = $key;  
    74.         return $arrs[rand(0, count($arrs)-1)];
    75.     }
    76.     if($rand >= 850 && $rand < 971) { // classified
    77.         foreach($arr[$case] as $key => $val)
    78.             if($val[2] == 'classified')$arrs[] = $key;  
    79.         return $arrs[rand(0, count($arrs)-1)];
    80.     }
    81.     if($rand >= 971 && $rand < 990) { // covert
    82.         foreach($arr[$case] as $key => $val)
    83.             if($val[2] == 'covert')$arrs[] = $key;  
    84.         return $arrs[rand(0, count($arrs)-1)];
    85.     }
    86.     if($rand >= 990) { // rare
    87.         foreach($arr[$case] as $key => $val)
    88.             if($val[2] == 'rare')$arrs[] = $key;  
    89.         return $arrs[rand(0, count($arrs)-1)];
    90.     }
    91.  
    92.     return rand(0, count($arr[$case])-1);
    93. }
    94. ?>  
    PHP:
    1. <?
    2. function loadsHtmlLast(){
    3. $arrs=json_decode(file_get_contents($_SERVER["DOCUMENT_ROOT"]."/ajax/cron_info.php"),true);
    4.  
    5. $prefix = "";
    6. for($i=0;$i<10;$i++){
    7. $html .=<<<HTML
    8.  
    9. <div title="" class="oflo {$arrs[$i]["type"]} item{$arrs[$i]["id"]}" style="" data-original-title="{$arrs[$i]["firstName"]}">
    10. <img src="//site.ru{$arrs[$i]["image"]}">
    11. <div class="ofloname">{$arrs[$i]["fake_nickname"]}</div></div>
    12. HTML;
    13. }
    14. return $html;
    15. }
    16.  
    17. ?>
     
    #1 Oleg3331, 22 окт 2016
    Последнее редактирование: 22 окт 2016
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Надо в этот момент посмотреть что там в программе творится, какие переменные какие значения содержат и как идёт выполнение.
    Так как ты знаешь как должно быть, то сможешь понять где что-то пошло не так или от проблемы подняться выше.

    Вот инструкции, чтобы знать что делать
    отладка/debug
    http://phpfaq.ru/debug
    https://netbeans.org/kb/docs/php/debugging_ru.html
    https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
     
  3. Oleg3331

    Oleg3331 Новичок

    С нами с:
    22 окт 2016
    Сообщения:
    2
    Симпатии:
    0
    После ввода кода в php-файл, где отслеживать лог ошибок?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    У PHP есть настройки, например php.ini, там можно настроить чтобы ошибки писались например в error.log, он будет создан в той же папки что и скрипт с ошибкой после запуска.
    Если ты включил отображение ошибок прямо на странице, то смотри на страницу и проверяй исходный код в браузере, чтобы не пропустить ничего, не спутай с DOM. Это первая ссылка что я дал.
    Если подключил xdebug, то ошибки станут информативнее и красивей, тоже на странице их смотри.
    Способ с интерактивный, смотри по второй и третьей ссылке. Там везде даже картинки есть.