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

    +157

    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
    <?php
    class smth {
        protected static $MARK_UNDEFINED = 'Undefined';
        protected static $MARK_F  = 'ECTS-F';
        protected static $MARK_FX = 'ECTS-FX';
        protected static $MARK_E  = 'ECTS-E';
        protected static $MARK_D  = 'ECTS-D';
        protected static $MARK_C  = 'ECTS-C';
        protected static $MARK_B  = 'ECTS-B';
        protected static $MARK_A  = 'ECTS-A';
    
        protected function getECTSMark($rate, $current, $examRate)
        {
            $color = self::$MARK_UNDEFINED;
            if ($current > 0) {
                $percent = $rate / $current;
                if ($examRate !== NULL AND $examRate < 22)
                    $color = self::$MARK_FX;
                elseif ($percent < 0.31)
                    $color = self::$MARK_F;
                elseif ($percent < 0.60)
                    $color = self::$MARK_FX;
                elseif ($percent < 0.65)
                    $color = self::$MARK_E;
                elseif ($percent < 0.71)
                    $color = self::$MARK_D;
                elseif ($percent < 0.85)
                    $color = self::$MARK_C;
                elseif ($percent < 0.95)
                    $color = self::$MARK_B;
                else
                    $color = self::$MARK_A;
            }
            return $color;
        }
    }

    Сижу и думаю, как это вообще можно как-то.. отговнокодить? О_о

    xamgore, 05 Марта 2015

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

    +170

    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
    public function action_ajaxlogin()
    	{
    		// Если запрос поступил не через AJAX, то шлем нахуй
    		if ( ! $this->request->is_ajax())
    		{
    			throw new HTTP_Exception_404(NULL);
    		}
    
    		// Вырубаем авто-рендер, ибо это хуев аякс запрос
    		$this->auto_render = false;
    
    		// Собираем информацию и пользователе в ёбанный массив
    		$user_data = $this->request->post('user_data');
    
    		// Если пользователь авторизирован, то заебато, и возвращаем статус 200!
    		if (Auth::instance()->login($user_data['username'], $user_data['password'], (bool) isset($user_data['remember_me'])))
    			return $this->response->status(200);
    
    		// Если нет, то "Вася, все хуйня! Давай по новой!"
    		return $this->response->status(400);
    	}
    
    	public function action_logout()
    	{
    		// Если запрос поступил не через AJAX, то шлем нахуй
    		if ( ! $this->request->is_ajax())
    		{
    			throw new HTTP_Exception_404(NULL);
    		}
    
    		// Вырубаем сучий авто-рендер, нахуй, в пизду блядь
    		$this->auto_render = false;
    
    		// Выходим из аккаунта, если вышли, то ахуенно, 200-ый статус)
    		if (Auth::instance()->logout())
    			return $this->response->status(200);
    
    		// Если все хуйня, то "Вася, давай по новой!"
    		return $this->response->status(400);
    	}

    Kohana фреймворк, и таких комментариев по проекту тьма :)

    proweber1, 03 Марта 2015

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (count($GRoleData['base']['forbid']) == 4 && isset($GRoleData['base']['forbid']['type']))
    							{
    								$temp = $GRoleData['base']['forbid'];
    								unset($GRoleData['base']['forbid']);
    								$GRoleData['base']['forbid'][0] = $temp;
    							}

    Класс преобразует XML в массив. Если элемент встречается более одного раза, то внутрь элемента суется еще один массив. В некоторых местах должен быть всегда массив, но если элемент один, класс положит его в корень. Код выше "исправляет" это. 4 - количество дочерей дочерей дочерей дочерей дочерей дочки родителя.

    DesmondHume, 02 Марта 2015

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

    +159

    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
    if (!isset($_GET['outbox']) and !isset($_GET['deleted']) and !isset($_GET['verification'])){
    				$res2 = mysql_query("SELECT l.* FROM letters l LEFT JOIN `customers` ct ON ct.id=l.from_user WHERE l.deleted<>1 AND ct.`Sex` = 'male' {$addon_sql} ORDER BY l.time_insert DESC");
    				for($arr=array(); $t = mysql_fetch_assoc($res2); $arr[]=$t);
    
    				smarty_put_var('zagolovok', 'Входящие письма');
    		}
    
    		if (isset($_GET['verification'])) {
    		$res2 = mysql_query("SELECT * FROM `letters` where `deleted` != 1 AND `checked` = 'N' {$addon_sql} order by `time_insert` DESC");
    		for($arr = array(); $t = mysql_fetch_assoc($res2); $arr[] = $t);
    
    		smarty_put_var('zagolovok', 'Ожидающие проверку');
    		}
    
    		if (isset($_GET['outbox'])) {
        	$res2 = mysql_query("SELECT l.* FROM `letters` l
    		    	LEFT JOIN `customers` ct ON ct.`id`=l.from_user
    		    	WHERE l.deleted != 1 AND ct.`Sex` = 'female' {$addon_sql}
    		    	ORDER BY l.time_insert DESC LIMIT 200");
    		    	for ($arr = array(); $t = mysql_fetch_assoc($res2); $arr[]=$t);
    
    		    	smarty_put_var('zagolovok', 'Исходящие письма');
    		}
    
    		    	if (isset($_GET['deleted'])){
        	$res2 = mysql_query("SELECT * FROM `letters` WHERE `deleted` = 1
    		    	{$addon_sql} ORDER BY `time_insert` DESC");
    		    	for($arr=array(); $t=mysql_fetch_assoc($res2); $arr[]=$t);
    
    		    	smarty_put_var('deleted', true);
    		    	smarty_put_var('zagolovok', 'Удаленные письма');
    		    	}
    
    		    	$letters = array_slice($arr, $first, $limit);
    
    		foreach ($letters as &$letter) {
    			$letter['from_user_details'] = Model_Table_Customers::model()
    				->fetchByPk($letter['from_user']);
    			$letter['to_user_details'] = Model_Table_Customers::model()
    				->fetchByPk($letter['to_user']);
    		}
    
    if (isset($_GET['outbox'])){smarty_put_var('pages', pages_admin("?module=admin_letters&outbox&page=", $arr, $page, $limit)); smarty_put_var('type', 'outbox');}
    elseif (isset($_GET['verification'])){smarty_put_var('pages', pages_admin("?module=admin_letters&verification&page=", $arr, $page, $limit)); smarty_put_var('type', 'verification');}
    elseif (isset($_GET['deleted'])){smarty_put_var('pages', pages_admin("?module=admin_letters&deleted&page=", $arr, $page, $limit)); smarty_put_var('type', 'deleted');}
    else {smarty_put_var('pages', pages_admin("?module=admin_letters&page=", $arr, $page, $limit)); smarty_put_var('type', '');}
    
    ...
    
    function pages_admin($link, $arr, $page, $vis)
    {
        $radius=4;
        $pages=floor(count($arr)/$vis);
        $return="";
        $str='<table cellpadding="0" cellspacing=3 border="0">
        <tr><td height=7></td></tr>
        <tr>';
    
        if ($pages > 1) {
            $first = 'First';
            $prev = 'Prev';
            $next = 'Next';
            $last = 'Last';
    
            if($page<$radius*2){
               .....
          трэшак в том же духе

    Очередной шедевр с сохранением авторского стиля и табуляции. Это подготовка для smarty представления таблицы с постраничной разбивкой. Возможны 4 типа писем - 4 вкладки. pages_admin() - возвращает пагинатор в виде готового html кода.

    Клиент жаловался, что страница сильно тормозит. Там более 150 000 писем. Я догадывался, что код можно чутка оптимизирвоать, но не думал, что существенно. А когда посмотрел вижу - п-ц ))) Интересно насколько получить ускорить?

    stechkh, 01 Марта 2015

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

    +159

    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
    public function get_from_text($text){ 
          foreach($text as $x){ 
            $a = array('A', '?', 'A', '?', '?', '?', '?', 'C', 'E', 'E', 'E', 'E', '?', '?', 'I', 'I', '?', '?', '?', '?', 'O', '?', '?', '?', 'U', '?', 'U', 'U', '?', '?', 'à', '?', 'â', '?', '?', '?', '?', 'ç', 'è', 'é', 'ê', 'ë', '?', '?', 'î', 'ï', '?', '?', '?', 'ô', '?', '?', '?', 'ù', '?', 'û', 'ü', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'Œ', 'œ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'ƒ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?'); 
            $b = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o'); 
            $x= str_replace($a, $b, $x); 
            $x= str_replace("!", "", $x);$x= str_replace("@", "", $x);$x= str_replace("#", "", $x); 
            $x= str_replace("$", "", $x);$x= str_replace("%", "", $x);$x= str_replace("^", "", $x); 
            $x= str_replace("&", "", $x);$x= str_replace("*", "", $x);$x= str_replace("(", "", $x); 
            $x= str_replace(")", "", $x);$x= str_replace("-", "", $x);$x= str_replace("_", "", $x); 
            $x= str_replace("=", "", $x);$x= str_replace("+", "", $x);$x= str_replace("+", "", $x); 
            $x= str_replace("nbsp;", "", $x);$x= str_replace(";", "", $x);$x= str_replace(".", "", $x); 
            $x= str_replace("{", "", $x);$x= str_replace("[", "", $x);$x= str_replace("]", "", $x); 
            $x= str_replace("}", "", $x);$x= str_replace(":", "", $x);$x= str_replace("'", "", $x); 
            $x= str_replace("\"", "", $x);$x= str_replace(",", "", $x);$x= str_replace("<", "", $x); 
            $x= str_replace("\\", "", $x);$x= str_replace("?", "", $x);$x= str_replace(">", "", $x); 
            $x= str_replace("/0-9/", "", $x);$x= str_replace("?", "", $x);$x= str_replace(">", "", $x); 
            $x=trim(str_replace(range(0,9),'',$x));$x=explode(" ",$x); 
                    $vok[]=$x; 
          } 
          return $vok; 
    }

    http://www.phpclasses.org/package/8932-PHP-Filter-text-to-remove-non-SEO-friendly-characters.html#view_files/files/57793

    shilgen, 01 Марта 2015

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

    +158

    1. 1
    2. 2
    $arr = mysql_fetch_assoc(mysql_query("select * from customers where Email1='".$_POST['email']."'"));
    if ($arr and count($arr)!=0) {

    Проверка, что массив не пустой

    stechkh, 28 Февраля 2015

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

    +159

    1. 1
    if (strlen($PARAM)<=0) $PARAM = " class=\"inputselect\" ";

    Если длинна строки меньше нуля? Битрикс, ты серьёзно?

    Happinness_Cookie, 27 Февраля 2015

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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function GetDataArray($qs)
    {
        $res = array();
        $q = mysql_query($qs);
        if ($q) {
            while ($row  = mysql_fetch_array($q)) {
                array_push($res,$row);
            }
        }
        return $res;
    }

    Других путей получить массив записей наверно для автора нет

    stechkh, 26 Февраля 2015

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <?php if( !Yii::app()->user->checkAccess('Manager')){ ?><td class="text-center"><?php  if($project->c1Projects->stat_id==23){
                    echo '|';
                    }elseif($project->c1Projects->stat_id==496){
                        echo '||';
                    }else{
                       echo  '-';
                    }
    
        ?></td><?php } ?>

    Вюха одного проекта

    Elenberg, 24 Февраля 2015

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    taras@host ~/host/sites/default $ drush phpsh-console
    php> var_dump(eval('array()'));
    bool(false)
    PHP Parse error:  syntax error, unexpected end of file in /usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(591) : eval()'d code(1) : eval()'d code on line 1

    О мой мозг...! А Python здесь причем?

    kissarat, 24 Февраля 2015

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