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

    +147

    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
    Мой скромный говнокод для любителей фильтрации и xss
    При записи в базу 
    $msg = stripslashes(htmlspecialchars(trim($_POST['msg']))); // Очищаем от мусора
    Вывод из базы 
     
    function post($text, $html=true, $nl2br = true, $smiles = true, $bbcode = true) 
    {
     if ($html)
     {
     $text=html_entity_decode($text, ENT_QUOTES, 'UTF-8'); // в базе в htmllenties обратная перекодировка
     }
     if($smiles)
     { 
     $text = smiles($text);
     }
     if($bbcode)
     {
     $text = bbcode($text);
     }              
     if($nl2br)
     {
     $text = nl2br($text);
     } 
     
     return $text;
    }

    Недавно нашел в своем скрипте блога )

    Danis92, 09 Ноября 2010

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // и нафига я использовал тут исключения? :)
      try {
        if(!trim($to)) throw new Exception('aдpecaт');
        if(!trim($in['msg'])) throw new Exception('тeкcт');
        if(!trim($in['subj'])) throw new Exception('тема');
      } catch (Exception $e) {
        raise_error('Отсутствует '.$e->GetMessage().' сообщения.', 'write.php?to='.$to.'&'.SID);

    да, нафига?)

    DmitryDick, 08 Ноября 2010

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

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // Emulate register_globals on
    if (!ini_get('register_globals')) {
        $superglobals = array($_SERVER, $_ENV,
            $_FILES, $_COOKIE, $_POST, $_GET);
        if (isset($_SESSION)) {
            array_unshift($superglobals, $_SESSION);
        }
        foreach ($superglobals as $superglobal) {
            extract($superglobal, EXTR_SKIP);
        }
        ini_set('register_globals', true);
    }

    PHP-Fusion, эмулятор register_globals

    Мартин, 08 Ноября 2010

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

    +171

    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
    function cp1251_to_utf8 ($txt)  {
       $in_arr = array (
           chr(208), chr(192), chr(193), chr(194),
           chr(195), chr(196), chr(197), chr(168),
           chr(198), chr(199), chr(200), chr(201),
           chr(202), chr(203), chr(204), chr(205),
           chr(206), chr(207), chr(209), chr(210),
           chr(211), chr(212), chr(213), chr(214),
           chr(215), chr(216), chr(217), chr(218),
           chr(219), chr(220), chr(221), chr(222),
           chr(223), chr(224), chr(225), chr(226),
           chr(227), chr(228), chr(229), chr(184),
           chr(230), chr(231), chr(232), chr(233),
           chr(234), chr(235), chr(236), chr(237),
           chr(238), chr(239), chr(240), chr(241),
           chr(242), chr(243), chr(244), chr(245),
           chr(246), chr(247), chr(248), chr(249),
           chr(250), chr(251), chr(252), chr(253),
           chr(254), chr(255)
       );
    
       $out_arr = array (
           chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
           chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
           chr(208).chr(149), chr(208).chr(129), chr(208).chr(150),
           chr(208).chr(151), chr(208).chr(152), chr(208).chr(153),
           chr(208).chr(154), chr(208).chr(155), chr(208).chr(156),
           chr(208).chr(157), chr(208).chr(158), chr(208).chr(159),
           chr(208).chr(161), chr(208).chr(162), chr(208).chr(163),
           chr(208).chr(164), chr(208).chr(165), chr(208).chr(166),
           chr(208).chr(167), chr(208).chr(168), chr(208).chr(169),
           chr(208).chr(170), chr(208).chr(171), chr(208).chr(172),
           chr(208).chr(173), chr(208).chr(174), chr(208).chr(175),
           chr(208).chr(176), chr(208).chr(177), chr(208).chr(178),
           chr(208).chr(179), chr(208).chr(180), chr(208).chr(181),
           chr(209).chr(145), chr(208).chr(182), chr(208).chr(183),
           chr(208).chr(184), chr(208).chr(185), chr(208).chr(186),
           chr(208).chr(187), chr(208).chr(188), chr(208).chr(189),
           chr(208).chr(190), chr(208).chr(191), chr(209).chr(128),
           chr(209).chr(129), chr(209).chr(130), chr(209).chr(131),
           chr(209).chr(132), chr(209).chr(133), chr(209).chr(134),
           chr(209).chr(135), chr(209).chr(136), chr(209).chr(137),
           chr(209).chr(138), chr(209).chr(139), chr(209).chr(140),
           chr(209).chr(141), chr(209).chr(142), chr(209).chr(143)
       );
    
       $txt = str_replace($in_arr,$out_arr,$txt);
       return $txt;
    }

    iconv - для лохов!!!111
    Все тотже программист с опытом 12 лет.

    warider, 08 Ноября 2010

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

    +145

    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
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    /**
         * Получаем права на объект.
         *
         * @param  string $fullHref
         * @param  string $method
         * @param  string $params
         * @param  string $type
         * @return object $this
         * @access public
         */
    
        public function getPermsHref( $object, $method = '*', $params = false, $type = 'module', $url = false )
        {
           $registr = URegistry::getInstance();
           $sql     = $registr->SQuery->getAcl();
    
           if ( $type == 'url' && $url )
             {
               $sql['where'] = "`o`.`type` = 'url' and `o`.`href` = '".$url."'";
               $ac_type      = 'url';
             }
           elseif ( $type == 'module' )
             {
                $sql['where'] = "(`o`.`type` = 'module') and `o`.`name` = '".$object."'";
                if ( $method != '*' )
                    $sql['where'] .= ' or `o`.`href` = "'.$object.'/'.$method.'"';
    
                $ac_type = 'module';
             }
           else
             {
                //TODO:wtf?
             }
    
            $registr->db->build_query($sql)->safe_sql($ac_type, $this->gid)->exec();
            $perms = $registr->db->fetch_object();
    
            if ( !$perms || !$perms->permission || !$perms->groupid )
                throw new NotFoundObject();
    
            $this->perms       = $perms->permission;
            $this->groupObject = explode(',', $perms->groupid);
            $this->priv_lengh  = strlen($perms->permission);
    
            return $this;
        }
    
        /**
         * Проверка прав на объект
         *
         * @param  mixed $priv
         * @return array
         * @access public
         */
    
        public function checkPremsObject( $priv = false )
        {
            $pruf = array();
            $priv = empty($priv) ? $this->perms : $priv;
    
            if ( $this->priv_lengh <= 0 or !in_array($this->gid, $this->groupObject) )
                return false;
    
            for ( $gi = 0; $gi < $this->priv_lengh; $gi++ )
            {
                if ( in_array($priv[$gi], $this->privileges['read']) )   $pruf['read'] = true;
                if ( in_array($priv[$gi], $this->privileges['write']) )  $pruf['write'] = true;
                if ( in_array($priv[$gi], $this->privileges['delete']) ) $pruf['delete'] = true;
            }
    
            return $pruf;
        }

    Проверка прав.
    Что скажите?

    ololo, 07 Ноября 2010

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

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    switch ($_GET['otdel']) {
    	case null:
    		echo "Название отдела №1";
    		$_GET['otdel'] = 1;
    	break;
    	case 1:
    		echo "Название отдела №1";
    	break;
    
    	case 11:
    // и так далее

    Отдел по умолчанию.
    Вариантов написать толково - тьма. Попробуем?

    AndryG, 07 Ноября 2010

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function testPrint($str){
    
    
    	return $str;        
    
    }
    print testPrint("<br>");

    Недавно видел такую полезную функцию:)

    dexif, 07 Ноября 2010

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

    +193

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
     * Посылает команду удалённой машине
     * перейти по указанному адресу.
     * Рекомендуется использовать вместо Header('Location: ...');
     */
    function GO( $address)
    {
         Header('Location: '.$address);
    }

    Мартин, 06 Ноября 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    foreach($new as $key => $value)
    {
    	$config[$key] = $value;
    }

    stasoft, 06 Ноября 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private function trailing_slash_check($str)
         {
              if ((strrpos($str, '/') + 1) != strlen($str))
              {
                   $str = $str.'/';
              }
              
              return $str;
         }

    stasoft, 06 Ноября 2010

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