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

    +58

    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
    private function  _getOrderBy($orderField)
        {
            switch ($orderField)
            {
                case 'ProductID':
                    return 'ProductID';
                case 'ProductName':
                    return 'ProductName';
                case 'Per':
                    return 'Per';
                case 'Start':
                    return 'Start';
                case 'Qty':
                    return 'Qty';
                case 'OrderDetailsID':
                    return 'OrderDetailsID';
                case 'FIOUr':
                    return 'FIOUr';
                case 'AddressUr':
                    return 'AddressUr';
                case 'ZipCodeUr':
                    return 'ZipCodeUr';
                case 'OrderRealSupID':
                    return 'OrderRealSupID';
                case 'PayDate':
                    return 'PayDate';
                case 'SumPay':
                    return 'SumPay';
                case 'NumPlPor':
                    return 'NumPlPor';
                default:
                    return 'OrderID';
            }
        }
    
    //Вот еще чуть-чуть:
    
    private function  _getOrderType($orderType)
        {
            switch ($orderType)
            {
                case 'asc':
                    return 'asc';
                default:
                    return 'desc';
            }
        }

    Ну в общем, привожу пару этюдов из "коричневой" симфонии, которые используются для формирования SQL запроса. Код - прост, но говнист.

    SunnyMagadan, 17 Декабря 2012

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

    +42

    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
    function Utf2Win($s){ return Utf8($s,'w') ; }  
    function Win2Utf($s){ return Utf8($s,'u') ; }  
    function Utf8($s, $sTo = 'utf2win'){  
       $a = array();  
      for ($i=128; $i <= 191; $i++){  
       $a['utf'][] = ($i<144) ? chr(209).chr($i) : chr(208).chr($i);  
       $a['win'][] = ($i<144) ? chr($i + 112) : chr($i + 48) ;  
      }  
      $a['utf'][] = chr(208) . chr(129);  
      $a['win'][] = chr(168);  
      $a['utf'][] = chr(209) . chr(145);  
      $a['win'][] = chr(184);
    
      $a['utf'][] = chr(209) . chr(78);  
      $a['win'][] = chr(73);
    
      $a['utf'][] ='в„–';
      $a['win'][] = '№';
    
       if(in_array(strtolower($sTo), array('utf2win','w','cp1251','windows-1251')))  
         return str_replace($a['utf'], $a['win'], $s);  
       if(in_array(strtolower($sTo), array('win2utf','u','utf8','utf-8')))  
         return str_replace($a['win'], $a['utf'], $s);  
    } 
    
    function getfield_csv($string,$index)
    {
      $arr = explode(";",$string);
      return $arr[$index];
    }
    
    function read_csv($file)
    {
      $hFile = fopen($file,"r");
        $source_data_utf = fread($hFile,filesize($file));
      fclose($hFile);
      
      $source_data = Utf2Win($source_data_utf);
      
      $arr_source_data = explode("\r\n",$source_data);
      
      for($i=0;$i<count($arr_source_data);$i++)
      {
        $arr_source_data[$i] = str_replace(chr(239).chr(187).chr(191), "", $arr_source_data[$i]);
        $result[] = Array();
        $result[count($result)-1]['Ds'] = getfield_csv($arr_source_data[$i], 0);
        $result[count($result)-1]['Fkp'] = getfield_csv($arr_source_data[$i], 5);
        $result[count($result)-1]['Tgg'] = getfield_csv($arr_source_data[$i], 3);
        $result[count($result)-1]['Pol'] = getfield_csv($arr_source_data[$i], 4);
        $result[count($result)-1]['Tr'] = getfield_csv($arr_source_data[$i], 6);
      }
      return $result;
    }

    clauclauclau, 17 Декабря 2012

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

    +127

    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
    #include <stdio.h>
    
    int Sravn (int a, int b)
    {
    if (a=b)
    {return 1;}
    else 
    {return 0;}
    }
    
    int main()
    {
         int A[5]={1, 4, 7, 4, 4}, rez1, rez2, rez3, rez4, rez5;
         int i=0;
         rez1=Sravn(A[i], A[i+1])+Sravn(A[i], A[i+2])+Sravn(A[i], A[i+3])+Sravn(A[i], A[i+4]);
         rez2=Sravn(A[i+1], A[i])+Sravn(A[i+1], A[i+2])+Sravn(A[i+1], A[i+3])+Sravn(A[i+1], A[i+4]);
         rez3=Sravn(A[i+2], A[i])+Sravn(A[i+2], A[i+1])+Sravn(A[i+2], A[i+3])+Sravn(A[i+2], A[i+4]);
         rez4=Sravn(A[i+3], A[i])+Sravn(A[i+3], A[i+1])+Sravn(A[i+3], A[i+2])+Sravn(A[i+3], A[i+4]);
         rez5=Sravn(A[i+4], A[i])+Sravn(A[i+4], A[i+1])+Sravn(A[i+4], A[i+3])+Sravn(A[i+4], A[i+2]);
         if (rez1>rez2 && rez1>rez3 && rez1>rez4 && rez1>rez5)
         {printf ("/d", A[i]);}
         else if (rez2>rez1 && rez2>rez3 && rez2>rez4 && rez2>rez5)
         {printf ("/d", A[i+1]);}
         else if (rez3>rez2 && rez3>rez1 && rez3>rez4 && rez3>rez5)
         {printf ("/d", A[i+2]);}
         else if (rez4>rez2 && rez4>rez3 && rez4>rez1 && rez4>rez5)
         {printf ("/d", A[i+3]);}
         else if (rez5>rez2 && rez5>rez3 && rez5>rez1 && rez5>rez4)
         {printf ("/d", A[i+4]);}
         return 0;
         }

    Ищет в массиве наиболее часто повторяющийся элемент. Написано мною. Нифига не работает, но ошибок не выдает.

    MurMur, 16 Декабря 2012

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    findTariffPlans = function(setValue) {findTariffPlans(setValue, null)};
    
    findTariffPlans = function(setValue, closure) {
       // bla-bla-bla
    }

    "Я перегрузил"

    madhead, 16 Декабря 2012

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

    −163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    SELECT news_tbl.*, users_tbl.*,
    GROUP_CONCAT(comments_tbl.comments_id) AS commentsid,
    GROUP_CONCAT(CONCAT ('<hr><h6>Navn: ', comments_tbl.name,'</h6>','<p>',comments_tbl.comment, '</p>') SEPARATOR '<br><br>') AS comments, 
    COUNT(comments_tbl.comments_id) AS comments_count
    FROM news_tbl
    LEFT JOIN comments_tbl ON comments_tbl.news_id = news_tbl.news_id
    LEFT JOIN users_tbl ON news_tbl.user = users_tbl.username
    GROUP BY news_tbl.news_id
    ORDER BY news_tbl.news_id DESC LIMIT 5

    Наткнулся на SO.

    Lowezar, 15 Декабря 2012

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

    +55

    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
    function _bool($var){
      if(is_bool($var)){
        return $var;
      } else if($var === NULL || $var === 'NULL' || $var === 'null'){
        return false;
      } else if(is_string($var)){
        $var = trim($var);
        if($var=='false'){ return false;
        } else if($var=='true'){ return true;
        } else if($var=='no'){ return false;
        } else if($var=='yes'){ return true;
        } else if($var=='off'){ return false;
        } else if($var=='on'){ return true;
        } else if($var==''){ return false;
        } else if(ctype_digit($var)){
          if((int) $var)
            return true;
            else
            return false;
        } else { return true; }
      } else if(ctype_digit((string) $var)){
          if((int) $var)
            return true;
            else
            return false;
      } else if(is_array($var)){
        if(count($var))
          return true;
          else
          return false;
      } else if(is_object($var)){
        return true;// No reason to (bool) an object, we assume OK for crazy logic
      } else {
        return true;// Whatever came though must be something,  OK for crazy logic
      }
    }

    Я, конечно, понимаю, не во всех школах учат использованию массивов...

    RaZeR, 15 Декабря 2012

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

    +58

    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
    // Released Under Affero General Public License, Version 3 (AGPL3)
    // Author: [email protected]
    
    $result = "TRUE";
    
    $testable_string = strtolower($string_to_test);
    $testable_string_length = strlen($string_to_test);
    
    for($i_string = 0; $i_string < $testable_string_length; $i_string++)
    {
        $current_value_to_test = $testable_string[$i_string];
       
        if(    ($current_value_to_test != "0")        &&
            ($current_value_to_test != "1")        &&
            ($current_value_to_test != "2")        &&
            ($current_value_to_test != "3")        &&
            ($current_value_to_test != "4")        &&
            ($current_value_to_test != "5")        &&
            ($current_value_to_test != "6")        &&
            ($current_value_to_test != "7")        &&
            ($current_value_to_test != "8")        &&
            ($current_value_to_test != "9")        &&
            ($current_value_to_test != "a")        &&
            ($current_value_to_test != "b")        &&
            ($current_value_to_test != "c")        &&
            ($current_value_to_test != "d")        &&
            ($current_value_to_test != "e")        &&
            ($current_value_to_test != "f")        )
        {
            $result = "FALSE";
            $i_string = $testable_string_length;
        }
    }

    Смахивает на баян, но тем не менее.
    http://php.net/manual/ru/function.is-numeric.php, из комментов.

    RaZeR, 14 Декабря 2012

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

    +43

    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
    session_start();
    if(empty($_SESSION['UserLogin']) or empty($_SESSION['UserId']))
    {
      header('Location: /');
    }
    else
    {
      if($_GET['mess_id'] == "")
      { 
         header('Location: /'); 
      }
      else
      {
        include("application/db.config.php");
        $GetUserIdQuery = mysql_query("SELECT id FROM Users WHERE id=".$_SESSION['UserId'], $db);
        $UserIdArr = mysql_fetch_array($GetUserIdQuery);
        
        $GetMessInfoQuery = mysql_query("SELECT * FROM Messages WHERE DialogId=".$_GET['mess_id'], $db);
        $MessageInfoArr = mysql_fetch_array($GetMessInfoQuery);
        if($UserIdArr['id'] != $MessageInfoArr['UserTo'])
        {
          header('Location: /');  
        }
        else
        {
            mysql_close($db);  
           ......................................................... и так далее...
        }
      } 
    }

    В довесок к этому(http://govnokod.ru/12268), БЛ*АТЬ!

    Govnisti_Diavol, 14 Декабря 2012

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

    −113

    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
    67. 67
    68. 68
    -(void) reloadHelpMessage:(BOOL) _isPortrait
    {
        //ignoreDisappear = NO;
        //ingnoreWillAppear  = NO;
        if (_isPortrait)
        {
            helpMessage.frame = CGRectMake(helpMessage.frame.origin.x, helpMessage.frame.origin.y, self.view.bounds.size.width, 175);
            for (UIView* sub in [helpMessage subviews])
            {
                NSLog(@"__%@",[sub description]);
                switch (sub.tag) 
                {
                    case 1:
                        sub.frame = CGRectMake(68, 17, 200, 18);
                        break;
                    case 2:   
                        sub.frame = CGRectMake(68, 40, self.view.bounds.size.width - 70, 80);
                        break;
                    case 3:
                        sub.frame = CGRectMake(267, 3, 35, 29);
                        break;
                    case 4:
                        sub.frame = CGRectMake(10, 8, 48, 53);
                        break;
                    case 5:
                        sub.frame = CGRectMake(11, 128, roundf((self.view.bounds.size.width - 32)/2), 36);
                        break;
                    case 6:
                        sub.frame = CGRectMake(roundf((self.view.bounds.size.width/2) + 5), 128, roundf((self.view.bounds.size.width - 32)/2), 36);
                        break;
                   
                    default:
                        break;
                }   
            }
        }
        else
        {
            helpMessage.frame = CGRectMake(helpMessage.frame.origin.x, helpMessage.frame.origin.y, self.view.frame.size.width, 138);
            for (UIView* sub in [helpMessage subviews])
            {
                NSLog(@"__%@",[sub description]);
                switch (sub.tag) 
                {
                    case 1:
                        sub.frame = CGRectMake(68, 17, 200, 18);
                        break;
                    case 2:   
                        sub.frame = CGRectMake(68, 40, self.view.bounds.size.width - 80, 40);
                        break;
                    case 3:
                        sub.frame = CGRectMake(400, 3, 35, 29);
                        break;
                    case 4:
                        sub.frame = CGRectMake(10, 8, 48, 53);
                        break;
                    case 5:
                        sub.frame = CGRectMake(11, 91, roundf((self.view.bounds.size.width - 32)/2), 36);
                        break;
                    case 6:
                        sub.frame = CGRectMake(roundf((self.view.bounds.size.width/2) + 5), 91, roundf((self.view.bounds.size.width - 32)/2), 36);
                        break;
                    default:
                        break;
                }   
            }
        }
    }

    QuickNick, 14 Декабря 2012

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

    +41

    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
    # POST /register
    Public Function Register(){
        foreach((array)$_POST as $k=>$v)
            $_POST[$k] = addslashes(strip_tags($v));
        $login = $_POST['Login'];
        $password = $_POST['Password'];
        $email = $_POST['Email'];
        $firstname = $_POST['FirstName'];
        $lastname = $_POST['LastName'];
        $errors = array();
    
        IF(!Session::Restore()){
            Driver::Init();
            IF(String::is_valid_email_address($email)){
                IF(strlen($login) > 3 && strlen($login) <= 12 && String::Check('([a-zA-Z0-9_]+)', $login) ){
                    IF(strlen($password) > 5 && $password == $_POST['RePassword']){
                        $users = Collection::Get('users')->Select(Query::Equal('login', $login));
                        IF(!sizeof($users)){
                            $user = new User;
                            $user->login = strtolower($login);
                            $user->password = md5($password);
                            $user->regtime = time();
                            $photo = UploadedFiles::Get('Photo');
                            IF($photo)
                                IF($photo->exists){
                                    $photoHash = md5('photo_'.$user->login);
                                    $photosPath = APPLICATION_DIR.'/assets/uploads/photos';
                                    $photo->Path = $photosPath.'/tmp/'.$photoHash;
                                    ImageProcessing::MakeThumb($photo->Path, $photosPath.'/300/'.$photoHash.'.jpg', 100, 300, 500);
                                    ImageProcessing::MakeThumb($photo->Path, $photosPath.'/100/'.$photoHash.'.jpg', 100, 100);
                                    ImageProcessing::MakeThumb($photo->Path, $photosPath.'/50/'.$photoHash.'.jpg', 100, 50);
                                    @unlink($photo->Path);
                                    $user->photo = $photoHash;
                                }
                            $user->save();
                            Session::Link($login, $password);
                            return Router::Redirect('/profile');
                        }
                        else $errors[] = l('This username is already taken');
                    }
                    else $errors[] = l('Password length must be more than 3');
                }
                else $errors[] = l('Login length must be more than 3, and less than 13 characters and contain only Latin characters');
            }
            else $errors[] = l('Your email address must be in the format of [email protected]');
        }
        else $errors[] = l("You are already registered");
        $view = new View('main.php');
        return $view->Set('Content', 'registration.php')->Set('login', $login)->Set('email', $email)->Set('firstname', $firstname)->Set('lastname', $lastname)->Set('errors', $errors);
    }

    Ну так.

    d3n4, 14 Декабря 2012

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