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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    $transaction_number = (int)$this->security->xss_clean(trim(htmlspecialchars(substr($transaction_number, 0, 50))));
    
    if(!$transaction_number OR $transaction_number < 0)
    			$transaction_number = 0;

    один из наших программистов пишет.
    CodeIgniter.

    Запостил: themars, 07 Сентября 2011

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

    • > $this->security->xss_clean
      Я узнал CI!
      Ответить
    • упорно пытался найти говно, в функциях, пока не увидел (int)

      уверен 100%, что это не долбоебизм, а копипаст
      Ответить
      • И что плохого в (int)?
        Ответить
        • Насильственное принуждение к целочисленности
          Ответить
        • В int нет ничего плохого, но раз уж приводят к целочисленному типу, то вся эта вереница "антихакир" xss_clean(trim(htmlspecialchars нафиг не сдалась.

          И соответственно вариант !$transaction_number (NULL, FALSE) невозможен.
          Ответить
        • при чем здесь int, здесь вся суть в том, что зачем делать дорогущую красивую прическу, если сразу как ее закончили нужно будет побриться под ноль?
          Ответить
    • $transaction_number = intVal( $transaction_number );
      $transaction_number = $transaction_number > 0 ? $transaction_number : 0;

      как то так? я правильно понял задумку автора?
      Ответить
      • Да ;) только все это и в одну строку сделать можно)
        Ответить
        • так?

          $tn = (int)$tn > 0 ? (int)$tn : 0;

          Но в этом случае дважды используется приведение типов :)
          Ответить
          • $tn = abs(intval($tn));
            Или не?

            А вообще сабж пытается выудить из введённых данных то, что ему нужно, даже в том случае, если туда внапихали SQL-инъекций, html-кода и ещё неизвестно чего. Автор заботится о хакире пользователе, чо =)
            Ответить
            • Нет.
              echo abs(-5); //5

              Аффтар берет первую часть строки в 50 знаков (ОГО!) - это те данные которые ему нужны, потом антихакер, потом приведение.

              Так что вы дважды неправы.
              Ответить
    • показать все, что скрытоvanished
      Ответить

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