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

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

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $login='55526723433';
    for($n=0; $n!=strlen($login)-2; $n++)
    {
    	if( $login[$n] == $login[$n+1] && $login[$n] == $login[$n+2] )
    	{
    		echo 'есть повторение';
    		exit;
    	}
    }

    снова на ваш суд))

    суть проблемы: проверка содержания строки, есть ли более двух одинаковых символов.

    beetle, 09 Октября 2011

    Комментарии (20)
  3. C++ / Говнокод #8025

    +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
    17. 17
    18. 18
    Люди, помогите решить такой вопрос. Приведу пример: 
       Есть программист Петя. Он прочитал очень много книг по программированию,
    и вообще умный парень :). И, так как, Петя прочитал много умных книг (Александреску к примеру),
    он соответственно пишет умный код, используя различные фишки с++, например,
    очень любит шаблоны (такие вещи типа статического полиморфизма и еще много
    всего связанного с шаблонами и обобщенным программированием) или использует
    сложные тернарные операторы… ну и т.д. … Соответственно код работает и все хорошо. 
    Как-то в разговоре с Петей ему сказали, что если так прогать, то может получиться
    непрозрачный код. 
      На что он ответил: «Если алгоритм написан верно, и Каму-то непонятен код, то
    проблема в том что человек просто плохо образован в плане программирования.
    Ибо кто-то, например, не знает что такое классы и ему будет не прозрачен код,
    в котором используют классы или обычное наследование. И соответственно не
    писать же все процедурно, из-за того, что кто-то не знает что такое классы.
    А само понятие прозрачности кода - ерунда ».
       От сюда вопрос, Прав ли Петя и что такое вообще «Прозрачность кода»?
    Или действительно код не может быть  написан «Заумно», а тот, кто так
    считает, просто плохо знает стандарт языка.

    Вопрос совершенно серьёзный. //Не холивар.

    CPPGovno, 29 Сентября 2011

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

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    foreach( $vote->get() as $i => $variant )
        {
            . . . 
            $vote = +@$variant[ 'value' ];
            . . .
        }

    Чтобы наверняка!

    litechat, 28 Сентября 2011

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

    +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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    <!--/ Блок логина /-->
    <div class="icemodule"><div><div><div><div><h3><span>Мы</span> знакомы?!</h3></div></div></div></div></div>
    <div id="loginarea">
        <?php echo CHtml::form(Yii::app()->createUrl('site/login'),'post',array('id' => 'loginform')); ?>
        <p id="login_username">
            <?php echo CHtml::label('Логин','id_login'); ?>
            <?php echo CHtml::textField($model->login, 'Логин', array('alt' => 'Логин', 'class' => 'inputbox', 'id' => 'id_login', 'onfocus' => 'if(this.value==\'Логин\') this.value=\'\';', 'onblur' => 'if(this.value==\'\') this.value=\'Логин\';',)); ?>
        </p>
        <p id="login_password">
            <?php echo CHtml::label('Пароль','id_pass'); ?>
            <?php echo CHtml::passwordField($model->pass, 'Пароль', array('alt' => 'Пароль', 'class' => 'inputbox', 'id' => 'id_pass', 'onfocus' => 'if(this.value==\'Пароль\') this.value=\'\';', 'onblur' => 'if(this.value==\'\') this.value=\'Пароль\';',)); ?>
        </p>
        <p id="login_button">
            <button type="submit"><span class="round"><span>Войти</span></span></button>
        </p>
        <p id="login_remember">
            <?php echo CHtml::checkBox($model->rememberMe, '', array('alt' => 'Запомнить Меня', 'class' => 'checkbox', 'id' => 'id_rememberMe',)); ?>
            <?php echo CHtml::label('Запомнить','id_rememberMe'); ?>
        </p>
        <?php echo CHtml::endForm(); ?>
    </div>
    <div style="overflow: hidden; margin:0px 0px 10px 5px;">
        <ul class="loginimages">
            <li><?php echo CHtml::link('Забыли пароль', array('site/lostpass'));?> | </li>
            <li><?php echo CHtml::link('Регистрация', array('site/rules'));?></li>
        </ul>
    </div>
    <!--/ Конец блока логина /-->

    xyzdsnxyz, 03 Сентября 2011

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

    +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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    // don't show any errors to end user
    error_reporting(0);
    	
    // error handler function
    function my_error_handler($errno, $errstr, $errfile, $errline) {
    		
        $date = date('d/M/Y:H:i:s O');
    		
        // \r\n for cozy look on win machines
        $error_str = "{$date} | [error] #{$errno}: {$errfile}:{$errline} {$errstr} \r\n";
    		
        // *.txt for win machines
        error_log($error_str, 3, 'C:\AppServ\www\error_log.txt');
    		
        // don't execute php internal error handler
        return true;
    }
    
    set_error_handler('my_error_handler');
    	
    // throws error
    echo date();

    Рубрика: Советы от Говнокода.
    В связи с #7594. Fatal errors не ловит (пхп, хуле), но их и не нужно показывать пользователю, все остальные ошибки пишем в лог на сервер.
    Ошибка в логе выглядит так:
    21/Aug/2011:16:50:52 +0000 | [error] #2: C:\AppServ\www\4.php:22 date() expects at least 1 parameter, 0 given

    Yurik, 21 Августа 2011

    Комментарии (14)
  7. JavaScript / Говнокод #7457

    +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
    function Point(){
    	this.x = 0;
    	this.y = 0;
    	if(arguments.length==2){				//if parameters are 2 points
    		this.x = arguments[0] || 0;
    		this.y = arguments[1] || 0;
    	}else
    		if(arguments.length==1){			//if parameter is a point object
    			this.x = arguments[0].x;
    			this.y = arguments[0].y;
    		}
    };

    yahoo, 05 Августа 2011

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

    +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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    window.jQuery = window.$ = jQuery;
    })(window);;
    (function(d) {
        var k = d.scrollTo = function(a, i, e) {
            d(window).scrollTo(a, i, e)
        };
        k.defaults = {
            axis: 'xy',
            duration: parseFloat(d.fn.jquery) >= 1.3 ? 0 : 1
        };
        k.window = function(a) {
            return d(window)._scrollable()
        };
        d.fn._scrollable = function() {
            return this.map(function() {
                var a = this,
                    i = !a.nodeName || d.inArray(a.nodeName.toLowerCase(), ['iframe', '#document', 'html', 'body']) != -1;
                if (!i) return a;
                var e = (a.contentWindow || a).document || a.ownerDocument || a;
                return d.browser.safari || e.compatMode == 'BackCompat' ? e.body : e.documentElement
            })
        };

    mark, 26 Июля 2011

    Комментарии (6)
  9. 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)
  10. PHP / Говнокод #7136

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function rustrtolower($s)
    	{
    		$from = array("А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","A","B","C","D","E","F","G","H","I","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","J");
    		$to =   array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","a","b","c","d","e","f","g","h","i","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","j");
    		return str_replace($from, $to, $s);
    	}

    Мартин, 02 Июля 2011

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

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $black = "eval|file_get_contents|mysql_(.*?)|include|require|readfile|show_source|highlight|import_request_variables|extract|parse_str|assert|passthru|exec|system|shell_exec|proc_open|fopen|echo";
    
    if(preg_match("#\<\?(.*?)($black)(.*?)\?\>#i", $template)){
    exit ("1");
    break;
    }

    substr, 20 Июня 2011

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