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

    +65

    1. 1
    $needDied = $this->battle_data['type'] == 104 ? true : false;

    AndryG, 18 Июня 2012

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

    +153

    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
    <ul class="menu">
      <li class="leaf first">
        <a href="http://example.com/app1?operator=<!--{cke_protected}
          <?php echo($user->profile_crm_name); ?>
          -->" target="_blank">Заявка №1</a>
      </li>
      <li class="leaf">
        <a href="http://example.com/app2?operator=<!--{cke_protected}
          <?php echo($user->profile_crm_name); ?>
          -->" target="_blank">Заявка №2</a>
      </li>
      <!-- ... еще десяток ... -->
    </ul>

    Drupal, приложение для колл-центра, пользовательский блок со списком ссылок. {cke_protected} - защита от WYSIWYG-редактора.

    Спасибо, что хоть без SQL

    scriptin, 17 Июня 2012

    Комментарии (3)
  3. PHP / Говнокод #10986

    +56

    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
    <?php
    
    define(STATIC_SALT, "herz_salt");
    
    function generateRandChar()
    {
      $chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
      
      $numChars = strlen($chars);
      
      $string = '';
      
      for ($i = 0; $i < rand(1, 7); $i++) 
      {
          $string .= substr($chars, rand(1, $numChars) - 1, 1);
      }
      
      return $string;
    }
    
    $time = microtime(true) / 10000;
    
    $str = $time - floor($time);
    
    $str = (string)$str;
    
    $str = preg_replace('/0./', '', $str);
    
    $deleteNum = strlen($str);
    
    if($deleteNum  <= 5)
    {
        $str = substr($str, rand(0, 4));
    }
    elseif($deleteNum > 5 && $deleteNum  <= 10)
    {
        $str = substr($str, rand(5, 9));
    }
    else $str = substr($str, rand(7, 9));
    
    if(strlen($str) == 0)
    {
        $str = rand(0, 15000);
    }
    
    sleep(5);
    
    $str = sha1(md5($str . STATIC_SALT . microtime(true))) . generateRandChar();
    
    echo $str;
    
    ?>

    паранойя в действии :)

    Archont12, 16 Июня 2012

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

    +50

    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
    // $conn - mysqli_object
     $query = "insert into orders values
                ('0', '".$customerid."', '".$_SESSION['total_price']."',
                '".$date."', '".PARTIAL."', '".$ship_name."',
                '".$ship_address."', '".$ship_city."',
                '".$ship_state."', '".$ship_zip."',
                '".$ship_phone."', '".$ship_mail."')";
      $result = $conn->query($query) ;
      if (!$result) {
        return false;
      }
    //amount - float
      $query = "select orderid from orders where
              customerid = '".$customerid."' and
              amount > (".$_SESSION['total_price']."-.001) and
              amount < (".$_SESSION['total_price']."+.001) and
              date = '".$date."' and
              order_status = 'PARTIAL' and
              ship_name = '".$ship_name."' and
              ship_address = '".$ship_address."' and
              ship_city = '".$ship_city."' and
              ship_state = '".$ship_state."' and
              ship_zip = '".$ship_zip."' and
              ship_country = '".$ship_country."'";
      $result = $conn->query($query);
      if ($result->num_rows > 0) {
        $order = $result->fetch_object();
        $orderid = $order->orderid;
      } else {
        return false;
      }

    Источник: Люк Веллинг и Лора Томсон: Разработка веб-приложений с помощью PHP и MySQL(4 издание стр 594)

    Как выдрать last_insert_id? Очень просто: нужно составить запрос на select вставленного orderid с указанием всех вставленных значений в поля, а для флоата указать на всякий случай интервал, и только тогда можно из выборки извлечь вставленный id

    ps: констатна PARTIAL нигде не задаётся=)

    RedMonkey, 16 Июня 2012

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

    +64

    1. 1
    2. 2
    3. 3
    4. 4
    $res = mysql_query(...);
    if($res == 'true'){
        .....
    }

    Может кому то покажутся знакомы эти строки, но те, кто не знают Е. Попова могут над ним поржать.

    BioMan, 15 Июня 2012

    Комментарии (68)
  6. PHP / Говнокод #10971

    +67

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?if($metaid == 16 || $metaid == 44 || $metaid == 52 || $metaid == 60 || $metaid == 90 ||
     $metaid == 132 || $metaid == 136 || $metaid == 174 || $metaid == 192 || $metaid == 196 || 
    $metaid == 238 || $metaid == 388 || $metaid == 462 || $metaid == 470 || $metaid == 480 || 
    $metaid == 500 || $metaid == 530 || $metaid == 533 || $metaid == 548 || $metaid == 580 || 
    $metaid == 584 || $metaid == 662 || $metaid == 666 || $metaid == 678 || $metaid == 690 || 
    $metaid == 772 || $metaid == 780 || $metaid == 833){?>на<?} else if($metaid == 250 || 
    $metaid == 254 || $metaid == 258 || $metaid == 704){?>во<?}else{?>в<?}?>

    Одно из пятнадцати подобных условий в файле. Было написано в одну строку, поэтому тело условия увидели не сразу. Разнес по строкам для удобства чтения.

    kreksoverzum, 15 Июня 2012

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

    +57

    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
    // Сортируем по дате {
    foreach ($arfiles as $key => $value)
    {
        $data = file_get_contents($fullcatpage.$arfiles[$key]);
        $pubdata_text = articlesparam('pubdate',$data); 
        $arfiles[$key] = $pubdata_text . '-' . $value;
    }
    sort($arfiles);
    foreach ($arfiles as $key => $value)
    {
        $arfiles[$key] = substr($value, 11);
    }
    // }

    1. прикрутить префикс
    2. отсортировать
    3. открутить префикс

    Vasiliy, 15 Июня 2012

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

    +61

    1. 1
    $istmount = mysql_num_rows(mysql_query("SELECT `cid` FROM `usermail` WHERE `date` >='".date('Y-m-d', strtotime('-1 month'))."'"));

    Подсчет количества подписчиков за прошлый месяц. Про count(*) автор, похоже, не в курсе...
    И, чтобы не было вопросов про формат поля даты:
    date - это varchar(11) :)

    domaster, 15 Июня 2012

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

    +61

    1. 1
    2. 2
    3. 3
    $translitReplace=array(array('.', ',', ' ', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'),
      array('', '', '-', 'A', 'B', 'V', 'G', 'D', 'E', 'JO', 'ZH', 'Z', 'I', '', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'KH', 'C', 'CH', 'SH', 'SHH', '', 'Y', '', 'E', 'JU', 'JA'));
      if(!$_POST['uriNews']) $_POST['uriNews']=strtolower(str_replace($translitReplace[0], $translitReplace[1], mb_strtolower($_POST['titleNews'], 'utf-8')));

    Личное творчество. :)
    Это когда начальник грозно дышит в ухо "гдебля", ты отвечаешь "щабля", ударяешься оземь и оборачиваешься птицей с радостным "вобля", а потом смотришь собственный код и думаешь "нубля".

    skryisli, 15 Июня 2012

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

    +53

    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
    function CP1251toUTF8($string) {
        $out = '';
        for ($i = 0; $i < strlen($string); ++$i) {
            $ch = ord($string{$i});
            if ($ch < 0x80)
                $out .= chr($ch);
            else
            if ($ch >= 0xC0)
                if ($ch < 0xF0)
                    $out .= "\xD0" . chr(0x90 + $ch - 0xC0); // А-Я, а-п (A-YA, a-p) 
                else
                    $out .= "\xD1" . chr(0x80 + $ch - 0xF0); // р-я (r-ya) 
                    else
                switch ($ch) {
                    case 0xA8: $out .= "\xD0\x81";
                        break; // YO 
                    case 0xB8: $out .= "\xD1\x91";
                        break; // yo 
    // ukrainian 
                    case 0xA1: $out .= "\xD0\x8E";
                        break; // Ў (U) 
                    case 0xA2: $out .= "\xD1\x9E";
                        break; // ў (u) 
                    case 0xAA: $out .= "\xD0\x84";
                        break; // Є (e) 
                    case 0xAF: $out .= "\xD0\x87";
                        break; // Ї (I..) 
                    case 0xB2: $out .= "\xD0\x86";
                        break; // I (I) 
                    case 0xB3: $out .= "\xD1\x96";
                        break; // i (i) 
                    case 0xBA: $out .= "\xD1\x94";
                        break; // є (e) 
                    case 0xBF: $out .= "\xD1\x97";
                        break; // ї (i..) 
    // chuvashian 
                    case 0x8C: $out .= "\xD3\x90";
                        break; // ? (A) 
                    case 0x8D: $out .= "\xD3\x96";
                        break; // ? (E) 
                    case 0x8E: $out .= "\xD2\xAA";
                        break; // ? (SCH) 
                    case 0x8F: $out .= "\xD3\xB2";
                        break; // ? (U) 
                    case 0x9C: $out .= "\xD3\x91";
                        break; // ? (a) 
                    case 0x9D: $out .= "\xD3\x97";
                        break; // ? (e) 
                    case 0x9E: $out .= "\xD2\xAB";
                        break; // ? (sch) 
                    case 0x9F: $out .= "\xD3\xB3";
                        break; // ? (u) 
                }
        }
        return $out;
    }

    iconv? Не, не слышал.

    7ion, 14 Июня 2012

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