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

    +154

    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
    73. 73
    74. 74
    <?php
    function import_var($name,$source,$type,$maxlen=0) {
    	$retarr=array();
    	if(is_array($name)) { // если нужно обработать массив с именами
    		foreach($name as $v) {
    			$retarr[$v] = import_var($v,$source,$type,$maxlen);
    			// рекурсивно запускаем себя же
    		}
    	if(sizeof($retarr)>0) return $retarr; // возвращаем массив
    	}
    	// если нужно обработать одну переменную
    	switch($source) {
    		case 'G':
    			if (isset($_GET[$name])) {
    				$var=$_GET[$name];  // из GET
    			}
    		break;
    		case 'P':
    			if (isset($_POST[$name])) {
    				$var=$_POST[$name];  // из POST
    			}
    		break;
    		case 'C':
    			if (isset($_COOKIE[$name])) {
    				$var=$_COOKIE[$name];  // из Cookie
    			}
    		break;
    	}
    
    	if(!isset($var)) return false; // если переменная существует
    
    	if(is_array($var)) return false; // и если это не массив...
    
    	if(get_magic_quotes_gpc()) $var = stripslashes($var);
    	// убираем лишние бэкслэши
    
    	if(empty($var)) return false; // если переменная пуста
    
    	if ($maxlen>0) $var = substr($var,0,$maxlen); //обрубаем лишнее
    
    	switch($type) { // теперь обрабатываем в соответствии с типом
    		case 'INT' : // число integer
    			return is_integer($var) ? $var : intval($var);
    		break;
    		case 'NUM' : // число integer или float
    			return is_numeric($var) ? $var : false;
    		break;
    		case 'HTML' : // текст, в котором могут содержаться тэги
    			return trim(htmlspecialchars($var));
    		break;
    		case 'SQL' : // строка, которая попадет в SQL-запрос
    			return mysql_real_escape_string(htmlspecialchars($var));
    		break;
    		case 'MAIL'	: // email-адрес
    			return preg_match('/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{2,4}$/',$var) ? $var : false;
    		break;
    		case 'ALPHA' : // только буквенные символы
    			return preg_match("/^[а-яА-ЯёЁa-zA-Z]+$/",$var) ? $var : false;
    		break;
    		case 'ALPHANUM' : // числовые и буквенные символы
    			return preg_match("/^[а-яА-ЯёЁa-zA-Z0-9]+$/",$var) ? $var : false;
    		break;
    		case 'MD5' : // md5-хэш
    			return preg_match("/^[a-fA-F0-9]{32}+$/",$var) ? $var : false;
    		break;
    		case 'SHA1' : // sha1-хэш
    			return preg_match("/^[a-fA-F0-9]{40}+$/",$var) ? $var : false;
    		break;
    		case 'BOOL': // булева величина
    			return ($var=="1" || $var=="true" || $var=="on") ? true : false;
    		break;
    	}
    }
    ?>

    http://raz0r.name/releases/funkciya-dlya-obrabotki-vxodyashhix-dannyx/

    sectus, 09 Сентября 2011

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

    +161

    1. 1
    $period = in_array($bullRegionId,array_keys($periods)) ? $periods[$bullRegionId]['text'] : $periods['default']['text'];

    Интересна сама проверка на существование ключа, не правда ли? :-)
    Код мой. Коллега учуял, что от него несколько плохо пахнет и предложил запостить сюда))

    Nemoden, 09 Сентября 2011

    Комментарии (27)
  3. 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)
  4. JavaScript / Говнокод #7812

    +161

    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
    <select onchange="goTo();" id="navSelect">
    <option value="/way_to_hell/">Вопросы-ответы</option>
    .
    .
    .
    </select>
    
    <script>
    function goTo()
    {
      var objSel = document.getElementById("navSelect");
      window.location = objSel.options[objSel.selectedIndex].value;
    }
    
    </script>
    
    
    
    //можно вообще вот так:
    <select onchange="window.location = this.options[this.selectedIndex].value">

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

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

    +173

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

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

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

    Комментарии (39)
  7. JavaScript / Говнокод #7809

    +176

    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
    <a id="hide" href ="javascript:
    var text = $('#ccc').html();
    function hide(){
        $('#ccc').html('');
        $('#hide').attr('href', 'javascript: show(); ');
    }
    function show(){
        $('#ccc').html(text);
        $('#hide').attr('href', 'javascript: hide(); ');
    }
    hide();
    ">Скрыть/Показать</a>
    
    <div id="ccc">скрываемвый текст</div>

    Я думаю комментарии излишни. Я считаю что это идеальный говнокод. И отличная замена $('#ccc').toggle();

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

    Комментарии (14)
  8. 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)
  9. Java / Говнокод #7807

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Integer obj = (Integer)dump.get("size");
            if(obj == null) {
                return;
            }
            int size = obj;
            for(int i=0; i<size; i++) {

    Самое странное, что автор явно знает, что такое автобоксинг, но всё равно использовал его коряво.

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

    Комментарии (18)
  10. Java / Говнокод #7806

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public abstract class Data {
    		// The tone of Commander Riker's voice makes me suspect that
    		// he is not serious about finding Ambassador T'Pel charming.
    		// My experience suggests that in fact he may mean the exact
    		// opposite of what he says. Irony is a form of expression
    		// I have not yet been able to master.

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

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