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

    +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
    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
    function resetIsetSorting()
    	{
    		$db = 'i_set';
    		$co = -1;
    		$q = $this->db->get($db);
    		$r = $q->result();
    		foreach($r as $row)
    		{
    			$co++;
    			$upd['sort'] = $co;
    			$this->db->where('id_set', $row->id_set); 
    			$this->db->update($db, $upd);	
    		}
    	}
    	function isetSortExchange($sort, $canBeSort)
    	{
    		$db = 'i_set';
    		$bigNumber = 1470000;
    		$this->db->where('sort', $canBeSort);
    		$q = $this->db->get($db);
    		if ($q->num_rows() == 1)
    		{
    			$upd['sort'] = $bigNumber;
    			$this->db->where('sort', $canBeSort); 
    			$this->db->update($db, $upd);	
    			//
    			$upd['sort'] = $canBeSort;
    			$this->db->where('sort', $sort); 
    			$this->db->update($db, $upd);
    			//
    			$upd['sort'] = $sort;
    			$this->db->where('sort', $bigNumber); 
    			$this->db->update($db, $upd);
    		}
    	}

    Первая функция призвана обновить поле sort на уникальные последовательные значение. Сначала хотел провернуть такое дело на SQL в PHPmyADMIN, но мозгов моих оказалось мало, и я сделал это на CodeIgniter. Говнокод ли это?

    Вторая функция призвана для обмена значениями полей sort. Это нужно для сортировки чего либо в баз. Чутьё мне подсказывает что это можно проделать каким-то белее правильным путём, без использования $bigNumber = 1470000; (а вдруг количество строк достигнет этого числа??!!). Говнокод ли это?

    Всё рабочее, только что проверил. Свежий код, только что написан!

    increazon, 08 Сентября 2011

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

    +162

    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
    function validemail($email){
    
     if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
    
     return false;
    
    
    
     $email_array = explode("@", $email);
    
     $local_array = explode(".", $email_array[0]);
    
     for ($i = 0; $i < sizeof($local_array); $i++) {
    
      if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
    
      return false;
    
     }

    jQuery, 08 Сентября 2011

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

    +173

    1. 1
    define("RANDOM_NUM", rand(0, 10000000));

    поясню: кодер думал, что каждый раз будет вызываться функция и генерить новое число, т.к. в коде далее идет ее использование как уникального идентификатора. Скорее всего, это один из первых скриптов того, кто писал.

    jokz, 08 Сентября 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?
    if($page!='/volga' && $page!='/volga/index.php'){
    // Тут всякий код
    } if($page=='/volga' or $page=='/volga/index.php'){?>
    // И тут тоже	
    <?}?>

    Tairesh, 08 Сентября 2011

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

    +173

    1. 1
    $lib = $app['memcache.wrapper'] === false ? false : $app['memcache.wrapper'];

    я туплю????? или кто-то получает за количество символов ????

    AlexanderC, 07 Сентября 2011

    Комментарии (8)
  6. 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)
  7. PHP / Говнокод #7796

    +167

    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
    // Проверка на спам
    $Spam = false;
    if ( substr_count( GetParam( 'info', true ), '[url' ) > 0 )
    {
    	$Spam = true;
    };
    if ( substr_count( GetParam( 'info', true ), 'viagra' ) > 0 )
    {
    	$Spam = true;
    };
    if ( substr_count( GetParam( 'info', true ), 'cialis' ) > 0 )
    {
    	$Spam = true;
    };
    if ( substr_count( GetParam( 'info', true ), 'casino' ) > 0 )
    {
    	$Spam = true;
    };
    if ( strlen( GetParam( 'info', true ) ) < 10 )
    {
    	$Spam = true;
    };
    
    if ( $Spam )
    {
    	$Message = "В тексте сообщения находятся спам-подобные слова.";
    }

    кусок кода одного скрипта, гордо именуемого CMS

    forkhammer, 07 Сентября 2011

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

    +174

    1. 1
    mysql_query("TRUNCATE TABLE ".$this->mysqlTable) or die(mysql_error()) or die(mysql_error());

    Хороший киллер всегда делает контрольный выстрел.

    i--, 07 Сентября 2011

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

    +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
    private function cp1251_utf8($sInput) {
                    $sOutput = "";
                    for ( $i = 0; $i < strlen( $sInput ); $i++ )
                    {
                            $iAscii = ord( $sInput[$i] );
                            if ( $iAscii >= 192 && $iAscii <= 255 )
                                    $sOutput .=  "&#".( 1040 + ( $iAscii - 192 ) ).";";
                            else if ( $iAscii == 168 )
                                    $sOutput .= "&#".( 1025 ).";";
                            else if ( $iAscii == 184 )
                                    $sOutput .= "&#".( 1105 ).";";
                            else
                                    $sOutput .= $sInput[$i];
                    }
    
                    return $sOutput;
            }
    
            protected function utf8_strtr($str, $from, $to = '') {
                    $str = iconv('UTF-8', 'cp1251', $str);
                    $str = $to ? strtr($str, $from, $to) : strtr($str, $from);
                    return iconv('cp1251', 'UTF-8', $str);
            }
    
            public function date_rus($str) {
                    $str = str_replace('Jan', 'Янв', $str);
                    $str = str_replace('Feb', 'Фев', $str);
                    $str = str_replace('Mar', 'Мар', $str);
                    $str = str_replace('Apr', 'Апр', $str);
                    $str = str_replace('May', 'Май', $str);
                    $str = str_replace('Jun', 'Июн', $str);
                    $str = str_replace('Jul', 'Июл', $str);
                    $str = str_replace('Aug', 'Авг', $str);
                    $str = str_replace('Sep', 'Сен', $str);
                    $str = str_replace('Oct', 'Окт', $str);
                    $str = str_replace('Nov', 'Ноя', $str);
                    $str = str_replace('Dec', 'Дек', $str);
                    return $str;
            }

    пара функций из одного интересного проекта =)
    перекодировка с подвыпердоворотом, перевод даты на русский без компромисов

    fr_butch, 06 Сентября 2011

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

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public function editSetting($group, $data, $store_id = 0) {
    	$this->db->query("DELETE FROM " . DB_PREFIX . "setting WHERE store_id = '" . (int)$store_id . "' AND `group` = '" . $this->db->escape($group) . "'");
    	foreach ($data as $key => $value) {
    		if (!is_array($value)) {
    			$this->db->query("INSERT INTO " . DB_PREFIX . "setting SET store_id = '" . (int)$store_id . "', `group` = '" . $this->db->escape($group) . "', `key` = '" . $this->db->escape($key) . "', `value` = '" . $this->db->escape($value) . "'");
    		} else {
    			$this->db->query("INSERT INTO " . DB_PREFIX . "setting SET store_id = '" . (int)$store_id . "', `group` = '" . $this->db->escape($group) . "', `key` = '" . $this->db->escape($key) . "', `value` = '" . $this->db->escape(serialize($value)) . "', serialized = '1'");
    		}
    	}
    }

    Всё оттуда же (Open Cart).
    Оно бы вроде и ничего, если бы не id и автоинкрементом в таблице "setting". Вот так вот, каждый раз сохраняя настройки, мы прибиваем стопицот старых значений и заводим столько же совершенно новых, которые, тем не менее, в большинстве своём ничем не отличаются от старых.

    cybervantyz, 06 Сентября 2011

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