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

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

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $darray = explode('.', $_SERVER['HTTP_HOST']);
    $narray = array_reverse($darray);
    array_pop($narray);
    $domain = implode('.',array_reverse($narray));
    $this->view->domain=$domain;

    Индусы такие индусы...

    kest, 16 Августа 2011

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

    +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
    // File: /controllers/register.php
    
    //......
    $sql = 'INSERT INTO `users` SET `ID`=NULL, `login`="'.mysql_real_escape_string(substr($_POST['login'], 0, 12)).'", `pass`= blah blah blah....';
    //......
    
    
    
    // File: /templates/default/index.tpl
    /*
    //... 
    <td><div>Hello, <b>{LOGIN}</b></div><!---- blah blah blah ---><div>Server time: <?php echo getCurrentTime();?></div>
    //
    */
    
    
    //File: /index.php
    
    //......
    $sql = 'SELECT * FROM `users` WHERE `id`=........';
    $data = SYS::$db->getDataRow($sql);
    if(sizeof($data)>0) {
          showTeplate(TEMPLATE_NAME, 'index', $data);
    }
    //......
    
    //Function showTeplate();
    
    function showTeplate($tpl_name, $file_name, $data) {
           $template_code = file_get_contents(TPL_PATH.'/'.$tpl_name.'/'.$file_name.'.'.TPL_EXT);
           foreach($data as $name=>$value) {
                  $template_code = str_replace('{'.strtoupper($name).'}', $value, $template_code);
           }
           
          //......
           eval($template_code);
          //......
    
    }

    Внимание, загадка! Найти уязвимость.

    jokz, 04 Августа 2011

    Комментарии (24)
  4. JavaScript / Говнокод #7268

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    day = new Date(); 
    hour = day.getHours(); 
    if (hour>=0 && hour<9) greeting = "Ночной NON-STOP"; 
    else { if (hour>=10 && hour<12) greeting = "По вашим заявкам"; 
    else { if (hour>=12 && hour<13) greeting = "Базар о интересном"; 
    else { if (hour>=13 && hour>=17) greeting = "Дневной NON-STOP";
    else { if (hour>=17 && hour<=20) greeting = "Расслабляющая музыка";
    else { if (hour>=20 && hour<=24) greeting = "Музыка 90-х"; }}}}  
    document.write(greeting);

    Автор кода явно не знал, что в js можно использовать else if. Выражение hour>=12 && hour<13 можно было упростить, написав hour == 12. И фигурную скобку в конце закрыть забыл.
    (Отсюда: intobservatory.ru/forum/index.php/topic,4141.0.html)

    high-five, 16 Июля 2011

    Комментарии (24)
  5. PHP / Говнокод #7266

    +164

    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
    if (check($user))			
    {
    				$names='(';
    				$values="values(";
    				foreach ($user as $key => $value )
    				{
    					$names=$names.$key.',';
    					$values=$values."'".$value."',";
    				}
    				$names[strlen($names)-1]=')';
    				$values[strlen($values)-1]=')';
    			}
    		$sql="insert into users ".$names.' '.$values;

    друг говорит, что это говнокод, но это же не правда ?

    syntheticcharms, 16 Июля 2011

    Комментарии (24)
  6. PHP / Говнокод #7218

    +150

    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
    function keySave($key, $url)
    	{
    		$db = 'i_keys';
    		$this->keyDelete($key, $url);
    		$insert['key'] = $key;
    		$insert['url'] = $url;
    		$this->db->insert($db, $insert);
    	}
    
    	function keyDelete($key, $url)
    	{
    		$db = 'i_keys';
    		$this->db->where('url', $url);
    		$this->db->where('key', $key);
    		$this->db->delete($db);
    	}

    Можно ли так делать для предотвращения полных дублей в базе? Чем это не очень хорошо?

    increazon, 10 Июля 2011

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

    +963

    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
    public void прорисовка_точек()
            {
                for (int i = 0; i < лист_точек.Count; i++)
                {
                    //Data0
                    if (((лист_точек[i] as ArrayList)[4] as ArrayList).Count != 0)
                    {
                        уровни определение_уровня = new уровни(s, (лист_точек[i] as ArrayList)[3].ToString(), 4);
                        if (определение_уровня.рисуем == true)
                        {
                            string type = (лист_точек[i] as ArrayList)[1].ToString();                        
                            for (int k = 0; k < ((лист_точек[i] as ArrayList)[4] as ArrayList).Count; k++)
                            {
                                PointF point = (((лист_точек[i] as ArrayList)[4] as ArrayList)[k] as List<PointF>)[0];
                                преобразование_координат координаты_старые = new преобразование_координат(point.X, point.Y, коэф_старый.max_x, коэф_старый.max_y, коэф_старый.K_x, коэф_старый.K_y);
                                point.X = (float)((новый.max_x_new - координаты_старые.xn) * новый.K_x_new * s);
                                point.Y = (float)((новый.max_y_new - координаты_старые.yn) * новый.K_y_new * s);
                                Rectangle rect = new Rectangle(Convert.ToInt32(point.X),Convert.ToInt32(point.Y),1,1);
                                if (проверка(this.Width, this.Height, point.X, point.Y) == true)
                                {
                                    Кисти_точек точки = new Кисти_точек(type);
                                    G.DrawImage(точки.bitm, point.X, point.Y, точки.bitm.Width, точки.bitm.Height);
                                }
                               прорисовка_надписей_точек(point, ((лист_точек[i] as ArrayList)[2].ToString()));
                            }
                        }
                    }
                }
            }

    Взято отсюда http://www.cyberforum.ru/csharp-net/thread330291-page3.html

    vvs, 08 Июля 2011

    Комментарии (24)
  8. Perl / Говнокод #7193

    −161

    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
    sub hex_to_string
    {
        my ($res, $str, $i) = ("", shift, 0);
        $str =~ tr/A-Z/a-z/;
        while ($i < length($str))
        {
    	my $m = ord(substr($str, $i++, 1));
    	my $n = ord(substr($str, $i++, 1));
    	if ($m >= 48 && $m <= 57)
    	{
    	    $m -= 48;
    	}    
    	if ($m >= 97 && $m <= 102)
    	{
    	    $m = 10 + $m - 97;
    	}    
    	if ($n >= 48 && $n <= 57)
    	{
    	    $n -= 48;
    	}
    	if ($n >= 97 && $n <= 102)
    	{
    	    $n = 10 + $n - 97;
    	}
    	$res .= chr($m * 16 + $n);
        }
        
        $res = join("\n", split(/\r\n/, $res));
        return $res;
    }

    Печально, что силу регулярок недооценивают.
    sub hex_to_string($)
    {
    my $input_hex_data = shift;
    my $result = $input_hex_data;
    $result =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
    return $result;
    }

    antoha_by, 07 Июля 2011

    Комментарии (24)
  9. Pascal / Говнокод #7125

    +93

    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
    if Length(PP.curdir)<36 then
    pt:=' '+PP.curdir+' '
    else pt:=' \...'+Copy(PP.curdir,Length(PP.curdir)-30,31)+' ';
    Ptr:=PP.f_ptr;
    if PP.vol='' then PP.vol:='No Label';
    WriteString(1,cc+(40-length(pt)) div 2,pt,Pal[8]);
    WriteString(22,cc+1+(cc*(34-length(PP.vol))) div 40,'['+PP.vol+']',Pal[7]);
    if PP.vol='No Label' then  PP.vol:='';
    {if PP.empty then exit;}
    inc(ptr,sizeof(filrec)*row);
    for i:=row to n+row do begin
    if (i <PP.files) and (not PP.empty) then begin fname:=ptr^.filename;
    {if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
    if (Ptr^.fileattr and 2) <> 0 then fname[1]:=upcase(fname[1]);
    if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
    SortFIle(fname);
    for a := length(fname) to 11 do fname:=fname+' ';
    fname:=fname+'│';
    if (Ptr^.fileattr and 16) = 0 then Str(Ptr^.filesize:10,pt)
    else if fname[1]='.' then pt:='UP──-DIR'
         else pt:='SUB─-DIR';
    fname:=fname+pt+'│';
    DateTimeCnv(pt,Ptr^.filedttm);
    fname:=fname+pt;     {SetFattr}
    if Ptr^.selected then WriteString(2+i-row,cc,fname,Pal[1]) else
    WriteString(2+i-row,cc,fname,Pal[2]);
    inc(ptr,sizeof(filrec));
    end
    else WriteString(2+i-row,cc,'            │          │        │     ',Pal[1]);
    end;
    end;
    procedure Put_File(PP:Panel;cc,row,x:word;active:boolean);
    var
    fname,pt:string;
    {ptr:P_filrec;}
    begin
    if PP.empty then exit;
    ptr:=PP.F_ptr;
    inc(ptr,sizeof(filrec)*(row+x));
    fname:=ptr^.filename;
    {if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
    if (Ptr^.fileattr and 2) <> 0 then fname[1]:=upcase(fname[1]);
    if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
    SortFile(fname);
    for a := length(fname) to 11 do fname:=fname+' ';
    fname:=fname+'│';
    if (Ptr^.fileattr and 16) = 0 then Str(Ptr^.filesize:10,pt)
    else if fname[1]='.' then pt:='UP──-DIR'
         else pt:='SUB─-DIR';
    fname:=fname+pt+'│';
    DateTimeCnv(pt,Ptr^.filedttm);
    fname:=fname+pt;
    if active then If Ptr^.selected then WriteString(2+x,cc,fname,Pal[3]) else
    WriteString(2+x,cc,fname,Pal[4])
    else if Ptr^.selected then WriteString(2+x,cc,fname,Pal[1]) else
    WriteString(2+x,cc,fname,Pal[2])

    Файловый менеджер по-типу NC. Pascal, 7-ой класс школы. Участок формирования одной из панелей.
    PS: Вообще, это даже как-то работало: http://habrastorage.org/storage1/84736ecc/b4711597/5b1d2618/5b60c662.png

    Tronix, 01 Июля 2011

    Комментарии (24)
  10. C++ / Говнокод #7048

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    setGeometry((int)(QApplication::desktop()->width() -
    (QApplication::desktop()->width() -
      (QApplication::desktop()->width() / 2)) * 1.5) / 2,
      (int)(QApplication::desktop()->height() -
    (QApplication::desktop()->height() -
      (QApplication::desktop()->height() / 2)) * 1.5) / 2,
      (int)((QApplication::desktop()->width() -
    (QApplication::desktop()->width() / 2)) * 1.5),
      (int)((QApplication::desktop()->height() -
    (QApplication::desktop()->height() / 2)) * 1.5));

    Center app window!

    Aleskey, 24 Июня 2011

    Комментарии (24)
  11. C# / Говнокод #7035

    +115

    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
    public void chkStatus_OnCheckedChanged(object sender, EventArgs e)
    {
        CheckBox chkStatus = (CheckBox)sender;
        GridViewRow row = (GridViewRow)chkStatus.NamingContainer;
    
        
        string cid = row.Cells[1].Text;
        bool status = chkStatus.Checked;
    
        
        string constr = @"Server=.\SQLEXPRESS;Database=TestDB;uid=waqas;pwd=sql;";
        string query = "UPDATE Categories SET Approved = @Approved WHERE CategoryID = @CategoryID";
            
        SqlConnection con = new SqlConnection(constr);
        SqlCommand com = new SqlCommand(query, con);
    
        
        com.Parameters.Add("@Approved", SqlDbType.Bit).Value = status;
        com.Parameters.Add("@CategoryID", SqlDbType.Int).Value = cid;
    
        
        con.Open();
        com.ExecuteNonQuery();
        con.Close();
    
        
        LoadData();
    }

    Полезный говнокод

    in4man, 23 Июня 2011

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