1. PHP / Говнокод #26418

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if ($input->search_text!=""){
    		if ($input->search_text=="хуйня" or $input->search_text=="ХУЙНЯ" or $input->search_text=="Хуйня")
    			$this->result.="У нас серьезная компания и мы всякой хуйни на сайте не держим.";
    		else{
    		if (strlen($input->search_text)<2)
    			$this->result.="Строка поискового запроса должна состоять минимум из 2 символов.<br>Пожалуйста, измените Ваш запрос и повторите поиск.";
    		else{
    			$result.="Вы искали: <u><b>".$input->search_text."</b></u><br><br>";

    Вот такие вот пасхалки у серьёзных компаний. И такой код.

    Запостил: vistefan, 07 Февраля 2020

    Комментарии (118) RSS

    • XSS
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Жопорукие, даже пасхалку не могут сделать нормально!
      Ответить
    • Хуй, ня!
      Ответить
    • Можно поискать хуйню по запросу "ХуЙнЯ".
      Ответить
    • <?php
       
      $search_text = 0;
       
      if ($search_text=="хуйня") {
      			echo "У нас серьезная компания и мы всякой хуйни на сайте не держим.";
      }


      Угадайте, что выведет программа и почему я за «PHP».

      Спойлер:
      https://ideone.com/wGgwj8
      Ответить
      • else {
            $result.="Вы искали: <u><b>".$input->search_text."</b></u><br><br>";
            $result.="И нихуя не нашли.";
        }
        Ответить
        • <u><b> - это теги undefined behavior для PHP?
          Ответить
          • <u><b></u></b>
            Ответить
          • показать все, что скрытоvanished
            Ответить
            • С депрекейшном в «HTML» всё плохо: там таги то депрекейтят, то возвращают.

              <i><b><u><s> комитету не понравились тем, что они несемантические. Мол, представление будем описывать в CSS (font-weight:bold и т. п.), а в HTML — только семантику. А семантические таги — это <em><strong><ins><del>, которые подчёркивают важность информации.

              По факту же в вебе сплошь и рядом используют несемантические <div> и <span>, а семантические <article>, <aside> и т. п. редко вспоминают.
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • Бывает и хуже. Например, в «Твитторе»:
                  <div class="css-1dbjc4n r-1j3t67a"><div class="css-1dbjc4n r-18u37iz r-thb0q2"><div class="css-1dbjc4n r-1iusvr4 r-16y2uox r-5f2r5o r-m611by"></div></div><div class="css-1dbjc4n r-18u37iz r-thb0q2 r-1mi0q7o" data-testid="tweet"><div class="css-1dbjc4n r-1awozwy r-18kxxzh r-5f2r5o" style="flex-basis: 49px;"><div class="css-1dbjc4n r-18kxxzh r-1wbh5a2 r-13qz1uu">
                  Ответить
                  • P.S. Вот, например, если я хочу, чтобы в «Твитторе» аватарки были не круглыми, а квадратными, я добавляю в user.css правило:
                    .r-sdzlij {border-radius: 0 !important;}

                    Очевидное название класса, да?

                    P.S. Исправил. Я сначала указал класс «r-t23y2h» — это для твитов с картинками. Для аватарок используется класс «r-sdzlij».
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • надо ли говорить, что по ряду причин рандомные идентификаторы делают только пидоры
                        Ответить
                      • Зато представь, сколько софта для генерации написано, сколько промежуточных уровней абстракции, сколько специалистов по этой хуете, сколько рабочих мест.

                        Меня тут больше пугают не названия классов, а несколько классов у одного дива: <div class="css-1dbjc4n r-1iusvr4 r-16y2uox r-5f2r5o r-m611by">

                        Зачем? Зачем? Это так же ужасно, как <div class="color-red weight-bold margin-5 with-border">.
                        Ответить
                        • Генерация и автоматизация намекают, что рабочие места скорее были сокращены.
                          Ответить
      • Э-э-э... строка "хуйня" для сравнения автоматически преобразовывается в числo?
        Ответить
        • Какая хуйня )))
          Ответить
        • Так точно!

          Именно поэтому я боюсь == в «PHP». Лучше перебдеть и поставить === , чем перебздеть.

          Была дыра в каком-то форумном движке, позволявшая входить в учётки по неправильному паролю, потому что хэши сравнивались через == .
          Ответить
          • 0eЛЮБЫЕСИМВОЛЫ?
            Ответить
            • Типа того. Я даже в кишках интерпретатора «PHP» покопался, чтобы понять, как это работает.

              https://www.citi.io/wp-content/uploads/2018/03/2566-01.jpg
              Ответить
            • Нашёл упоминание этого багра:
              https://govnokod.ru/17118#comment254919

              Нашёл другой багор:
              https://govnokod.ru/25336#comment489975

              Мы ж ещё какие-то багры обсуждали с упоминанием форумных движков, но я не могу придумать, как нагуглить.
              Ответить
            • Ещё кое-что:
              https://govnokod.ru/18191#comment286615
              Ответить
      • а зачем сравнивать строку с числом, да еще и через == ?
        Ответить
        • В «PHP» никогда нельзя быть уверенным, что и с чем ты сравниваешь.
          https://ideone.com/xom4hB
          Ответить
          • В «PHP» и в «JavaScript» лучше никогда не использовать «==«.
            Ответить
          • Можно, если принудительно приводить к нужному типу и объявлять типы в сигнатуре. Ну и лучше пользоваться "===" а про "==" забыть.
            Ответить
            • https://ideone.com/w5n0md
              Чем мне тут помогли пыхоприведение и хвалёные пыхосигнатуры? Я трижды сказал ебучему шаблонизатору, что хочу сравнить строки, но нет, шаблонизатор, блять, умнее, ему лучше знать, что с чем я хотел сравнивать.
              Ответить
    • Было бы круто, если бы они применили мышиное обучение и показали именно ту хуйню, которую я и искал, но забыл название.
      Ответить
      • В их случае, думаю, проще было бы нанять экстрасенса для поиска хуйни по запросу.
        Ответить
    • показать все, что скрытоvanished
      Ответить
      • Я им даже пользовался. А до этого пользовался EMXGCC.

        В DJGPP v 2.04 появилась даже функция popen. Правда, работала она только для программ, которые написаны на нём же.
        Ответить

    Добавить комментарий