1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #1932

    +170.6

    1. 1
    2. 2
    3. 3
    $s = md5('1') . '<br />';
        echo md5('2' . $s) . '<br />';
        echo md5('2' . md5('1')) . '<br />';

    Программист пришёл с жалобой на то что получаются разные значения. =)

    qbel, 03 Октября 2009

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

    +166.9

    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
    /*....*/
     $info = ldap_get_entries($ds, $sr);
    
     $Number=0;
     for ($i=0; $i<$info["count"]; $i++) {$Number++;}
    
     for ($i=0; $i<$Number; $i++)
     {
      if (!($info[$i]["cn"] == ""))
      {
       $user=$info[$i]["cn"][0];
       echo $user."\n";
      }
     }
     /*....*/

    vugluskr, 30 Сентября 2009

    Комментарии (3)
  4. Java / Говнокод #1917

    +86.6

    1. 1
    2. 2
    3. 3
    for (int j = 0; j < ch.length; j++) { 
    		ch[j] = "0".charAt (0); 
    }

    lian, 30 Сентября 2009

    Комментарии (3)
  5. C++ / Говнокод #1900

    +62.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void func(const char* str)
    {
      std::map<std::string, int>::iterator = my_map.find(str);
    
      .....
    }
    
    std::string str = "key";
    func(str.c_str());

    Уверен что это может найти каждый из вас в своих проектах, но может не в таком очевидном виде...

    pushkoff, 25 Сентября 2009

    Комментарии (3)
  6. JavaScript / Говнокод #1870

    +163.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    //Я ТИПА ЗДЕСЬ СДЕЛАЛ НА ГАЛЕРЕЕ 4 КАРТИНКИ
                   if(this.id=='gallery') {
                        this.previewCount = 4;
                   } else {
                        this.previewCount = 4;
                   }

    Недавно код пересматривали. Авторы долго отнекивались

    hagnar, 19 Сентября 2009

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

    +60.3

    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
    void CExeTuner::ResFill2Tree(uchar *baddr, uchar *addr, TRes *now, int level)
    {
    	int len;
    	now->size1=*(uword *)(addr+0x0C); now->size2=*(uword *)(addr+0x0E);
    	if (now->size1+now->size2) now->mas=new TRes * [(now->size1+now->size2)];
    	ulong long1,long2;
    	for (int i=0; i<(now->size1+now->size2); i++)
    	{
    		now->mas[i]=new TRes;
    		now->mas[i]->back=now;
    		now->mas[i]->name=new char [32];
    		now->mas[i]->mas=NULL; now->mas[i]->data=NULL;
    		long1=*(ulong *)(addr+0x10+(i<<3));
    		long2=*(ulong *)(addr+0x14+(i<<3));
    		if (long1&0x80000000) {
    			long1&=0x7FFFFFFF;
    			now->mas[i]->isname=true;
    			len=*(uword *)(baddr+long1);
    			now->mas[i]->rname1=new uchar [len*2+2+1];
    				now->mas[i]->rname1[len*2+2]=0;
    				memcpy(now->mas[i]->rname1,baddr+long1,len*2+2);
    			now->mas[i]->name=new char [len+1];
    				now->mas[i]->name[len]=0;
    				for (int j=0; j<=len; j++)
    				now->mas[i]->name[j]=now->mas[i]->rname1[(j+1)*2];
    		} else {
    			now->mas[i]->isname=false;
    			now->mas[i]->rname2=long1;
    			if (!ResNumToStr(long1,now->mas[i]->name,level)) _itoa(long1,now->mas[i]->name,10);
    		}
    		if (long2&0x80000000) {
    			long2&=0x7FFFFFFF;
    			now->mas[i]->isdir=true;
    			ResFill2Tree(baddr, baddr+long2, now->mas[i], level+1);
    		} else {
    			now->mas[i]->isdir=false;
    			now->mas[i]->size1=*(ulong *)(baddr+long2+4);
    			now->mas[i]->data=new uchar [now->mas[i]->size1];
    			if ((*(ulong *)(baddr+long2)+now->mas[i]->size1)>(*ExeMain.ResDirAddrOBJ+*ObjMas[ExeMain.ResPosInObj].size))
    			{ now->mas[i]->data=NULL; now->mas[i]->size1=0;
    			} else memcpy(now->mas[i]->data,baddr-*ExeMain.ResDirAddrOBJ+*(ulong *)(baddr+long2),now->mas[i]->size1);
    		}
    	}
    }

    Древнющий проект откопал))
    Метод извлекает все ресурсы из PE файла в структуру типа дерево))

    k06a, 15 Сентября 2009

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

    +156.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $_REQUEST['trigger']['event_params']['duration'] = $_REQUEST['trigger']['event_params']['duration']['hour']*60*60 + $_REQUEST['trigger']['event_params']['duration']['minute']*60 + $_REQUEST['trigger']['event_params']['duration']['seconds'];
                if (empty($_REQUEST['trigger']['event_params']['frequency_period'])) {
                    $_REQUEST['trigger']['event_params']['frequency_count'] = '';
                }
                if (empty($_REQUEST['trigger']['event_params']['frequency_count'])) {
                    $_REQUEST['trigger']['event_params']['frequency_period'] = '';
                }

    phoenix, 10 Сентября 2009

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

    +154.9

    1. 1
    2. 2
    $time_portions = explode(' ', microtime());
    $actual_time = $time_portions[1] . substr($time_portions[0], 1);

    microtime(true) было бы слишком просто

    shitcoder, 10 Сентября 2009

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

    +158.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if (!isset($_GET["productID"]))
    {
    	if (isset($_POST["productID"]))
    	{
    		$productID = (int)$_POST["productID"];
    	}
    }
    else
    {
    	$productID = (int)$_GET["productID"];
    }

    Оттуда же

    gorky, 09 Сентября 2009

    Комментарии (3)
  11. SQL / Говнокод #1794

    −863

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    select ...
    from ...
    where ...
                     and NVL2(l_date_from, trunc(mmt.transaction_date), l_date_from) >= NVL(l_date_from, l_date_from) 
                     and NVL2(l_date_to, trunc(mmt.transaction_date), l_date_to) <= NVL(l_date_to, l_date_to)          
    ...

    из реально работающей системы

    nxx, 09 Сентября 2009

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