1. Си / Говнокод #6378

    +145

    1. 1
    2. 2
    3. 3
    //Determine padding for use in allocating new memory
    int padding = 0;
    while ( (width * 3 + padding) % 4 != 0) padding++;

    http://www.cplusplus.com/forum/windows/6353/
    Ещё одна история о том, как людям не дано запомнить двоичную природу данных.
    Если что, вот корректный шаблон на D:

    int packed(int alignment)(int location) {
    static assert(alignment == 2 | alignment == 4 | alignment == 8);
    const badEnd = alignment - 1; //0b11, 0b111, 0b1111
    return location & badEnd ? (location & ~badEnd) + alignment : location;
    }

    denis-sh, 16 Апреля 2011

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

    +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
    function is_url($url) { 
    if(preg_match("/\./", $url) && preg_match("/http:\/\//i", $url) && preg_match("/.txt$/i", $url) && preg_match("/\//", str_replace("http://" , "", $url))) return 1;   
    else return 0; }
    function check_value($value) {
    if (!is_numeric($value) || $value>20 || $value<1) die ('Количество не число или число учеток превышает 20. Ну, или меньше 1.<br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Назад</a>'); }
    function regnloc() {
    $get = reg();
    header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?" . $get); }
    
    switch ($_GET['act']) { 
    case 'reg':
    regnloc();
    break; 
    
    case 'mass':
    // http://govnokod.ru/6376
    break;
    
    case 'file':
    if (!$_POST['get']) die ('Отсутствуют данные для записи'.$href);
    $content = "Сгенерировано ".date("d.m.y H:i:s")."\n";
    if ($_POST['link']) $content .= "Логины взяты по ссылке: ".$_POST['link']."\n";
    $content .= $_POST['get'];
    file_put_contents('download.txt', $content);
    header("Location: download.txt");
    break;
    
    default:
    if (($_GET['login']) && ($_GET['pass'])) echo $_GET['login'].' - '.$_GET["pass"].'<br><a href="http://сайт.ru/user/search/?a='.rand(1000, 9999).'&age0=&age1=&sex=0&ll=0&online=0&sort=0&login='.$_GET['login'].'" target="_blank">Полюбоваться</a><br><br>';
    view_form("?act=reg");
    echo '</form><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Массовая рега</a>'; }

    Вариации на тему http://www.snippy.ru/snippet/213/ (http://govnokod.ru/5597)
    Вдогонку к предыдущему.
    Это - регистратор учетных записей на одной известной мобильной социальность сети.
    Что поразительно - спустя полтора года это до сих пор работает.

    Бонусом еще немного содомии.

    И, да-да, внимательные читатели могли заметить еще в 6376 parse_str(reg()).
    reg() возвращает результаты строкой вида return "login=$login&pass=$pass";

    7ion, 15 Апреля 2011

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

    +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
    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
    case 'mass':
    $href = '<br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Назад</a>';
    if ($_GET['step']) {
    if (($_POST['step']) && ($_POST['link'])) die ('Пожалуйста, введите только что-то одно - кол-во или ссылку'.$href);
    if ((!$_POST['step']) && (!$_POST['link']) && ($_GET['step'] == 1)) {
    if ($_POST['code']) regnloc();
    die ('Пожалуйста, введите что-нибудь - кол-во или ссылку'.$href);}
    if ($_POST['step']) $mode = 'steps';
    if ($_POST['link']) $mode = 'link';
    if ($_GET['mode']) $mode = $_GET['mode'];
    if (!$mode) die ('Привет юным хакерам!'.$href);
    check_value($_GET['step']);
    $step = $_GET['step'];
    if ($mode == 'steps') {
    if ($_POST['step']) {
    check_value($_POST['step']);
    $end = $_POST['step']; } 
    else {
    check_value($_GET['end']);
    $end = $_GET['end'];}
    parse_str(reg()); 
    $get = "$login - $pass\n".$_POST['get']; }
    if ($mode == 'link') {
    if (is_url($_POST['link'])) {
    $strings = file($_POST['link']);
    $end = count($strings);
    check_value($end);
    $arrstep = $step - 1;
    if (strlen(trim($strings[$arrstep])) <= 15) { parse_str(reg(trim($strings[$arrstep])));
    $get = "$login - $pass\n".$_POST['get']; }
    else { $error = 1; $get = $_POST['get']; }}
    else { die ('Ссылка неверна или указывает не на .txt файл'.$href);} }
    $step++;
    if ($step <= $end) {
    if ($error) echo '<div style="color:red;">Предыдущая учетка не была зарегана - ник более 15-ти символов</div><br>';
    echo "Учетка $step из $end<br>";
    view_form("?act=mass&mode=$mode&step=$step&end=$end"); }
    else { 
    echo '<b>Завершено!</b><br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Повторить</a><br><br><form action="?act=file" method="post">Ваши учетки:<br><input type="submit" value="Скачать файлом">'; }
    echo '<br><textarea name="get" rows="10" cols="33">'.$get.'</textarea><input type="hidden" name="link" value="'.$_POST['link'].'"></form>';} 
    else {
    view_form("?act=mass&step=1");
    echo '<br><br><b>Опции массреги</b><br>Введите кол-во учеток: <input type="text" name="step" size="2" maxlength="2"><br>или ссылку на txt-файл с никами:<br><input type="text" name="link"><br><br><a href="' . $_SERVER['PHP_SELF'] . '">Обычная рега</a></form>'; }
    break;

    7ion. Начало.
    Написано примерно летом 2009 года.
    Помнится, я еще недоумевал - почему мой код называют страшным.

    7ion, 15 Апреля 2011

    Комментарии (12)
  4. Куча / Говнокод #6375

    +141

    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
    <?php
    /* ...какой-то код... */
    
    /* Как бы та самая с**ная "многозадачность" */
    	$proc = popen("/var/www/test PARAMS", "r");
    
    /* ...какой-то код... */
    ?>
    -----------------------------------------------------------------------------
    #!/bin/sh
    # Содержание /var/www/test
    
    STRING="/usr/bin/php -q /var/www/my/test.php"
    
    	if [ -n "$1" ]
    		then
    			VAR1=$1
    		else
    			VAR1='0'
    	fi
    
    `$STRING $VAR1`&
    
    --------------------------------------------------------------
    <?php
    /* ...какой-то код... */
    	/* 
    	файл /var/www/my/test.php 
    	содержит кой-чего на выполнение...
    	*/
    /* ...какой-то код... */
    ?>

    Кажется это достойно этого сайта...

    istem, 15 Апреля 2011

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

    +146

    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
    <?php
    /* ...какой-то код... */
    
    /* Как бы та самая с**ная "многозадачность" */
    	$proc = popen("/var/www/test PARAMS", "r");
    
    /* ...какой-то код... */
    ?>
    -----------------------------------------------------------------------------
    #!/bin/sh
    # Содержание /var/www/test
    
    STRING="/usr/bin/php -q /var/www/my/test.php"
    
    	if [ -n "$1" ]
    		then
    			VAR1=$1
    		else
    			VAR1='0'
    	fi
    
    `$STRING $VAR1`&
    
    --------------------------------------------------------------
    <?php
    /* ...какой-то код... */
    	/* 
    	файл /var/www/my/test.php 
    	содержит кой-чего на выполнение...
    	*/
    /* ...какой-то код... */
    ?>

    Кажется это достойно этого сайта...

    istem, 15 Апреля 2011

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

    +155

    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
    /* 
      где-то в 
      /includes.php
    */
    
    function __autoload($class_name) {
        if ($class_name[0] == 'm'){
            $m = DOCROOT . APPBASE . 'Models/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload model class'.$m.'<br/>';
            require_once $m;
        } elseif ($class_name[0] == 'c'){
            $c=DOCROOT . APPBASE . 'Controllers/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload controller class'.$c.'<br/>';
            require_once $c;
        }
    }
    
    /* 
      где-то в 
      /Controllers/Data.php
    */
    class cData extends controller {
    /* ... */
    }
    
    
    /* 
      где-то в 
      /Models/Data.php
    */
    class mData extends model {
    /* ... */
    }

    каждый программист обязан написать свой MVC и свой ActiveRecord

    RomaShka, 15 Апреля 2011

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

    +111

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for (int i = 0; i < 10; i++)
                      {
                             Console.Write(";x=" + h * i * dn + ",U=" + res[i * dn, j * dm]);
                      }
                      Console.Write(";x=" + h * 10 * dn + ",U=" + res[10 * dn, j * dm]);

    No comments

    mstyura, 15 Апреля 2011

    Комментарии (15)
  8. Objective C / Говнокод #6371

    −83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public class XXX
    {
        private Object m_ForLock = new object();
        private String m_Path = "";
        public XXX(String Path)
        {
            lock (m_ForLock)
            {
                 m_Path = Path;
            }
         }
    }

    BlackMonolit, 15 Апреля 2011

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

    −125

    1. 1
    2. 2
    3. 3
    'aaa' =~ /a(?=)aa/;
     'aaa' =~ /(?=)aaa/;
     'aaa' =~ /aaa(?=)/;

    в ActiveState Perl 5.10.0 build 1003 неожиданно обнаружил грубую ошибку в регулярных выражениях. Конструкция (?=), которая означает "с этого места имеется пустой фрагмент текста" вообще не работает! То же относится к аналогичной конструкции "заглядывания назад" (?<=). Например, не находится соответствие в операторах и т.д. Я пришёл в недоумение, ведь это работало правильно в ActiveState Perl 5.8.7 и в более ранних версиях, которые были установлены у меня прежде.

    BlackMonolit, 15 Апреля 2011

    Комментарии (17)
  10. Perl / Говнокод #6369

    −112

    1. 1
    print "Match" if 'ab' =~ /^a?(?=b)b/;

    Я не один раз находил ошибки в Perl особенно в Perl регулярных выражениях. Некоторые из них уже исправили, но одна остаётся и в версии ActiveState Perl 5.10.

    BlackMonolit, 15 Апреля 2011

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