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

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

    +151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    echo '<form method="" name="aut" action="a.php?"> 
    <input type = "submit" name = "knopka" value = "OK"></form>'; 
    
    for ($i = 1; $i count($knopka); $i++) { 
    if (isset($_REQUEST[knopka])) { 
    echo 'Кнопка была нажата '.$i.' раз'; 
    } else { 
    echo 'Кнопка не была нажата'; 
    }

    это даже не смешно http://forum.wen.ru/?p=3&f=6&t=367051&w=htm снова перлы веника

    GoodTalkBot, 08 Августа 2010

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

    +151

    1. 1
    $o = ($o < 0) ? 0 : $o;

    Оооо, как меня задолбал такой код

    sogekoder, 08 Августа 2010

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

    +151

    1. 1
    2. 2
    3. 3
    public function GetCurrentCultureID(){
    		return 1;
    	}

    ой как лень дописывать поддержку мультиязычность в устаревшие модули....

    nur, 04 Августа 2010

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

    +151

    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
    std::string wbfunc(std::string& hash)
    {
       std::string line;
       std::ifstream f("/home/hromjo/q");
       int l = 0;
       while (std::getline(f, line))
       {
          std::cout << "Перебор: " << l << "паролей." << "\n";
          l++;
          if (md5(line) == hash)
          {
            return line;
            break;
          }
       }
    }

    Возможно слегка не в тему.
    Писал я и хочу проверить, говнокод ли это.
    И что можно исправить в этом говнокоде.

    hromjo, 04 Августа 2010

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

    +151

    1. 1
    return *reinterpret_cast<ChatUnitList*>(&m_contacts); //black magic

    Действительно черная магия... Хотя работает, но я не уверен, что на всех платформах

    Sauron, 28 Июня 2010

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

    +151

    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
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    function addimagesave()
    	{
    		if (!$this->Login->isLogged())
            {
                $this->loginto();
                return;
            }
            else $this->Login->Update();
    		$error = '';
    		$recordExists = false;
    		$post_name = trim($this->input->post('name'));
    		if ($post_name != '') $insert['file_name'] = $post_name;
    		// now need to get from db if id_all in i_pics
    		$this->db->where('id_all',$this->input->post('id_all'));
    		$this->db->limit(1);
    		$query = $this->db->get('i_pics');
    		if ($query->num_rows() == 1)
    		{
    			$row = $query->row();
    			$recordExists = true;
    			$file_name = $row->file_name;
    			$id_pics = $row->id_pics;
    		}
    		if (isset($_FILES['upload']) && ($_FILES['upload']['error'] == 0)) // is file loaded?
    		{
    			$ext = getExtensionOnly($_FILES['upload']['name']);
    			if ($post_name != '') $_FILES['upload']['name'] = $post_name.'.'.$ext;
    			else $post_name = delExtensionWithDot($_FILES['upload']['name']);
    			$_FILES['upload']['name'] = translitIt(delExtensionWithDot($_FILES['upload']['name'])).'.'.$ext;
    			$config['upload_path'] = './pics/';
    			$config['allowed_types'] = 'gif|jpg|png|bmp';
    			$this->load->library('upload', $config);
    			if ($this->upload->do_upload('upload'))
    			{
    				$this->General->setEmes(array('roster'=>"Картинку загружено."), true);
    				$data = $this->upload->data();
    				$insert['file_name'] = $data['file_name'];
    				// resize now
    				$config1['image_library'] = 'gd2'; // выбираем библиотеку
    				$config1['source_image'] = 'pics/'.$data['file_name'];
    				$config1['create_thumb'] = TRUE; // ставим флаг создания эскиза
    				$config1['maintain_ratio'] = true; // сохранять пропорции
    				$config1['width'] = 250; // и задаем размеры
    				$config1['height'] = 180;
    				// pre crack image for resizing! )))
    				$this->load->model('Image');
    				$this->Image->smartsigninto('pics/'.$data['file_name'], 250, 180);
    				$this->load->library('image_lib', $config1); // загружаем библиотеку
    				$this->image_lib->resize(); // и вызываем функцию
    				// now rename and owerwrite original image
    				$ext = getExtensionOnly($data['file_name']);
    				$fol = "pics/";
    				if (is_file($fol.$data['raw_name'].'_thumb.'.$ext))
    				rename($fol.$data['raw_name'].'_thumb.'.$ext, $fol.$data['file_name']);
    				else $this->General->setEmes(array('roster'=>"Файл *_thumb не был создан!"));
    				// now set new file size
    				$insert['size'] = round(filesize($fol.$data['file_name'])/1024 , 2);
    			}
    			else $this->General->setEmes(array('roster'=>$this->upload->display_errors()));
    		}
    		else // we need to try to rename assigned file if name is not empty and file exists
    		{
    			if ($recordExists && is_file('pics/'.$file_name) && ($post_name != ''))
    			{
    				$ext = getExtensionOnly($file_name);
    				$fol = "pics/";
    				$newName = translitIt($post_name).'.'.$ext;
    				if (is_file('pics/'.$newName))
    				{
    					$this->General->setEmes(array('roster'=>"Имя уже существует"), true);
    					$insert['file_name'] = $file_name;
    				}
    				else
    				{
    					rename($fol.$file_name, $fol.$newName);
    					$insert['file_name'] = $newName;
    				}
    			}
    		}
    		// prepare data to be ins or upd
    		$insert['lang'] = 'ru';
    		$insert['title'] = $this->input->post('title');
    		$insert['alt'] = $this->input->post('alt');
    		$insert['id_all'] = $this->input->post('id_all');
    		if ($recordExists)
    		{
    			$this->db->where('id_pics',$id_pics);
    			$this->db->update('i_pics', $insert);
    			$this->General->setEmes(array('roster'=>"Данные обновлены"), true);
    		}
    		else $this->db->insert('i_pics', $insert);
    		$this->redirect('roster/'.$this->input->post('type'));
    	}

    Функция - контроллер сохранения, resize на лету картинки для новости или прочей байды. Есть все проверки. Любая картинка которая приходит, становится размером 250, 180 , причем без растяжения. Это задача типа вписать прямоугольник в прямоугольник, которую я сейчас ночью выполнил - даже если картинка меньше оно впишет. I must be proud about this functionality! Заметим, что в интернете все и умеют что вырезать квадраты из картинки, а произвольный размер - НЕТ такого. Код выложен чтобы вы посмотрели, нравятся ли вам имена переменных, логическое мышление, форматирование, коментарии (на русском - то не мои коментарии). Код CodeIgniter powered.

    increazon, 25 Июня 2010

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

    +151

    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
    function datRus ($dat) 
       {  $day = substr($dat, 8, 2); 
          $mon = substr($dat, 5, 2);
          $year= substr($dat, 0, 4); 
          switch ($mon) 
          {     case 1:  $month='Января'; break;
                case 2:  $month='Февраля'; break; 
                case 3:  $month='Марта'; break; 
                case 4:  $month='Апреля'; break; 
                case 5:  $month='Мая';  break; 
                case 6:  $month='Июня'; break; 
                case 7:  $month='Июля'; break; 
                case 8:  $month='Августа'; break; 
                case 9:  $month='Сентября'; break; 
                case 10: $month='Октября'; break; 
                case 11: $month='Ноября'; break; 
                case 12: $month='Декабря'; break; 
                default: $month=$mon;     break;
          }      
          $str = $day.' '.$month.' '.$year;
          return $str;        
       }

    Преобразование даты из mysql формата :)

    frexin, 18 Июня 2010

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

    +151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // пример 1
    a) $query = "SELECT id,text_name,textarea_desc,img_photo,date_reg FROM {$prefix2}_{$module} WHERE id='$id' AND check_active=1 ORDER BY $order LIMIT $limit";
    или же
    b) $query = "SELECT id,text_name,textarea_desc,img_photo,date_reg FROM ".$prefix2."_".$module." WHERE id='".$id."' AND check_active=1 ORDER BY ".$order." LIMIT ".$limit;
    
    // пример 2
    c) $query = "INSERT INTO {$prefix2}_{$module} SET text_name='$name',date_add=NOW(),text_fio='$fio' WHERE id='$id'";
    или же
    d) $query = "INSERT INTO ".$prefix2."_".$module." SET text_name='".$name."',date_add=NOW(),text_fio='".$fio."' WHERE id='".$id."'";

    Как-то некий посетитель этого сайта назвал a и с -- говнокодом. Интересно узнать Ваше мнение по этому поводу.
    Желательно услышать хоть какую-то аргументацию, вместо пресловутых трольских комментов ))
    Все переменные перед использованием естественно приведены к безопастному виду.
    Ни о каких инъекций речь просьба не поднимать...

    Death, 07 Мая 2010

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

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public function __construct()
      {    
        $this->post = $_POST;
        unset($_POST);
      }
      
      public function get($var_name)
      {
        return $this->post[$var_name];
      }

    ещё бы сделали ф-ю
    public function post($var_name)
    {
    return $this->get[$var_name];
    }

    paranoid, 16 Октября 2009

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

    +151

    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
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    <?php
    require_once ("../inc/core.php");
    require_once ("../inc/header.php");
    //
    require_once ("../inc/classAudioFile.php");
    require_once ("../inc/func.php");
    
    
    
    
    /// Форма загрузки файла
    if (!isset ($_POST['upload'])){
    echo '<form action="upload.php" method="post" enctype="multipart/form-data">';
    echo '<input type="file" name="fname"><br>';
    echo '<input type="submit" name="upload" value="Загрузить"><br></form>';
    }
    //
    $date = DATE ("Y-m-d");
    $scriptdir = "$siteurl/mp3/";
    $dir = "files/$date/";
    $tmpfilename = $_FILES['fname']['tmp_name'];
    $filename = $_FILES['fname']['name'];
    $nfilename = trans ("MixON.mobi_".$filename);
    $ext = explode (".",$filename);
    $size = $_FILES['fname']['size'];
    $adrfile = $dir.$nfilename;
    $mp3url = $scriptdir.$adrfile;
    //////////////
    
    if (!is_dir ("files/$date")) mkdir ("files/$date", 0770);
    
    
    if (isset($_POST['upload'])){
       if (count($ext) !=2) {
            echo "Файлы с двойным расширением запрещены. <br /> Должно быть так: <br /> filename.ext";
            exit;
        }
        if ($ext[1] != 'mp3' ){
            echo 'Разрешена загрузка только mp3 файлов.';
            exit;
        }
    if (file_exists ($tmpfilename)){
    copy ($tmpfilename, $adrfile);
    //// Получаем теги файла
    echo "Название файла: $filename <br />";
    $AF = new AudioFile;
    $AF->loadFile($adrfile);
    //$AF -> printSampleInfo();
    $channels = $AF -> wave_channels;
    $framerate = $AF -> wave_framerate;
    $byterate = $AF -> wave_byterate;
    $length = $AF -> wave_length;
    $title = $AF -> id3_title;
    $title = trim(iconv('windows-1251','UTF-8',$title));
    $artist = $AF -> id3_artist;
    $artist = trim (iconv('windows-1251','UTF-8',$artist));
    $album = $AF -> id3_album;
    $album = trim (iconv('windows-1251','UTF-8',$album));
    $year = $AF -> id3_year;
    $year = trim (iconv('windows-1251','UTF-8',$year));
    $genre = $AF -> id3_genre;
    $genre = trim (iconv('windows-1251','UTF-8',$genre));
    $comment = $AF -> id3_comment;
    $comment = trim (iconv('windows-1251','UTF-8',$comment));
    ///Выводим мп3 теги
    echo "Каналы: $channels <br /> Частота: $framerate <br /> Битрейт: $byterate <br /> ";
    echo "Продолжительность: ".date('i:s', mktime(0,0,round($length))). "мин. <br /> ";
    echo "Название: $title <br />";
    echo "Исполнитель: $artist <br />";
    echo "Стиль: $genre <br />";
    if ($album != null) echo "Альбом: $album <br />";
    if ($year != null) echo "Год: $year <br />";
    }// Если файл закачалься и удачно скопирован
    
    echo "<a href=\"http://$siteurl/$scriptdir/index.php?do=add\">Все верно</a>";
    $do = isset($_GET['do']) ? $_GET['do'] : '';
    switch ($do)
    {
        case 'admview':
    
    $sql = "INSERT INTO `files` ( `id` , `title` , `artist` , `genre` , `album` , `year` , `mp3url` )
    VALUES (
    '', '$title', '$artist', '$genre', '$album', '$year', '$mp3url'
    );";
    csql ($sql);
    mysql_query($sql);
    
    echo "<a href=\"http://$siteurl/$scriptdir/index.php?do=edit\">Нужно изменить</a>";
    
    }//switch do
    }// Если нажата кнопка
    require_once ("../inc/footer.php");
    ?>

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

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