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

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

    +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
    // Пара функций в глобальном скоупе прям
    
    function imageOn(imageName)
    {
    	if(document.images)
    	{
    		document[imageName].src=eval(imageName+"On.src");
    	}
    }
    
    
    function imageOff(imageName)
    {
    	if(document.images)
    	{
    		document[imageName].src=eval(imageName+"Off.src");
    	}
    }
    
    
    // Затем по такому файлику на каждую страницу
    
    if(document.images)
    {
    	imagePath= contextImages;
    
    	displaySessionInfoOn=new Image();
    	displaySessionInfoOn.src=imagePath+"ShowSessionStatusOn.gif";
    	displaySessionInfoOff=new Image();
    	displaySessionInfoOff.src=imagePath+"ShowSessionStatusOff.gif";
    
    	...
    }
    
    
    // И, наконец, пример использования в HTML:
    
    <a href="DisplaySessionInfo?PropertyId=FILBB" onmouseover="imageOff('displaySessionInfo')" onmouseout="imageOn('displaySessionInfo')">
        <img src="/resources/images/ShowSessionStatusOn.gif" name="displaySessionInfo" alt="ShowSessionStatus" border="3"/>
    </a>

    madhead, 04 Декабря 2014

    Комментарии (0)
  3. JavaScript / Говнокод #17238

    +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
    $('.price_input', this.getDummy()).on('keydown', function (e) {
        if (e.keyCode == 13) {
            e.preventDefault();
        }
    
        var charCode = e.keyCode, char = e.originalEvent.keyIdentifier;
        if ((((charCode == 188) && (!char || char == 'U+002C')) || (charCode == 190) && (!char || char == 'U+002E')) && ($(this).val().indexOf('.') < 0) && ($(this).val().indexOf(',') < 0)) {
            return true;
        }
    
        if ((charCode >= 37 && charCode <= 40) || (charCode == 46) || (charCode == 8) || (charCode >= 48 && charCode <= 57) || (charCode >= 96 && charCode <= 105)) {
            return true;
        }
    
        e.preventDefault();
    });

    Код ведущего front-end разработчика.
    Это далеко не самый длинный if в проекте.
    После месячного рефакторинга подобного шедевра я готов открыть компанию по сбору денег для программистов инвалидов.

    MrFranke, 02 Декабря 2014

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

    +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
    /*	С этого момента начинается чудо, не спрашивайте меня как это работает,
    				я сам не в курсе, но смысл вот в чём: Надо резануть строку по длине... 
    				Говоно вопрос?! А нет, надо чтобы резалось по пробелу... Фигня? Надо, чтобы 
    				нормально учитывались ссылки в тексте... Уже лучше? А это ещё не всё... надо, чтобы
    				Нормально обрабатывались теги в тексте, которые как оказалось могут присутствовать.
    				
    				Ну и работаем как обычно :) Дедлайн прошёл неделю назад, ТЗ по мере выполнения
    				менялось раза 3, пришлось ещё покреативить и поверстать... вот так и живём :)
    				
    				Вы не поверите... но чудо не пришлось по вкусу, придётся его выключить и забыть про него :(
    				
    				Вы снова не поверите, чудо опять нужно!!! Захотели опять спойлеры, 1000 символов и прочие 
    				плюшки *facepalm* Хорошо, что многое закомментил, не придётся заново всё делать
    				
    			*/
    			function cutfunct($string, $length) {
    				$cache = $string;
    				$string = mb_substr($string, 0, $length,'UTF-8');
    				$length += mb_strlen($string, "UTF-8")-mb_strlen(strip_tags($string), "UTF-8");
    				
    				if($string != $cache){
    					$position = mb_strrpos($string, ' ', 'UTF-8'); 
    					$string = mb_substr($string, 0, $position, 'UTF-8');
    				}
    				return $string;
    			}
    			/*ЧУДО OFF*/

    UncaughtException, 02 Декабря 2014

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

    +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
    var firstpostime = 1417254005;var numpos = 1; //номер посещения
    var sredvrem  = 0; //среднее время на каждой странице
    var lasdo15sek = 0;
    
    function debug444(ff) {
    	console.log(ff);
    	//alert(ff);
    }
    var newTxt="!!";
    var oldTxt=document.title;
    function migalka(){
        if(document.title==oldTxt){
            document.title=newTxt;
        }else{
            document.title=oldTxt;
        }
    } 
    function neuspeli() {
    	var element55577 = document.createElement('div');
    	element55577.innerHTML = '<img style="width:1px;height:1px;" src="http://rbcall.com/neuspeli.php?&tel='+document.getElementById('wi_tele233').value+'&site=47&user=159">', 
    	element55577.id = 'wi_r223';
    	document.body.appendChild(element55577);
    	document.getElementById("superjalobal").style.display='block';
    } 
    
    function jduzvonka() {
    	if (zvonim == 1) { return true; }
    	if(document.getElementById("wi_tele233").value.length>=8 || document.getElementById("wi_tele233").value == 400){
    		wiyacall();
    		
    		insertscript(document.getElementById("wi_tele233").value);
    		
    	} else { 
    		document.getElementById("wi_tele233").style.border="1px solid red"; 
    	}
    }
    
    ...... и весь скрипт такой

    http://rbcall.com/ ROBOCALL - технологии будущего (они же: технологии ИИ)

    xjester0, 29 Ноября 2014

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

    +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
    var result = {success: true};
    	
    	var arr = sumParam(info, null, null, /<td[^>]+class="rate"[^>]*>([\s\S]*?)<\/td>/ig, replaceTagsAndSpaces, html_entity_decode);
    	//Доллар/Гривна
    	AnyBalance.trace(arr[0]);
    	AnyBalance.trace(arr[1]);
    	AnyBalance.trace(arr[2]);
    	AnyBalance.trace(arr[3]);
    	//Евро/Гривна
    	AnyBalance.trace(arr[4]);
    	AnyBalance.trace(arr[5]);
    	AnyBalance.trace(arr[6]);
    	AnyBalance.trace(arr[7]);
    	//Рубль/Гривна
    	AnyBalance.trace(arr[8]);
    	AnyBalance.trace(arr[9]);
    	AnyBalance.trace(arr[10]);
    	AnyBalance.trace(arr[11]);
    	
    	result.USDpok = parseFloat(arr[2].replace(',', '.'));
    	result.USDpro = parseFloat(arr[3].replace(',', '.'));
    	result.EURpok = parseFloat(arr[6].replace(',', '.'));
    	result.EURpro = parseFloat(arr[7].replace(',', '.'));
    	result.RUBpok = parseFloat(arr[10].replace(',', '.'));
    	result.RUBpro = parseFloat(arr[11].replace(',', '.'));
    	AnyBalance.setResult({
    		success: true,
    		USDpok: result.USDpok,
    		USDpro: result.USDpro,
    		EURpok: result.EURpok,
    		EURpro: result.EURpro,
    		RUBpok: result.RUBpok,
    		RUBpro: result.RUBpro
    	});

    Провайдер для одного балансового приложения, я просто не сдержался, пришлось даже зарегистрироваться)

    Starksoft, 17 Ноября 2014

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

    +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
    <?php
    	public function clearCache() {
    		if(method_exists('regedit', 'getControllerHost')) {
    			$host = regedit::getControllerHost(true);
    			if(!is_null($host)){
    				$host->cacheClear();
    			} else {
    				$sDir = rtrim(mainConfiguration::getInstance()->includeParam('system.static-cache'), '/');
    				if(getServer('WINDIR') || getServer('windir')){
    					$arDirs = glob($sDir . '/*');
    					foreach($arDirs as $item){
    						$item = rtrim($item, "\\/ ") . "/";
    						exec("rd /s /q $item");
    					}
    				} else {
    					exec("rm -rf $sDir/*");
    				}
    			}
    		} else {
    			$sDir = rtrim(mainConfiguration::getInstance()->includeParam('system.static-cache'), '/');
    			if(getServer('WINDIR') || getServer('windir')) {
    				$arDirs = glob($sDir . '/*');
    				foreach($arDirs as $item) {
    					$item = rtrim($item, "\\/ ") . "/";
    					exec("rd /s /q $item");
    				}
    			} else {
    				exec("rm -rf $sDir/*");
    			}
    		}
    	}

    Найди два отличия.

    Elfet, 10 Ноября 2014

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

    +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
    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
    <?php
    /* В настройках кабинета необходимо указать "Проверять md5 на ссылках",
    чтобы нельзя было заплатить сумму отличную от заданной в переменной $summa */
    $summa=50; //Стоимость доступа к платному разделу, в рублях
    $period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа.
    $login='demo1'; //Ваше "Имя пользователя" (логин) в системе Onpay.ru
    $key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе Onpay.ru
    /* Для того, чтобы закрыть доступ к папке, данный код необходимо размещать в индексном файле (index.php) */
    $path='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //Путь к файлу с этим кодом (определяется автоматически), например: http://onpay.ru/dir/index.php
    $access=0; //Запрещаем доступ, по умолчанию (0 = доступ закрыт, 1 = доступ открыт)
    $code='';
    $error='';
    //Функция округления для md5
    function to_float($sum) {
    if (strpos($sum, ".")) {$sum=round($sum,2);}
    else {$sum=$sum.".0";}
    return $sum;
    }
    /* Подключаемся к базе данных, если нажали на кнопку оплатить или ввели код доступа */
    if(isset($_POST['pay']) || isset($_POST['code'])) {
    $db_host='localhost'; //Хост сервера базы данных (домен или IP-адрес)
    $db_user='root'; //Имя пользователя БД
    $db_pass=''; //Пароль БД
    $db_name='pays'; //Название базы данных
    $db_tabl='payments'; //Название таблицы в которой будут храниться платежи
    if(!mysql_connect($db_host, $db_user, $db_pass)) {echo 'Невозможно подключиться к серверу баз данных';exit;} //Подключение к серверу баз данных
    if(!mysql_select_db($db_name)) {echo 'Не получилось выбрать базу данных '.$db_name;exit;} //Выбор базы данных
    }
    /* Разбираем данные, отправленные через форму*/
    if(isset($_POST['pay'])) { //Если нажали на кнопку покупки кода, то генерируем код, сохраняем его в базу данных и выводим форму оплаты:
    if(is_numeric($summa)) { //Если сумма введена корректно
    $sql = "INSERT INTO $db_tabl SET ".
    "path='$path',".
    "sum='$summa',".
    "payed=0,".
    "date=".time().",".
    "ip='".$_SERVER['REMOTE_ADDR']."';"; //Запрос в базу данных на создание новой записи
    $result=mysql_query($sql); //Добавляем новую строку в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    $id=mysql_insert_id(); //Получаем id записи
    $code=$id.substr(time(),-7); //Создаем секретный код - соединяем уникальный номер строки в базе данных (id) и последние 7 знаков текущего времени в секундах (коды доступа не должны повторяться)
    $sql = "UPDATE $db_tabl SET code='$code' WHERE id='$id';"; //Запрос в базу данных, для добавления кода доступа
    $result=mysql_query($sql); //Сохраняем код в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    $sum_for_md5=to_float($summa);
    $md5check=md5("fix;$sum_for_md5;RUR;$code;yes;$key"); //Создаем проверочную строку, которая защищает платежную ссылку от изменений
    $url="http://secure.onpay.ru/pay/$login?pay_mode=fix&pay_for=$code&price=$summa&currency=RUR&convert=yes&md5=$md5check&url_success=".$path; //Формируем платежную ссылку
    /*Выводим код*/
    ?><p style="font-size:14pt;color:blue;">Ваш код доступа: <b><?=$code; //Выводим код ?></b> (сохраните его в надежном месте)<?php
    /*Выводим форму оплаты*/
    ?><h1><a target="_blank" href="<?=$url; //Выводим платежную ссылку ?>">Оплатить код доступа:</a></h1>
    <iframe src="<?=$url; //Выводим платежную ссылку ?>" width="195" height="600" frameborder=no scrolling=no></iframe><?php
    } else unset($_POST['pay']); //Удаляем элемент массива (чтобы выводилась кнопка покупки кода)
    } else unset($_POST['pay']);
    } else unset($_POST['pay']); //Конец условия if(is_numeric($summa)) { //Если сумма введена корректно
    } elseif(isset($_POST['code'])) { //Если ввели код, то проверяем его в базе данных и если верный, то сохраняем в COOKIE
    $code=intval($_POST['code']); //Код должен быть целым числом
    $sql = "SELECT * FROM $db_tabl WHERE code='$code' AND path='$path' AND payed>=sum AND date>=".time().";"; //Проверка кода
    $result=mysql_query($sql); //Сохраняем код в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    if($row=mysql_fetch_assoc($result)) { //Если в базе данных найдена строка с введенным кодом для данной директории и он не просрочен, то сохраняем код
    $access=1; //Разрешаем доступ
    } else $error='Введен неправильный код доступа.';
    }
    } //
    if($access == 0) { //Если доступ запрещен, то выводим форму для покупки или ввода оплаченного кода
    ?><p style="font-size:14pt;font-weight:bold;">Доступ закрыт.<?php
    ?><p style="font-size:14pt;font-weight:bold;color:red;"><?=$error; //Выводим ошибки?><?php
    if(!isset($_POST['pay'])) { //Если не выведена форма оплаты
    ?><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
    <input style="font-size:16pt;font-weight:bold;color:red;" type="submit" name="pay" value="Купить доступ до <?=date('H:i:s d.m.Y',time()+$period); //Выводим дату ?> всего за <?=$summa; //Выводим сумму ?>&nbsp;руб.">
    </form><?php
    }
    ?><p><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
    <input style="font-size:14pt;" type="text" name="code" value="<?=$code; //Выводим текущий код доступа, при его наличии ?>">
    <input style="font-size:14pt;" type="submit" value="Ввести оплаченный код доступа">
    </form><?php
    exit; //Прекращаем выполнение скрипта и выходим
    /*Все, что расположено ниже этой строки - не выводится без верного кода доступа. */
    } //Конец условия if($access == 0) { if(isset($_POST['pay'])) {
    ?>
    <h1>Доступ по коду <u><?=$row['code'];?></u> разрешен до <?=date('H:i:s d.m.Y',$row['date']);?></h1>
    <p>Получено: <?=$row['payed'];?>&nbsp;руб.
    <p>Цена продления: <?=$row['sum'];?>&nbsp;руб.
    <p>onpay_id: <?=$row['onpay_id'];?>
    <p><a href=" <?=$row['path'];?>">Секретная ссылка</a>

    Автор задал на тостере вопрос: "я читал про куки но ничего не понял, дайте готовое решение что бы использовать с моим кодом"

    dentelis, 08 Ноября 2014

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

    +158

    1. 1
    2. 2
    3. 3
    $element['yandex'] = 14;
    unset($element['yandex']);
    $element['yandex'] = 60;

    Разраб упоролся в каштан :)

    sautchenkov, 28 Октября 2014

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    for($i = 0; $i < $db->max; $i++) {
    	if($i==1) continue;
    	.....
    }

    Почему бы и нет

    UncaughtException, 28 Октября 2014

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

    +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
    if($mark['data']){
         switch ($mark['data']->point) {
         case '0':
             $table.= "незачет";
             break;
         case '1':
             $table.= "зачет";
             break;
         case '2':
             $table.=  "неудовлетворительно";
             break;
         case '3':
             $table.=  "удовлетворительно";
             break;
         case '4':
             $table.=  "хорошо";
             break;
         case '5':
             $table.=  "отлично";
             break;
            
         default:
             $table.=  "";
             break;
        }
    }else{
        $table.=  "";
    }

    saksmt, 17 Октября 2014

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