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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    $e=mysql_fetch_assoc(mysql_query(" select * from conf_news where razdel='{$_GET["kind"]}' AND pub='yes' order by `date` desc limit 1 ")) ;
    $max_year=substr($e["date"],0,4);
    $e=mysql_fetch_assoc(mysql_query(" select * from conf_news where razdel='{$_GET["kind"]}' AND pub='yes' order by `date` limit 1 ")) ;
    $min_year=substr($e["date"],0,4);

    Как определить минимальную и максимальную дату в списке новостей? А вот как!
    Да, кстати, $_GET нигде не проверяется на SQL-инъекцию.

    (с) разработка под названием "CMS9"

    may_cat, 24 Декабря 2010

    Комментарии (18)
  2. PHP / Говнокод #5040

    +168

    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
    function getAlphabetList($list = null)
    {   
        $alphabet = split(' ', 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z');
    
        foreach($alphabet as $letter)
        {
            $has_letter = false;
            if(is_array($list))
            {
                foreach ($list as $value) 
                {
                        if(substr(strtoupper($value),0,1) == strpos($letter,$value,1))
                        {
                            $has_letter = true;
                        }                   
                }
            }
            
            if($has_letter)
            {               
                $output .= '<a href="?letter='.$letter.'">'.$letter.'</a> ';
            } else {
                $output .= $letter.' ';
            }
        }
        return $output;
    }

    Шерстим список записей, определяем, на какие буквы они начинаются, и для имеющихся букв генерируем гиперссылки. Мужика попросили разобраться, почему каталог на 126000 записей тормозит при отображении, и он увидел в коде это.
    http://thedailywtf.com/Articles/Thorough-Letter-Checking.aspx

    telnet, 24 Декабря 2010

    Комментарии (34)
  3. PHP / Говнокод #5039

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?php
    
    error_reporting(E_ALL);
    if (isset($_GET["src"])) {
    if (stripos($_GET["src"], "http://") !== false || stripos($_GET["src"], "https://") !== false) { 
    die("Анонимус, пошёл на /*
    вырезано
    */
    if($ext == "jpg" or $ext == "jpeg"){
        $img = imagecreatefromjpeg($src);
    }

    защита от инклудов по HTTP от нашего любимого анального клоуна lstem aka komprenda

    Анонимус, 24 Декабря 2010

    Комментарии (8)
  4. PHP / Говнокод #5038

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    case "exit":
                unset($_SESSION["SITE_ADMIN"]);
                header("location: {$_SERVER["PHP_SELF"]}");
                die;
            break;

    выход "по-мишустински"
    не знаю как вам, а я словил лулзы

    цопырайты уходят komprenda, он же "Istem"

    Lure Of Chaos, 24 Декабря 2010

    Комментарии (1)
  5. Pascal / Говнокод #5037

    +92

    1. 1
    2. 2
    Result := not FExecuting;
    if not Result then Exit;

    сейчас работаю над правкой компонента доставшегося от другого разработчика :), причем эта вершина мысли была обнаружена в недрах левого компонента, используемого моим компонентом :) ,который использовал этот разработчик :), Сам код соправождаемого мною компонента не далеко по стилю ушел от этого куска

    ageron, 23 Декабря 2010

    Комментарии (40)
  6. Java / Говнокод #5036

    +73

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public abstract class EntityCRUDManager<DataObject extends Serializable, DataKey extends Serializable, Filter, DaoObject extends GenericDao<DataObject, DataKey>>
    		extends EntityManager<DaoObject> implements CRUDManager<DataObject, DataKey, Filter> {
    ...
    }
    
    public interface CRUDManager<DataObject extends Serializable, DataKey extends Serializable, Filter>{
    ...
    }
    
    public abstract class EntityManager<DaoObject extends GenericDao> extends Manager{
    ...
    }

    Во как!!!

    KILA, 23 Декабря 2010

    Комментарии (2)
  7. C# / Говнокод #5035

    +128

    1. 1
    if ((((((X >= -7) && (X<= -6) & (Y!=2)) || (X<= -2) && (X>= -6) && (Y<=0) && (Y>= -1) && (Y== 0.25*X + 0.5) || (X+ -2)*(X+ -2) + (Y+2)*(Y+2)==4) && (X >= -2) && (X<=0) && (Y>=0) && (Y<=2)|| (((X*X)+(Y*Y)==4)) && ((X>=0) && (X<=2) && (Y>=0) && (Y<=2))) || ((Y==0.5*X-1) && (X>=2) && (Y<=3) & (Y!=0)))) Console.WriteLine("Принадлежит");

    HIMen, 23 Декабря 2010

    Комментарии (20)
  8. C++ / Говнокод #5034

    +163

    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
    AClass::AClass()
    {
            char c;
    	pipe( m_ThreadPipeA );
    	pipe( m_ThreadPipeB );
            write( m_ThreadPipeA[0], &c, sizeof(c) );
    }
    
    void AClass::JobCreatorThread()
    {
    	char c;
    	do {
    		/* prepare new job and pass it to the thread pool */
    		read( m_ThreadPipeA[1], &c, sizeof(c) );
    		m_CurrJob = IncomingJob;
    		write( m_ThreadPipeB[0], &c, sizeof(c) );
    	} while (!m_Shutdown);
    }
    
    void AClass::ThreadPoolMethod()
    {
    	char c;
    	do {
    		Job j;
    		read( m_ThreadPipeB[1], &c, sizeof(c) );
    		j = m_CurrJob;
    		write( m_ThreadPipeA[0], &c, sizeof(c) );
    		/* handle the job j */
    	} while (!m_Shutdown);
    }

    из архивов.

    дала как-то архетиктура задание модуль распаралелить потоками - но при этом как можно меньше использовать локи, что бы проблем вертикального скалирования не возникало. и три месяца спустся они родили -о чудо!- многопоточный модуль ВООБЩЕ без локов. тока с производительностью проблемы - но это не могут быть локи потому что модуль ими ВООБЩЕ не пользуется - почему мне и дали задание посмотреть что там можно еще усовершенствовать.

    мне несколько часов понадобилось что бы мой примитивный мозг смог осознать величие полета мысли моих коллег. а потом (когда я наконец из моря кода выцедил приведенную сверху эссенцию) у меня волосы дыбом встали....

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

    ЗЫ ну и то что в джоб объекте еще и строковых массивов на 80К, и они постоянно копировались туды сюды, это было cherry topping ко всему этому счастью.

    Dummy00001, 23 Декабря 2010

    Комментарии (1)
  9. C# / Говнокод #5033

    +121

    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
    class RandomGeneratorFiveState : RandomGenerator {
        int zero, one, two, three, four, min, max;
        public RandomGeneratorFiveState(int min, int zero, int one, int two, int three, int four)
            : base() {
            max = min + (four != 0 ? 4 : three != 0 ? 3 : two != 0 ? 2 : one != 0 ? 1 : 0);
            this.min = min;
            this.zero = zero;
            this.one = this.zero + one;
            this.two = this.one + two;
            this.three = this.two + three;
            this.four = this.three + four;
        }
        public override int Next() {
            int n = Random.Next(four);
            if(n < zero) return min;
            if(n < one) return min + 1;
            if(n < two) return min + 2;
            if(n < three) return min + 3;
            return min + 4;
        }
        public override int GetMax() { return max; }
        public override int GetMin() { return min; }
    }

    amartynov, 23 Декабря 2010

    Комментарии (3)
  10. Куча / Говнокод #5032

    +145

    1. 1
    http://www.zvezdi-oriona.ru/134679.htm

    тут все прекрасно: и HTML и JS

    Анонимус, 23 Декабря 2010

    Комментарии (8)