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

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

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Что это за бесячая стрелка на говнокоде, которая появляется при горизонтальном скроле?
    https://i.imgur.com/uRcKSDO.png
    
    Браузер - Opera. В FF, IE, Google Chrome - не воспроизводится. 
    Это заговр против Норвежских разработчиков?

    Her, 29 Января 2020

    Комментарии (13)
  3. 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)
  4. Куча / Говнокод #26039

    0

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

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

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

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

    Steve_Brown, 22 Ноября 2019

    Комментарии (13)
  5. 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)
  6. 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)
  7. Куча / Говнокод #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)
  8. PHP / Говнокод #25531

    0

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

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

    BoeHHblu_nemyx, 10 Апреля 2019

    Комментарии (13)
  9. 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)
  10. 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)
  11. 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)