1. PHP / Говнокод #5737

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    <?php
    //дата и время.
    $date1 = date('d.m.Y');
    $date2 = date('H:i:s');
    //$i - счётчик пользователей, $cnt - то, что будем выводить (в завершении)
    //$uall - Ссылки на пользователей онлайн
    $i = 0;
    $cnt = NULL;
    $uall = NULL;
    $db->query = "SELECT id, nick, timeof, online FROM ".$GLOBALS['pref']."users";
    $qonl = $db->query();
    $cnt .= "Всего участников ";
    
    while ($usronl = $db->farray($qonl)) {
    if ($usronl['online'] == TRUE) {
    $ar = explode("|:|", $usronl['timeof']);
    
    //Если сегодняшняя дата
    if ($ar[0] === $date1) {
    
    $est = explode(":", $ar[1]);
    $tm = explode(":", $date2);
    $m4 = $est[0] - $tm[0];
    $m5 = $tm[1] - $est[1];
    $m6 = "$m5";
    if (($est[0] === $tm[0]) && (($m5 <= 15))) {
    if ($i > 0) { $p = ","; } else { $p = NULL; }
    if ($i == 1) { $s = ","; } else { $s = NULL; }
    $i++;
    $uall .= $s."<a href=\"http://".$GLOBALS['url']."/users/
    profile/".$usronl['id']."/\" title=\"Посмотреть профиль\">".$usronl['nick']."<
    /a>".$p." ";
    
     } elseif (($m4 == -1) && ($m6{0} === "-" && $m5 <= -45)) {
    if ($i > 0) { $p = ","; } else { $p = NULL; }
    if ($i == 1) { $s = ","; } else { $s = NULL; }
    $i++;
    $uall .= $s."<a href=\"http://".$GLOBALS['url']."/users/
    profile/".$usronl['id']."/\" title=\"Посмотреть профиль\">".$usronl['nick']."<
    /a>".$p." ";
     }
      }
       } 
    	} //end while
    if ($i == 0) {
    $uall .= "никого";
    } else {
    
    $co = strlen($uall);
    $uall = substr($uall, 0, $co - 7);
    $uall .= ".";
    }
    $cnt .= "(".$i."):<BR>".$uall;
    
    ?>

    Писал вывод онлайн посетителей на сайте в 2009 году.

    Запостил: Furry, 21 Февраля 2011

    Комментарии (20) RSS

    • SQL injection, DateTime->Diff, DATE_FORMAT, DATEDIFF, COUNT? неа не слышал
      Ответить
      • Где там injection нашли? Переменная явно в конфиге, туда никто ничего не заинжектит кроме тех у кого есть доступ к серверу, а имея доступ накой надо инжектить, да еще и в конфиг?
        Ответить
        • дак вроде как она в глобальном массиве.
          Ответить
          • и что? по дефолту register_globals отключены
            Ответить
            • ну это не факт что они и на конкретном хосте отключены
              Ответить
              • Найдите мне того крейзи-админа, который либо сам их поставит, либо даст доступ тому кто их ставит.
                Ответить
                • да сейчас уже таких и не встретишь
                  тем более в три часа ночи
                  Ответить
    • Первое слышал.
      А 2,3,4,5, на то время, нет.
      Ответить
      • а написать 50 строк ГК вместо положенных 10 есть?
        Ответить
    • 1) $db->query = "xxx";
      $qonl = $db->query();
      За такое надо руки рубать на уровне шеи.

      2) Код обфусцирован, через неделю нихуя не поймёте.

      3) Накой использовать двойные кавычки, если делать конкатенацию? Мануал вообще читали, знаете отличие?

      4) тупое мясо (перемешана логика и шаблон)

      5) Почитайте в мануале про тернарный оператор

      6) Чем отличаются строки 30-32 от 38-40?

      7) Пожалуй я погорячился послав вас читать мануал, смените профессию. Делать сайты должны подготовленные программисты, а не домохозяйки прочитавшие книгу "PHP за 12 часов".
      Ответить
      • на мануалы времени нет!
        Ответить
        • Вы не дочитали до конца, пункт 7 решает проблему со временем
          Ответить
          • >"PHP за 12 часов".
            LOL я помню читал за PHP за 24 часа
            ее что сократили добавив видео уроки ?)
            Ответить
            • Это образно, последняя книга по php, которую я читал была "Web Database Applications with PHP & MySQL" в далеком 2002м, потом у меня появился полноценный проект и я понял что книги по ПХП такое же говно как и 99% кода на нём.
              Ответить
              • >>книги по ПХП такое же говно как и 99% кода на нём.
                согласен я тоже книгу читал давно уже лет 7 назад наверное
                и автор книги везде в примерах писал индексы массивов без кавычек $_GET[id]
                сразу понял что это гавно, забросил эту затею и решил что лучше уж читать мануалы.
                вот только одного не понял как могли ее в печать пустить?
                им что совсем плевать что печатать
                ----------
                я точно не помню как книга называлась и чья была, но точно то что СПБ, и что то там про ПЫХ 4
                Ответить
                • > согласен я тоже книгу читал давно уже лет 7 назад наверное
                  А вот это зря, в мире есть много книг которые стоит читать...

                  >вот только одного не понял как могли ее в печать пустить?
                  Не думаю что местные типографские бабули сильно рубили в пыхе.

                  >и автор книги везде в примерах писал индексы массивов без кавычек $_GET[id]
                  И это при том что там повсеместно использовался register_globals.
                  Ответить
              • золотые слова
                Ответить
      • А ты не классный. :(
        Ответить
        • Согласен, до мистера Хенки мне еще пахать и пахать.
          Ответить

    Добавить комментарий