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

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

    +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
    if
    (
    	!(
    		(
    			strlen($chld_phone) == 10 &&
    			(
    				substr($chld_phone,0,3) == '087' ||
    				substr($chld_phone,0,3) == '088' ||
    				substr($chld_phone,0,3) == '089'
    			)
    		) ||
    		(
    			strlen($chld_phone) == 12 &&
    			(
    				substr($chld_phone,0,5) == '35987' ||
    				substr($chld_phone,0,5) == '35988' ||
    				substr($chld_phone,0,5) == '35989'
    			)
    		)
    	)
    )
    {
    	//Грешка
    }

    Телефон проверки :)

    wyand, 22 Февраля 2011

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

    −179

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def ispalindrome(string):
    	decide=1
    	i=0
    	while i<=int(len(string)/2) and decide==1:
    		if string[i]!=string[-(i+1)]:
    			decide=0
    		i+=1
    	return decide

    Функция определяет, является ли число паниндромом =)

    SSPkrolik, 21 Февраля 2011

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

    +159

    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
    class forms {
        //put your code here
        
        function __construct($name,$id,$method,$action) {
            echo  "<form id='$id' name='id' method='$method' action='$action'>";
        }
        
        static private function attr($param)    {
            if ($param) {
                foreach ($param as $nam_attr => $val_attr) {
                    $attribs.=$nam_attr."='".$val_attr."'";
                }
                return $attribs; 
            }
        }
        static private function label($id,$text,$attr)    {
            $key = array_search('regue', $attr, true);
            if ($key = 1) $text.="<font color='red'>*</font>";
            return "<label for='$id'>$text</label>";
        }
     
        static public function inputs($text,$type,$name,$id,$value=false,$class=false, $attr=false)    {
           
            return self::label($id,$text,$attr)."<input type='$type' name='$name' id='$id' value='$value' class='$class' ".self::attr($attr)."/>";
        }    
        
        static public function inputs_chek($text,$type,$name,$id,$value=false,$class=false, $attr=false)    {
            return  self::label($id,$text,$attr)."<input type='$type' name='$name' id='$id' class='$class' ".self::attr($attr)."/>$value";
        }   
        
        static public function area($text,$name,$id,$value=false,$class=false, $attr=false)    {
            return  self::label($id,$text,$attr)."<TEXTAREA NAME='$name' id='$id' WRAP='virtual' COLS='40' ROWS='3' ".self::attr($attr).">$value</TEXTAREA>";
        } 
        
        static public function select($text,$name,$id,$value=false,$class=false, $attr=false)    {
            $select="<select name='$name' id='$id' ".self::attr($attr).">";
            foreach($value as $value => $val_text)  {
                $select.="<option value='$value'>$val_text</option>";
            }
           $select.="</select>";
           return  self::label($id,$text,$attr).$select;
        } 
        
        function __destruct() {
            echo "<input type='submit'/><input type='reset' value='Очистить'></form>";
        }   
    }

    qbasic, 21 Февраля 2011

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

    +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
    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
    function getCurrentDate(){
            $vDate = '';
            $vFullDate = getdate();	
        //print_r($vFullDate);
            if ($vFullDate['mon']<10) $vFullDate['mon']='0'.$vFullDate['mon'];
            $vDay = $vFullDate['mday'];
            $vMon = $vFullDate['mon'];
            $vYear = $vFullDate['year']; 
            $vWDay = $vFullDate['wday'];
            $vVYear = (date("L"));		
            if (($vDay == 30) && ($vMon == 4)) {
                $vDate = '04.05.'.$vYear; 
                return $vDate;
            }
            if (($vDay == 8) && ($vMon == 5)) {
                $vDate = '11.05.'.$vYear; 
                return $vDate;
            }
    
    if (($vDay==30) && (in_array($vMon,$this->mTMon))) {
                $vMon++;
                if ($vWDay == 5) {
                    $vDay=$vDay+3;
                }
                else {
                    $vDay++;
                }
                $vDay = 1;
            }
            elseif ($vDay==31) {
                $vDay =1;
                $vMon ++;
                if ($vMon<10) {
                    $vMon = '0'.$vMon;
                }
            }
            elseif (($vDay==31)&& ($vMon==12)){
                if ($vWDay == 5) {
                    $vDay=$vDay+3;
                }
                else {
                    $vDay++;
                }
                $vMon = 1;
                $vYear ++;
            }
            elseif ($vWDay == 5) {
                $vDay=$vDay+3;
            }
            else {
                $vDay++;
            }
            if ($vDay < 10) {
                $vDay = '0'.$vDay;
            }
            if ($vMon < 10) {
                $vMon = '0'.$vMon;
            }
            
    $vDate = $vDay.'.'.$vMon.'.'.$vYear; 
    	if ($vDate == '12.06.2009') {
    	    $vDate = '15.06.2009';
    	}
            
            return $vDate;
        }

    Так получилось, что мне приходится часто смотреть на чужой код. В этом случае сотрудники одного отдела, выдающего справки (число в справке должно быть на 3 дня больше текущего) пожаловались мне, что форма выдает справки обычно нормально и они даже смирились, когда у месяца появляется 31-е число, но тут появилось вдруг 32-е и они забеспокоились.
    Полез - увидел - поржал - заменил одной строчкой date('d.m.Y',strtotime("+3 days"));

    g00d, 20 Февраля 2011

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

    +159

    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
    <?php
    ...
    // Проверяем нужны ли стрелки назад
    if ($page != 1) $pervpage = '<a href=catalog.php?page=1>Первая</a> |
    <a href=catalog.php?page='. ($page - 1) .'>Предыдущая</a> | ';
    // Проверяем нужны ли стрелки вперед
    if ($page != $total) $nextpage = ' | <a href=catalog.php?page='. ($page + 1) .
    '>Следующая</a> | <a href=catalog.php?page=' .$total. '>Последняя</a>';
    // Находим две ближайшие станицы с обоих краев, если они есть
    if($page - 5 > 0) $page5left = ' <a href=catalog.php?page='. ($page - 5) .'>'.
    ($page - 5) .'</a> | ';
    if($page - 4 > 0) $page4left = ' <a href=catalog.php?page='. ($page - 4) .'>'.
    ($page - 4) .'</a> | ';
    if($page - 3 > 0) $page3left = ' <a href=catalog.php?page='. ($page - 3) .'>'.
    ($page - 3) .'</a> | ';
    if($page - 2 > 0) $page2left = ' <a href=catalog.php?page='. ($page - 2) .'>'.
    ($page - 2) .'</a> | ';
    if($page - 1 > 0) $page1left = '<a href=catalog.php?page='. ($page - 1) .'>'.
    ($page - 1) .'</a> | ';
    if($page + 5 <= $total) $page5right = ' | <a href=catalog.php?page='. ($page + 5)
    .'>'. ($page + 5) .'</a>';
    if($page + 4 <= $total) $page4right = ' | <a href=catalog.php?page='. ($page + 4)
    .'>'. ($page + 4) .'</a>';
    if($page + 3 <= $total) $page3right = ' | <a href=catalog.php?page='. ($page + 3)
    .'>'. ($page + 3) .'</a>';
    if($page + 2 <= $total) $page2right = ' | <a href=catalog.php?page='. ($page + 2)
    .'>'. ($page + 2) .'</a>';
    if($page + 1 <= $total) $page1right = ' | <a href=catalog.php?page='. ($page + 1)
    .'>'. ($page + 1) .'</a>';
    ...
    ?>

    магазин на диване...
    http://www.php.ru/forum/viewtopic.php?t=30808#263199

    Devzirom, 14 Февраля 2011

    Комментарии (6)
  7. Perl / Говнокод #5664

    −119

    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
    sub dopprobelz # функция дополнения строки нулями вначале
            {
                my($str)=@_[0];
                my($len)=@_[1]; my $delta=$len-length($str);
                my $hwost='';
                for (my($a)=0; $a<$delta; $a++) {$hwost=$hwost.'0';};
                $str=$hwost.$str; return $str;
            };
     
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time());
    $RequestN=(1900+$year).dopprobelz($mon, 2);
    $RequestN=$RequestN.dopprobelz($mday, 2).dopprobelz($hour, 2);
    $RequestN=$RequestN.dopprobelz($min, 2).dopprobelz($sec, 2).dopprobelz($sec, 2);

    Дополняем время и дату ведущими нулями, где это требуется

    Мистер Хэнки, 13 Февраля 2011

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

    +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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    <?php
    function anti_hacker($txt){
    $txt=str_replace("|","I",$txt); 
    $txt=str_replace("../",",,/",$txt);
    $txt=str_replace("||","I",$txt);               
    $txt=str_replace("\"","",$txt);
    $txt=str_replace("\""," ",$txt);
    $txt=str_replace("/\\\$/","",$txt);
    $txt=str_replace("$","",$txt);          
    $txt=str_replace("\\","",$txt);
    $txt=str_replace("\\","",$txt);
    $txt=str_replace("@","",$txt);
    $txt=str_replace("`","",$txt);  
    $txt=str_replace("^","",$txt);
    $txt=str_replace("%","",$txt);
    $txt=htmlspecialchars($txt);  
    $txt=stripslashes(trim($txt));
    return $txt;}
    
    if(isset($_GET)){foreach($_GET as $key=>$value){$_GET[$key]=anti_hacker($value);}}
    if(isset($_POST)){foreach($_POST as $key=>$value){$_POST[$key]=anti_hacker($value);}}
    if(isset($_SESSION)){foreach($_SESSION as $key=>$value){$_SESSION[$key]=anti_hacker($value);}}
    if(isset($_COOKIE)){foreach($_COOKIE as $key=>$value){$_COOKIE[$key]=anti_hacker($value);}}

    Еще одну, не могу удержаться))) Тормоза - для трусов, array_map() для лохов!

    twin, 12 Февраля 2011

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

    +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
    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
    // Часть первая. Объявления. Exceptions.hpp
    
    template <typename E>
    struct ExeptionKeeper 
    {
        E * exptn;
        ExeptionKeeper(E * ex) 
        {
            exptn = ex;
        }
        ~ExeptionKeeper()
        {
            if(exptn != NULL )
            {
                delete exptn;
            }
        }
        E * operator -> () 
        { 
            return exptn; 
        }
    };
    
    #define EX_TRY(XX) try { XX }
    #define EX_CATCH(TT, NAME, XX) catch (TT *_ex) { ExeptionKeeper<TT> NAME(_ex);  XX }
    
    /// Часть вторая. Использование. ModelsHelper.cpp
    
    .... // код
            EX_TRY
            (
               ............
                 TestParams(args); // кидает new ParamsException в случае неудачи
               ............
                 TestFunctions(funclist); // Кидает new FuncsException ... 
               ............
               //// тут еще есть вызовы, кидающие исключения
               ............
            ) 
            EX_CATCH
            (   ParamsException, exp,
                GLogger(levelerror).Log("Invalid params for model ", exp->model(), " [", exp->paramlist().str(), "]");
            ) 
            EX_CATCH
            (   FuncsException, exp,
                GLogger(levelerror).Log("Invalid functions for model ", exp->model(), " [", exp->funclist().str(), "]");
            ) 
            EX_CATCH
            (   LevelsException, exp,
                GLogger(levelerror).Log("Invalid levels for model ", exp->model(), " [", exp->levelslist().str(), "]");           
            ) 
            EX_CATCH
            (    .... , exp,
                ........
            )
    .... // код

    И снова на тему исключений.
    Прислал приятель. Какой-то софт для аэропортов.
    Комменты на русском мои.

    ossa, 09 Февраля 2011

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

    +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
    do
            {
                    do
                            {
                                    if ($myrow_cats["category_id"] == $myrow_oldtovar_1["id"])
                                            {
                                                    printf("<tr><td class='newcat_author'><input name='old_id_cat[]' type='checkbox' value='%s' checked >
                                                    %s</td></tr>",
                                                    $myrow_oldtovar_1["id"],$myrow_oldtovar_1["rubrikatitle"]);
                                            }
                                    else
                                            {
                                                    printf("<tr><td class='newcat_author'><input name='old_id_cat[]' type='checkbox' value='%s' >%s</td></tr>",
                                                    $myrow_oldtovar_1["id"],$myrow_oldtovar_1["rubrikatitle"]);
                                            }       
                            }
                    while($myrow_oldtovar_1 = mysql_fetch_array($result_oldtovar_1));
            }
    while ( $myrow_cats = mysql_fetch_array($result_cats) );

    qbasic, 08 Февраля 2011

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

    +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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    // говно-код - вступление
                            KEY_ACCELERATOR_DATA acceleratorData;
                            WORD id; int i, j, k;
    
                            acceleratorData.line = 255;
                            acceleratorData.address = 255;
                            acceleratorData.sensors = 255;
                            acceleratorData.action = 255;
                            KeyAcceleratorDataList tempList;
    
                            // говно-код - квинтэссенция
                            for(i = 1; i < listWholeString.ItemsCount(); i++) 
                            {
                                        k = 0;
                                        strCurrSensor = listWholeString[i];
                                        if((k = strCurrSensor.Find(_T('-'), k)) <= 0)
                                                    break;
                                        acceleratorData.line = (BYTE)_ttoi(strCurrSensor.Left(k));
                                        // ну кто блядь это поймет??? Кто???!!!
                                        j = k;                            
                                        if((k = strCurrSensor.Find(_T('-'), k + 1)) <= 0)
                                                    break;
                                        acceleratorData.address = (BYTE)_ttoi(strCurrSensor.Mid(j + 1, k - (j + 1)));
    
                                        j = k;                            
                                        if((k = strCurrSensor.Find(_T('-'), k + 1)) <= 0)
                                                    break;
                                        acceleratorData.sensors = (BYTE)_ttoi(strCurrSensor.Mid(j + 1, k - (j + 1)));
    
                                        if((k = strCurrSensor.Find(_T('-'), k)) <= 0)
                                                    break;
                                        acceleratorData.action = (BYTE)_ttoi(strCurrSensor.Right(strCurrSensor.GetLength() - (k + 1)));
                                        
    
                                        if((acceleratorData.line == 255) || (acceleratorData.address == 255) || 
                                          (acceleratorData.sensors == 255) || (acceleratorData.action == 255))
                                                    break;
                                        tempList.push_back(acceleratorData);
                            }           
                            mapKeyAccelerators.operator[](id) = tempList;
                }
    // Аут… Тушите свет и сидите, где сидели… А я нахуй сам пойду…

    парень "кончал на компьютер" и даже получил сертификат Microsoft по MFC
    лучше бы он кончал на дорожного рабочего...

    ShuraKotov, 08 Февраля 2011

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