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

    0

    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
    /* Технические работы */
    		if($_SERVER['REMOTE_ADDR'] !== '87.103.101.202') die($tpl->get('tech', TPL, $language));
    
    	/* Авторизованным */
    		if($api->isLogged()){
    			$login = $tpl->get('nologon', TPL, $language);
    			/* Список заменяемых слов */
    				$replace = array(
    					""
    				);
    			/* Показывание авторизированному юзеру */
    				$login = str_replace(array_keys($replace), $replace, $login);
    		} else {
    			$login = $tpl->get('logon', TPL, $language);
    		}
    
    	/* Запуск шапки сайта */
    		$header = $tpl->get('header', TPL,  $language);
    		/* Список заменяемых слов */
    			$replace = array(
    				"%login%" => $login
    			);
    		/* Показывание шапки */
    			echo str_replace(array_keys($replace), $replace, $header);
    
    	/* Переключение по адресам */
    		switch ($uri[0]) {
    
    			/* Главная страница */
    			default:
    				echo $tpl->get('home', TPL,  $language);
    				break;
    			
    		}

    enly1, 14 Июня 2017

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

    0

    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
    /* Регистрация */
    	public function register ($log, $pass, $pass2, $email) {
    		/* Стандартная проверка */
    			if(isset($_SESSION['userid'])) return "already_auth";
    			if(!preg_match("/^[a-zA-Z0-9]+$/", $log)) return "rus_or_eng";
    			if(strlen($log) < 5 or strlen($log) > 31) return "log_min_5";
    			if($pass != $pass2) return "pass1_not_equal_pass2";
    			if(strlen($pass) < 8 or strlen($pass) > 31) return "pass_min_8";
    		/* Генерация хэша */
    			$hash = md5('davay'.rand().'ebatsa');
    		/* Проверка на существование ника */
    			$q = $this->db->row("SELECT * FROM `users` WHERE `user` = '".$this->sql($log)."'");
    			if($q != null) return "change_nick";
    		/* Занос в базу данных нового пользователя */
    			$q = $this->db->query("INSERT INTO `users` (`user`, `password`, `hash`) VALUES (:login, :password, :hash)",
    				array("login" => $log, "password" => $pass, "hash" => $hash));
    		/* Возвращаем положительный ответ */
    			return true;
    	}

    Хэш не трогал)

    enly1, 14 Июня 2017

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

    0

    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
    /* Проверка текста на рекламу */
    	public function checkAd ($text) {
    		$r = array('.ru','.com','.xyz',
    			'.net','.blue','.red',
    			'.su','.org','.biz','.tk',
    			 '.pro','.pw','.me',
    			 '.eu','.pl','.be',
    			'.us','.in'
    		);
    
    		return str_replace($r, '', $text);
    
    }

    enly1, 14 Июня 2017

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

    0

    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
    class geoip {
    
    	public function get () {
    		$loc = geoip_country_code_by_name($_SERVER['REMOTE_ADDR']);
    		switch ($loc) {
    			default:
    				$loc = US;
    				break;
    			case 'RU':
    				$loc = RU;
    				break;
    			case 'UA':
    				$loc = RU;
    				break;
    			case 'BY':
    				$loc = RU;
    				break;
    		}
    		return $loc;
    	} 
    
    }

    enly1, 14 Июня 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /* Функция загрузки модулей */
    	function load ($name, $path, $cfg = array()) {
    		require($path.'/'.$name.'.php');
    		if($cfg !== null) {
    			return new $name($cfg);
    		} else {
    			return new $name;
    		}
    	}

    Хмм, что-то тут не так.

    enly1, 14 Июня 2017

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

    −1

    1. 1
    ($prepayment ? 'Предо' : 'О') . 'плата счета №'

    Когда DRY возведен в абсолют

    _dk, 06 Июня 2017

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

    0

    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
    private function  auth($data){
            #Проверка данных и авторизация
            $login = str_replace(" ", "", mysql_real_escape_string(htmlspecialchars(strip_tags(trim($data['login'], ' /')))));
            $pwd = str_replace(" ", "", mysql_real_escape_string(htmlspecialchars(strip_tags(trim($data['password'], ' /')))));
    
            $user = Model_Auth::getUser($login);
            if($user===false){
                return false;
            }else{
                if($user['password']==md5(md5($pwd))){
                    $checksumm = md5($user['login'].$user['password'].$user['rules']);
                    Model_Auth::updateUser($user['id'],$checksumm);
                    Model_Auth::updateUserStatus($user['id']);
                    setcookie("user", $checksumm, time()+3600, '/', $_SERVER['HTTP_HOST']);
                    if (isset($_SESSION['ref_url'])) {
                        $ref_url = $_SESSION['ref_url'];
                        unset($_SESSION['ref_url']);
                        header('Location:'.$ref_url);
                    } else {
                        header('Location:'.$GLOBALS['main_page']);
                    }
                }else{
                    return false;
                }
            }
        }

    А теперь удивитесь - если зайти на сайт и у вас внезапно в куках браузера завалялась пустая переменная user, то вы будете автоматически авторизованы от имени того пользователя, который еще ни разу не заходил в систему потому-что $user не проверяется на пустоту

    McLotos, 06 Июня 2017

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

    +4

    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
    function check_for_injection($_arr_check) {
        $inj = 0;
        foreach ($_arr_check as $n=>$v) {
            $_text = "SELECT ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = " SELECT";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "DELETE ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "UPDATE ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "INSERT ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "LOAD ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "DROP ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "INTO ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "OUTFILE ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
            $_text = "CALL ";
            if (strpos(strtoupper($v), $_text)!==false) $inj = 1;
        }
        return $inj;
    }
    $dd = check_for_injection($_REQUEST);
    if ($dd==1) die();

    Надежный способ проверки на взлом

    ostin, 05 Июня 2017

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

    0

    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
    |	НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу,
    		  |	ПрисоединенныеФайлы.ХранимыйФайл КАК ХранимыйФайл
    		  |ИЗ
    		  |	ВремНоменклатура КАК ВремНоменклатура
    		  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
    		  |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрисоединенныеФайлы КАК ПрисоединенныеФайлы
    		  |			ПО НоменклатураПрисоединенныеФайлы.Ссылка = ПрисоединенныеФайлы.ПрисоединенныйФайл
    		  |				И (НоменклатураПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе))
    		  |		ПО (НоменклатураПрисоединенныеФайлы.ВладелецФайла = ВремНоменклатура.Номенклатура)
    		  |			И ((НЕ НоменклатураПрисоединенныеФайлы.ПометкаУдаления))
    		  |ГДЕ
    		  |	((НЕ &ОтбиратьФайлы)
    		  |			ИЛИ &ОтбиратьФайлы
    		  |				И НоменклатураПрисоединенныеФайлы.Ссылка В (&МассивФайлов))
    		  |
    		  |УПОРЯДОЧИТЬ ПО
    		  |	Номенклатура
    		  |;
    		  |
    		  |////////////////////////////////////////////////////////////////////////////////
    		  |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    		  |	ВремНоменклатура.Номенклатура КАК Номенклатура,
    		  |	МАКСИМУМ(ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
    		  |ПОМЕСТИТЬ ВремШтрихкодыДляКаталога
    		  |ИЗ
    		  |	ВремНоменклатура КАК ВремНоменклатура
    		  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
    		  |		ПО ВремНоменклатура.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
    		  |			И (ШтрихкодыНоменклатуры.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
    		  |
    		  |СГРУППИРОВАТЬ ПО
    		  |	ВремНоменклатура.Номенклатура
    		  |;
    		  |
    		  |////////////////////////////////////////////////////////////////////////////////
    		  |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    		  |	Организации.Ссылка КАК Контрагент,
    		  |	Организации.Наименование,
    		  |	Организации.НаименованиеПолное,
    		  |	Организации.ЮрФизЛицо,
    		  |	Организации.КодПоЕДРПОУ,
    		  |	Организации.КонтактнаяИнформация.(
    		  |		Тип КАК Тип,
    		  |		Вид КАК Вид,
    		  |		Представление КАК Представление,
    		  |		ЗначенияПолей КАК ЗначенияПолей
    		  |	)
    		  |ИЗ
    		  |	Справочник.Организации КАК Организации
    		  |ГДЕ
    		  |	Организации.Ссылка = &ОрганизацияВладелецКаталога";
    
    	ТекстЗапроса = 
    		ТекстЗапроса + Символы.ПС + ";" + Символы.ПС
    		+ "ВЫБРАТЬ
    		  |	ВремНоменклатура.Номенклатура КАК Номенклатура,
    		  | ВремНоменклатура.ФормаКруг как ФормаКруг
    		  |	ВремНоменклатура.ПометкаУдаления КАК ПометкаУдаления,
    		  |	ВремНоменклатура.Родитель КАК Родитель,
    		  |	ВремНоменклатура.Код КАК Код,
    		  |	ВремНоменклатура.Наименование КАК Наименование,
    		  |	ВремНоменклатура.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    		  |	ВремНоменклатура.Номенклатура.Описание КАК Описание,

    Saldorian, 29 Мая 2017

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function color_search($color) {
         $arColor["COLOR"] = explode(",","aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen,black,dimgray,gray,darkgray,silver,lightgrey,gainsboro,whitesmoke,white,snow,rosybrown,lightcoral,indianred,brown,firebrick,maroon,darkred,red,salmon,mistyrose,tomato,darksalmon,coral,orangered,lightsalmon,sienna,seashell,saddlebrown,chocolate,peachpuff,sandybrown,linen,peru,bisque,darkorange,antiquewhite,tan,burlywood,blanchedalmond,navajowhite,papayawhip,moccasin,oldlace,wheat,orange,floralwhite,goldenrod,darkgoldenrod,cornsilk,gold,lemonchiffon,khaki,palegoldenrod,darkkhaki,ivory,beige,lightyellow,olive,yellow,olivedrab,yellowgreen,darkolivegreen,greenyellow,lawngreen,chartreuse,honeydew,darkseagreen,lightgreen,palegreen,forestgreen,limegreen,darkgreen,green,lime,seagreen,mediumseagreen,mintcream,springgreen,mediumspringgreen,mediumaquamarine,aquamarine,turquoise,lightseagreen,mediumturquoise,azure,paleturquoise,darkslategray,teal,darkcyan,aqua,cyan,lightcyan,darkturquoise,cadetblue,powderblue,lightblue,deepskyblue,skyblue,lightskyblue,steelblue,aliceblue,slategray,lightslategray,dodgerblue,lightsteelblue,cornflowerblue,royalblue,ghostwhite,lavender,midnightblue,navy,darkblue,mediumblue,blue,darkslateblue,slateblue,mediumslateblue,mediumpurple,blueviolet,indigo,darkorchid,darkviolet,mediumorchid,thistle,plum,violet,purple,darkmagenta,fuchsia,magenta,orchid,mediumvioletred,deeppink,hotpink,lavenderblush,palevioletred,crimson");
         if(in_array($color, $arColor["COLOR"])){
             return $color;
         }
     }

    scph77008, 25 Мая 2017

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