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

    +158

    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
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    <?php
    include 'config.php';
    $title = "Форум - $maintitle";
    $topic = $_GET['topic'];
    $board = $_GET['board'];
    $main = $_GET['main'];
    include 'core/funcs.php';
    include 'core/pdoconnect.php';
    include 'te/heads.php';
    echo '
     <div class="clear"></div>
        <!-- Content Section -->
        <div id="content_sec">
        	<!-- Column 1 -->
            <div class="col1">
            	<!-- Featured Playlist -->
            	<div class="featured_playlist">
                	<h3 class="heading">',$title,'</h3>
    
    				';
    
    if (isset($topic)){
    echo '<table>
      <tbody>
      <tr><th> Тема</th><th>Автор</th><th>Посл.обн.</th>
      </tr>';
    
    }
    if ($board > 0){
    echo '<table>
      <tbody>
      <tr><th> Тема</th><th>Автор</th><th>Посл.обн.</th>
      </tr>';
    $prepare = $db->prepare("SELECT * from `forum` where `board_id` = :bo_id order by `last_update` DESC");
    $prepare->bindParam(":bo_id", $board, PDO::PARAM_INT);
    $prepare -> execute();
    //print_r($prepare->errorinfo());
    if ($prepare->rowCount() == 0){
    echo '<p class = "error-box">В этом разделе еще не создано ни одной темы!</p>';
    }else{
    while($bo = $prepare->fetch(PDO::FETCH_BOTH)){
    echo '<tr><td><a href="forum-topic',$bo['id'],' "> ',$bo['title'],' </a></td><td> ',$bo['author'],'</td><td> ',$bo['last_author'],'</td></tr>';
    }
      }
    }
    if (isset($_GET['main'])){
    $i = 1;
    echo '
    <table>
      <tbody>
         <tr>
            <th>Основной</th><th>Новое</th>
         </tr>
    	 <tr><td><a href = "forum-board',$i++,' ">Работа сайта</a></td><td>',$last['0'],'</td></tr> 
    	 <tr><td><a href = "forum-board',$i++,' ">Пожелания и предложения</a></td><td>',$last['1'],'</td>
    	 <tr><th>Общение</th><th>Новое</th></tr>
    	 <tr><td><a href = "forum-board',$i++,' ">Общение</a></td><td>',$last['2'],'</td></tr>
    	 <tr><th>Работа</th><th>Новое</th></tr>
    	 <tr><td><a href = "forum-board',$i++,' ">Оффтоп</td><td>$last['3']</td></tr>
    	 <tr><td><a href = "forum-board',$i++,' ">Студенты</td><td>$last['4']</td></tr>
    	 <tr><td><a href = "forum-board',$i++,' ">Преподаватели</td><td>$last['5']</td></tr>
    	 <tr><td><a href = "forum-board',$i++,' ">Помощь</td><td>$last['6']</td></tr>
    	 <tr><td><a href = "forum-board',$i++,' ">Литература</td><td>$last['7']</td></tr>
    	 ';
    
    	 }
    
    
    echo '</tbody></table></div></div>';
    include 'te/foot.php';
    
    ?>

    В общем, добрался до исходников сайта нашего инста.
    Сам сайт имеет всего несколько частей - форум, лента новостей и ЛК.

    Это скрипт "форума".

    К слову, написано преподавателем со стажем работы 6 лет, как сам он нам доказывал и доказывает - часто фрилансит и все довольны. Чет не верится.

    И этот человек учит других...

    Запостил: RSLab, 05 Сентября 2014

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

    • Если бы он успешно фрилансил не был бы преподавателем :)
      Ответить
    • prepare-execute, норм. Могло быть куда хуже.
      Ответить
      • > норм
        Да не особо норм - bindParam юзают. А нахер тут двунаправленный биндинг? :)
        Ответить
    • На 54 строчке вижу echo оптимизацию.

      (http://www.phpbench.com там где echo vs print)
      Ответить
      • Сначала они выбирают интерпретируемый язык. А потом они ебут байты и такты. Не надо так.
        Ответить
        • $i++,' ">Работа сайта</a></td><td>',$last['0']


          Да, не надо так. Умиляет $i++ в одной колонке и уже посчитанный индекс в другой. Вот будет весело, если переставить строчки или убрать хотя бы одну из середины!
          Ответить
          • Это рукопашные loop unrolling и constant evaluation. Правда почему-то не до конца доведенные ;(
            Ответить
            • А в строчках 22...33 что?
              Ответить
              • А там автор выполнил еще часть работы за интерпретатор. Ведь php один фиг превратит ?><table><tbody><?php в echo. Зачем напрягать его бесполезной работой, если это можно сделать самому?
                Ответить
                • Кстати, будет очень красиво, если в запросе одновременно задать board и topic.
                  Ответить
    • то что фрилансит 146% такое говно только фрилансеры срут.
      Ответить

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