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

    +157

    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
    function ajaxGetProcesses()
    {
    	$db = $this->site->DB;
    
    	$res = array();
    
    	$_POST['title'] = iconv('UTF-8', 'WINDOWS-1251', $_POST['title']);
    
    	if (!empty($_POST['title']))
    	{
    		$query = 'SELECT * FROM '.$this->site->prefix_db.'_processes_alters WHERE `title` LIKE \''.addcslashes($_POST['title'], '\'').'%\' LIMIT 10';
    		$db->query($query);
    		while ($i = $db->fetch())
    		{
    			$res[] = '"'.addcslashes($i['title'], '"').'"';
    		}
    	}
    	// кто ж виноват, что в середине 2010 года все еще приходится писать на пхп4 :-(
    	// json отсутствует, библиотеку подключать - жопа - не та сложность вывода
    	echo '['.implode(', ', $res).']';
    	exit();
    }

    Запостил: netrain, 11 Ноября 2010

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

    • А современный пхп-код построен исключительно из оупенсорсовских кирпичей, прикрученных друг к дружке или "абы как" или "как-нибудь эдак"
      Ответить
    • школолошный автор реальне думает, что на пятом пыхе он будет писать лучше)))))
      Ответить
      • Главное отличие 4-го пиэйчпи от 5.3 - отсутствие goto.
        Ответить
      • показать все, что скрытоСовершенно верно, хуже может быть только перл.
        Ответить
        • в этом коде смешаны знания об http, sql и кодировках. от переписки на пятый он не изменится)
          потому-то он и дерьмо) впрочем, в мире пыхомакак так и принято
          Ответить
          • показать все, что скрытоОт переписки на перл он тоже лучше не станет. Но, боюсь, что стать хуже может...
            Ответить
            • наврядли.
              потому что для переписки на перл прийдется нанимать программиста, а макаку -- увольнять.
              это благотворно скажется на качестве кода
              Ответить
              • показать все, что скрытоА толку шило на мыло менять? Перловская макака - это конечно звучит гордо.
                Вот говнокод сайт на php, тебе не тошно на нем сидеть, не воняет?
                Ответить
                • перловых макак почти не бывает: макаке не просто осилить мутный перл.

                  мне не тошно, я же тут юзер
                  сырцы не правлю
                  Ответить
              • 1. программист на перле напишет такой перл(пардон за тавтологию), что, даже не будучи говнокодом, его будет трудно читать - это особенность перла со всеми его $_ и s///
                2. может быть, сейчас времена изменились, но когда-то выставлялось в заслуги пыху то, что он работает как модуль апача, тогда как перл на каждый запрос порождается новый процесс

                если уж задуматься, на чем рисовать веб-аппликацию, то есть еще всякие java и его производные, в т.ч. фреймворки, groovy c его grails, и, конечно, asp.net
                Ответить
                • показать все, что скрытоВерно подмечено. Более того, какой двин на перле ни возьми, говнокод хуже php'шного.
                  Ответить
                  • товарищ, не ешьте на ночь = )

                    вот только про пхп молчите. Я вообще не видел на нем хорошего кода - если проект больше одной страницы. Сам программирую, и то, пока не спрятал большинство костылей во фрейворк, жутко страдал анально.
                    Ответить
                    • В том-то и сложность, что большой есть соблазн писать на ПХП Гавнокод. Писать на ПХП скрипты устойчивые к ошибкам, оптимизированные и т.д. и т.п. довольно непростое дело. Самодисциплина нужна определённая, тогда и будет хороший код! Facebook и vkontakte - наглядный пример профессиональных ПХП-шников!
                      Ответить
                      • > Facebook и vkontakte - наглядный пример профессиональных ПХП-шников!

                        Что-то я сомневаюсь. Вы видели исходники?
                        Ответить
                        • Исходники - нет, но работает всё превосходно и относительно быстро!
                          Ответить
                          • Говнокод тоже часто работает как надо.
                            Ответить
                          • > но работает всё превосходно и относительно быстро!
                            потому что серваки отличные + всякие кешеры, ускорители, к тому же у фейсбука пхп-код скомпилен
                            Ответить
                            • да ладно, у них ферма с десятками тысяч серверов, вот и шевелится оно
                              Ответить
                      • хороший код на пхп -- это как лямбды на бейсике
                        Ответить
                      • fakebook и vcuntakte - профессиоанальные, ага, i lold
                        Ответить
                        • Профессиональный говнокод - это когда говнокодство превращается в профессию.
                          Ответить
    • за WINDOWS-1251 отдавал бы святой инквизиции
      Ответить
      • можно подумать что русские комментарии в кои лучше))

        хотя хуже всего utf 8, ибо 2 байта будет для русских букв
        Ответить
        • utf8 хотя бы частично решает проблему русских крякозябл. мало? есть и utf16, и unicode.

          вообще я не только про однобайтовость, но еще и про то, почему WINDOWS-1251,а не ISO-8859-5 какой-нибудь
          Ответить
          • Почему частично?

            Конец фразы "и unicode" дискредитировал.
            Я минуснул за это, прошу не обижаться.
            (unicode - стандарт кодирования, utf8 - одна из его реализаций).
            Ответить
      • зря вы так, потом вас отдадут инквизиции за утф-8
        Ответить
        • вполне могут, ибо решение компактное, но медленное
          Ответить
    • вот строка
      $db = $this->site->DB;

      прям глаз режет. бля, ну почему не ссылка, зачем копировать объект....
      Ответить
      • Потому что там так круто построен класс. Если просто передавать ссылку - все грохнется нафиг. Ибо в объекте же и хранится результат выполнения запросов.
        Т. е. код
        $query = 'SELECT * FROM `table`';
        $db->query($query);
        while ($i = $db->fetch())
        {
        $query2 = 'SELECT * FROM `table2` WHERE `somefield` = '.$i['somefield'];
        $db->query($query2);
        while ($i2 = $db->fetch())
        {
        // something
        }
        }

        работать не будет, ибо результат выборки перепишется на первой же итерации внешнего цикла. А таких мест в CMS достаточно, чтобы не браться за ее переделку.
        Ответить
    • $_POST['title'] = ...

      а разве подобные массивы не должны быть неизменяемыми?
      Ответить
      • по логике - должны, но это же пхп
        Ответить
        • это придумано для говна типа:
          <?php
          $_POST['title'] = 't1';
          include('page.php');
          $_POST['title'] = 't2';
          include('page.php');

          page.php:
          <?php
          echo $_POST['title']
          Ответить
          • каждый думает в меру своей испорченности.
            Как будто от использования
            $title = $_POST['title'];
            include 'page.php';
            $title = 't2';
            include 'page.php';


            page.php

            echo $title;


            что-то изменится.
            Ответить
        • Глобальные массивы "по логике" должны быть неизменными? новые умы, новые идеи:)
          Ответить
          • глобальные массивы должны быть?
            Ответить
          • ну как бы, если подумать над этим вопросом головой, а не жопой =)
            Ответить
          • суть не в том что массивы глобальные, а в том, что они формируются связкой веб-клиента и веб-сервера извне скрипта и без его участия, и из-за того, что могут быть использованы в разных участках кода, на мой взгляд было бы логично их защитить от несанкционированного редактирования, если и не на уровне языка, то хотя бы на уровне библиотек.
            Ответить
        • Ахереть!.. Вы сами должны за этим следить!
          Ответить
          • ...чтобы никакой гад не написал $_SERVER['REQUEST_METHOD'] = 'HEAD'
            Ответить
            • Да. Глобальные массивы они такие...
              Хорошо хоть нет глобальных ссылок...
              Ответить
            • В этом что-то есть. Кстати, иногда нечто подобное используется.
              Ответить
              • если это прописать в auto_prepend_file то можно собрать много лулзов
                Ответить
                • Например, при переходе на php3, можно один раз прописать что-то такое:
                  $_SERVER = $HTTP_SERVER_VARS;
                  И не мучиться :)
                  Ответить

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