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

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    $var = null;
    
    // Не вызовет: "Notice: Undefined Index 0"
    var_dump($var[0][1][2][3]['route']); // NULL

    PHP не показывает Notic'ы если переменная или значение является NULL'ом при попытки получить доступ к элементам массива (заметил это когда функция могла возвратить null или массив). Нашел это интересным.

    volter9, 05 Февраля 2015

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for($i = 0; $i < $count; ++$i){
      $result_formatted[$i][] = $result[$counter];
      ++$counter;
      $result_formatted[$i][] = $result[$counter];
      ++$counter;
    }

    Magic operations

    alexhifer, 26 Января 2015

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function calcHTime($stt) {
            $secs   = time() - $stt;
            $h      = (int) ($secs / 3600);
            $m      = (int) (($secs - ($h * 3600)) / 60);
            $s      = (int) ($secs - ($h * 3600) - ($m * 60));
            return sprintf("%02d:%02d:%02d", $h, $m, $s);
    }

    dannikonov, 23 Января 2015

    Комментарии (1)
  5. JavaScript / Говнокод #17493

    +157

    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 run()
    {
      var test = [60, 1, 5, 70, 8];
      var biggest = 100;
      var biggest_index = 0;
      for (var i = 0; i < test.length; i++)
      {
        if (test[i] < test[i + 1])
        {
          biggest = test[i + 1];
          test[biggest - [i + 1]] = [biggest];
        }
      }
      test[test.length] = biggest;
    }
    run();

    таск был найти наибольшего эллемента масива [60, 1, 5, 70, 8]; во что получилось у коллеги новобранца. это был его 20-ты опыт ;)

    apostolovd, 22 Января 2015

    Комментарии (16)
  6. JavaScript / Говнокод #17486

    +157

    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 ( diffYear < 5 ) {
            document.getElementById('yearsText').innerHTML = "года |";
        } else if ( diffYear > 1 ){
            document.getElementById('yearsText').innerHTML = "лет |";
        } else {
            document.getElementById('yearsText').innerHTML = "год |";
        }
        
        if ( diffMonth > 4 ) {
            document.getElementById('monthText').innerHTML = "месяцев |";
        } else if ( diffMonth > 1 ){
            document.getElementById('monthText').innerHTML = "месяца |";
        } else {
            document.getElementById('monthText').innerHTML = "месяц |";
        }
        
        if ( diffDay > 5 ) {
            document.getElementById('monthText').innerHTML = "дней |";
        } else if ( diffDay > 1 ){
            document.getElementById('monthText').innerHTML = "дня |";
        } else {
            document.getElementById('monthText').innerHTML = "день |";
        }
    }

    очередная кака с датой

    artembegood, 21 Января 2015

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    // comment out the following two lines when deployed to production
    defined('YII_DEBUG') or define('YII_DEBUG', true);
    defined('YII_ENV') or define('YII_ENV', 'dev');
    require(__DIR__ . '/../vendor/autoload.php'); // загружаем автозагрузчик
    require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); // DISREGARD THIS, загружаем вручную
    $config = require(__DIR__ . '/../config/web.php');
    (new yii\web\Application($config))->run();

    Входной скрипт Yii 2. Эта штука требует небольшого пояснения.
    Дело в том, что использовать константу YII_ENV для разработчиков оказалось некошерно, поэтому используются булевы константы YII_ENV_DEV, YII_ENV_PROD, YII_ENV_TEST, которые вычисляются в файле класса BaseYii (на всякий уточню - да, в файле с объявлением класса первым делом высчитываются глобальные константы).
    Так как понятие декларативной конфигурации тоже не очень близко этому фреймворку, эти константы используются прямо в конфигурационном php-файле. То есть, файл Yii.php обязан быть подгружен до того, как будут подгружены конфиги. А даже если сделать конфиг без использования этих констант или объявить их заранее, то последними строками Yii.php (после объявления класса) идет подключение автозагрузчика (да-да, в файле, который тоже служит для объявления класса), без которого почему-то никак (в composer-based проекте, ага). Ну, то есть без ручного подключения файла в этом фреймворке всё-таки вообще никак.
    Я не понимаю, как можно было умудриться идти практически по всем современным стандартам и опять проебать всё.

    Fike, 18 Января 2015

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

    +157

    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
    <?php
    function clear($field){
        $field = htmlspecialchars($field);
        $field = str_replace("\"","", $field);
        $field = str_replace("'","\'",$field);
     
        return $field;
    }
      if(isset($_POST['name'])){
       $name = clear($_POST['name']);
        echo $name;
      }
    ?>
    <form method="post">
     <p>you name:<br>
     <input name="name" type="text" value="">
     </p>
     <input type="submit" value="Send">
    </form>

    Прафисианналы "PHP" пишут защиту от XSS.
    Отсюда: http://mzcoding.com/php_articles/xss__csrf__ataki_i_zashhita_ot_nikh/11/

    gost, 29 Декабря 2014

    Комментарии (17)
  9. JavaScript / Говнокод #17351

    +157

    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
    $('.file_work .left .content a.create').bind('click', function(){
            show.in_question(strings.question[2], {
                0:strings.question[2].buttons[0], 
                1:strings.question[2].buttons[1]
            }, function(action, string){
                if(action !='ok'){
                    return;
                }
                if(string.length<4){
                    show.error(strings.error[7], '');
                    return;
                }
                CreateTag(cache.current, string);
            });
        });

    хуита, 22 Декабря 2014

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

    +157

    1. 1
    2. 2
    if ( isset( $woo_options['woo_style_disable'] ) && $woo_options['woo_style_disable'] != 'true' ) {} else {
        if ( $output != '' ) { echo $output; }

    см. {} else {
    Приятная неожиданность, учитывая, что строка не помещается на экран.

    Код взят из темы Canvas для Вордпресса.

    KEKC, 15 Декабря 2014

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

    +157

    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
    //full video url
    define("VideoUrl","https://www.youtube.com/watch?v=XbGs_qK2PQA");
    //extract ID
    $videoID=get_youtube_id(VideoUrl);
    echo $videoID; // will output : XbGs_qK2PQA
    //extract function
    function get_youtube_id($url,$debug='N'){
      $res = parse_url($url);
      if($debug=='Y'){
        print_r($res);
      }
      $query = $res['query'];
      $explode = explode('&',$query);
      $explode2 = explode('=',$explode[0]);
      return $explode2[1];
    }

    http://www.youtubemp3pro.com/api/
    самый оптимальный код на извлечение id видео с тытуба

    samuel1ee, 10 Декабря 2014

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