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

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    h1{color: #b60000; font-size: <?php if( $dop_for_evm==1 ){echo '3.5vw;';} else {echo '30px;';}?> line-height: 1.1;padding-right: 5%; padding-left: 5%; text-align: center;}
    h2{font-size:<?php if( $dop_for_evm==1 ){echo '2.8vw;';} else {echo '30px;';}?>padding-right: 5%; padding-left: 5%; text-align: center;}
    .h2{font-size: <?php if( $dop_for_evm==1 ){echo '2.2vw;';} else {echo '28px;';}?>padding-right: 5%; padding-left: 5%; text-align: center;}
    h3{font-size: <?php if( $dop_for_evm==1 ){echo '2.6vw;';} else {echo '29px;';}?>padding-right: 5%; padding-left: 5%; text-align: center;}
    h4{font-size: <?php if( $dop_for_evm==1 ){echo '2.6vw;';} else {echo '29px;';}?>padding-right: 5%; padding-left: 5%; text-align: center;}
    h5{font-size: <?php if( $dop_for_evm==1 ){echo '2.6vw;';} else {echo '29px;';}?>padding-right: 5%; padding-left: 5%; text-align: center;}
    h6{font-size: <?php if( $dop_for_evm==1 ){echo '2.6vw;';} else {echo '29px;';}?>padding-right: 5%; padding-left: 5%; text-align: center;}

    zooks, 30 Ноября 2019

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

    0

    1. 1
    do { code = randomCode(); } while (code.contains("FUCK"));

    Пользователь с ником «Чапаев» опубликовал скриншот рекламного SMS-сообщения от
    сбербанка, содержащего код «CRYVKILLJEWS», что можно перевести с английского
    как «плачь, убивай евреев».

    Интересно, а как генерируют все эти случайные коды? Там ведь много чего вылезти может... Например, мне от банка приходят 4-хзначные коды, но я не помню, чтобы пришли, скажем, 4 одинаковые цифры. Не знаю, случайность ли это или алгоритм такой.

    (проверочный код: 8bog)

    Steve_Brown, 22 Ноября 2019

    Комментарии (13)
  4. C# / Говнокод #25990

    0

    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
    public class HttpQueryNameValueCollection : NameValueCollection
        {
            private ParallelLoopResult _parallelLoopResult;
    
            public override string ToString()
            {
                List<string> result;
                result = new List<string>();
                _parallelLoopResult = Parallel.ForEach(AllKeys, p =>
                {
                    if (BaseGet(p) != null)
                        result.Add(p + "=" + Get(p));
                });
                return string.Join("&", result);
            }
        }

    Формирование ссылки с query-параметрами недостаточно быстро, поэтому нужно это сделать в параллель :D

    adoconnection, 24 Октября 2019

    Комментарии (13)
  5. Lua / Говнокод #25829

    0

    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
    if self.Weapon:GetNextPrimaryFire() < CurTime() then
    	if GetConVarNumber( "ma2_togglechargeui" ) == 1 then
    		if (self.Charge-self.DmgMin)/self.DmgMax*100<=10 then
    			ply:SetNWString("chargebar","██")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=20 then
    			ply:SetNWString("chargebar","████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=30 then
    			ply:SetNWString("chargebar","██████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=40 then
    			ply:SetNWString("chargebar","████████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=50 then
    			ply:SetNWString("chargebar","██████████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=60 then
    			ply:SetNWString("chargebar","████████████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=70 then
    			ply:SetNWString("chargebar","██████████████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=80 then
    			ply:SetNWString("chargebar","████████████████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100<=90 then
    			ply:SetNWString("chargebar","██████████████████")
    		elseif (self.Charge-self.DmgMin)/(self.DmgMax-self.DmgMin)*100>90 then
    			ply:SetNWString("chargebar","████████████████████")
    			ply:SetNWBool("chargemaxxxed",true)
    		end
    	end
    end

    https://steamcommunity.com/sharedfiles/filedetails/?id=1825542758

    amd, 11 Сентября 2019

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

    0

    1. 1
    2. 2
    3. 3
    We could replace the nonce with a deterministic value, but it's not entirely clear what the cryptographic implications are. At the very least, it allows attackers to obverse that a secret has changed, or that it has changed back to a previously observed value.
    
    https://github.com/edolstra/rfcs/blob/nix-encryption/rfcs/0005-nix-encryption.md

    Продолжаем наблюдения

    CHayT, 04 Июня 2019

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

    0

    1. 1
    2. 2
    В "PHP" одинарные кавычки быстрее, чем двойные.
    https://habr.com/ru/company/alfa/blog/447416/

    Какой анскилл )))

    BoeHHblu_nemyx, 10 Апреля 2019

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

    +1

    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
    function preventSelection(element){
      var preventSelection = false;
    
      function addHandler(element, event, handler){
        if (element.attachEvent) 
          element.attachEvent('on' + event, handler);
        else 
          if (element.addEventListener) 
            element.addEventListener(event, handler, false);
      }
      function removeSelection(){
        if (window.getSelection) { window.getSelection().removeAllRanges(); }
        else if (document.selection && document.selection.clear)
          document.selection.clear();
      }
      function killCtrlA(event){
        var event = event || window.event;
        var sender = event.target || event.srcElement;
    
        if (sender.tagName.match(/INPUT|TEXTAREA/i))
          return;
    
        var key = event.keyCode || event.which;
        if (event.ctrlKey && key == 'A'.charCodeAt(0))  // 'A'.charCodeAt(0) можно заменить на 65
        {
          removeSelection();
    
          if (event.preventDefault) 
            event.preventDefault();
          else
            event.returnValue = false;
        }
      }
    
      // не даем выделять текст мышкой
      addHandler(element, 'mousemove', function(){
        if(preventSelection)
          removeSelection();
      });
      addHandler(element, 'mousedown', function(event){
        var event = event || window.event;
        var sender = event.target || event.srcElement;
        preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
      });
    
      // борем dblclick
      // если вешать функцию не на событие dblclick, можно избежать
      // временное выделение текста в некоторых браузерах
      addHandler(element, 'mouseup', function(){
        if (preventSelection)
          removeSelection();
        preventSelection = false;
      });
    
      // борем ctrl+A
      // скорей всего это и не надо, к тому же есть подозрение
      // что в случае все же такой необходимости функцию нужно 
      // вешать один раз и на document, а не на элемент
      addHandler(element, 'keydown', killCtrlA);
      addHandler(element, 'keyup', killCtrlA);
    }

    Долбоёбы борются с ветряными мельницами.

    gost, 05 Января 2019

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

    0

    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
    <?php
    if(isset($_GET['action']) && $_GET['action']=="add"){
            $id=intval($_GET['id']);
            if(isset($_SESSION['cart'][$id])){
            $_SESSION['cart'][$id]['quantity']++;
            }else{
    $sql_s="SELECT * FROM products
    WHERE id_product={$id}";
    $query_s=mysqli_query($sql_s);
    if(mysqli_num_rows($query_s)!=0){
    $row_s=mysqli_fetch_array($query_s);
                    $_SESSION['cart'][$row_s['id_product']]=array(
                    "quantity" => 1,
                    "price" => $row_s['price']  );
                    }else{
                    $message="This product id it's invalid!"; } } } ?>
    <h1>Product List</h1>
                    <?php
                   if(isset($message)){
                   echo "<h2>$message</h2>";  }
                   ?>
    <table>
    <tr>
                <th>Name</th>
                <th>Description</th>
                <th>Price</th>
                <th>Action</th>
    </tr>
            <?php
    $mysqli = new mysqli('……','root','……','tutorials');
    $sql = 'SELECT name,description,price, id_product FROM products'; // select from mysql
    $result = $mysqli->query($sql);  
    while($row = $result->fetch_array()){
        ?>
            <tr>
                <td><?php echo $row['name'] ?></td>
                <td><?php echo $row['description'] ?></td>
                <td><?php echo $row['price'] ?>$</td>
    <td><a href="index.php?page=products&action=add&id=<?php echo $row['id_product'] ?>">Add to cart</a></td>
            </tr>
    <?php
        }
    ?>
    </table>

    строки:
    2 - Входящую переменную так никто не проверяет. Есть функции filter_input
    3 - $_GET['id'] без проверки на существовании
    9 - mysqli_query - 1) аргумент, Идентификатор соединения. 2) сам запрос
    10 - процесс проверки num_rows глупый. Есть 0 ( ложь ), либо в остальных случаях истина.
    12 - мы выбивали из запроса id_product чтобы узнать и подставить значение как ключ $_SESSION['cart'][$row_s['id_product']] ??? Уверяю, я знаю уже ключ: $_SESSION['cart'][$id]
    30 - Глупая, тупая ошибка новичков. Постоянно на каждой логике кода, устанавливают новое соединение с бд. Нравится в постели оргия, любите много и сразу?

    Говнокодер: rita345
    https://php.ru/forum/threads/this-product-id-its-invalid.74253/

    MouseZver, 13 Декабря 2018

    Комментарии (13)
  10. Java / Говнокод #25163

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public void testGetClosedStatuses() {
        List<FooStatus> expectedStatuses = Arrays.asList(
                FooStatus.CANCELLED,
                FooStatus.COMPLETED,
                FooStatus.REJECTED);
    
        List<FooStatus> closedStatuses = fooService.getClosedStatuses();
    
        assertThat(closedStatuses, containsInAnyOrder(expectedStatuses.toArray());
    }

    Берём массив и преобразуем его в список. Чтобы использовать этот список, преобразуем его в массив.

    wissenstein, 06 Декабря 2018

    Комментарии (13)
  11. Куча / Говнокод #25040

    +1

    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
    А напишите кто-нибудь мобильное приложение для видеосвязи в десять строчек, 
    которое не требует аккаунта, серверов и вообще ничего, кроме самого смартфона.
    Просто по СМС скидывает адресату свой текущий IP, который ему на нынешнюю 
    секунду выдал опсос, и потом они тупо по UDP друг другу кидают поток пожатого 
    любым популярным кодеком видео. Если датаграмма не дойдёт, ну заикнётся видео, 
    хер с ним. Можно одноразовый ключ кидать той же СМС, ну просто на всякий случай 
    (допустим, IP прямо посреди разговора поменяется, чтобы не улетело неведомо кому).
    
    Такая вещь сама по себе не появится, потому что её нельзя пафосно запатентовать, 
    закопирастить протоколы и алгоритмы и потом монетизировать. 
    В ней нет вообще ничего. Софт-пустое-место. Возьми данные из A и положи в B. 
    Камера→netcat→экран. Поэтому её надо самим писать, никто больше не сделает.
    Оно, конечно, будет СМС поджирать, но их в пакетах с нормальным траффиком всё 
    равно хренова тонна.

    Идея стырена из бездны. Выжпрограммисты, чо.
    Только не понял, все равно хотя бы у одного должен быть белый IP с открытыми портами (а в сотовой сети такое вообще бывает?).

    Steve_Brown, 30 Октября 2018

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