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

    +163

    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
    function load_file( $name, $include_file = "tpl" ) {
    		global $db, $is_logged, $member_id, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module;
    
    		$name = str_replace( '..', '', $name );
    
    		$url = @parse_url ($name);
    		$type = explode( ".", $url['path'] );
    		$type = strtolower( end( $type ) );
    
    		if ($type == "tpl") {
    
    			return $this->sub_load_template( $name );
    
    		}
    
    		if ($include_file == "php") {
    
    			if ( !$this->allow_php_include ) return;
    
    			if ($type != "php") return "Для подключения допускаются только файлы с расширением .tpl или .php";
    
    			if ($url['path']{0} == "/" )
    				$file_path = dirname (ROOT_DIR.$url['path']);
    			else
    				$file_path = dirname (ROOT_DIR."/".$url['path']);
    
    			$file_name = pathinfo($url['path']);
    			$file_name = $file_name['basename'];
    
    			if ( stristr ( php_uname( "s" ) , "windows" ) === false )
    				$chmod_value = @decoct(@fileperms($file_path)) % 1000;
    
    			if ( stristr ( dirname ($url['path']) , "uploads" ) !== false )
    				return "Файл находится в недопустимой папке /uploads/";
    
    			if ( stristr ( dirname ($url['path']) , "templates" ) !== false )
    				return "Файл находится в недопустимой папке /templates/";
    
    			if ($chmod_value == 777 ) return "Файл {$url['path']} находится в папке, которая доступна для записи (CHMOD 777). В целях безопасности подключение файлов из таких папок невозможно. Измените права на папку, чтобы на нее небыло прав на запись.";
    
    			if ( !file_exists($file_path."/".$file_name) ) return "Файл {$url['path']} не найден, его загрузка невозможна.";
    
    			if ( $url['query'] ) {
    
    				parse_str( $url['query'] );
    
    			}
    
    			ob_start();
    			$tpl = new dle_template( );
    			$tpl->dir = TEMPLATE_DIR;
    			include $file_path."/".$file_name;
    			return ob_get_clean();
    
    		}
    
    		return '{include file="'.$name.'"}';
    
    
    	}

    DLE software, доставило
    Шеф заказал сайт на этой цмс...

    Запостил: DanxilLs, 15 Января 2011

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

    • Наверное Вашего шефа прельстила мощнейшая сайтовская защита от копирования
      Ответить
    • >$url = @parse_url ($name);
      Вот за это надо сразу все отрывать.
      Я за собачки, но если используешь их - делай собственную обертку для ошибок!
      >небыло
      И вообще, сначала учите Русский, а потом уже PHP.
      Ответить
      • а потом уже пишите cms
        а потом уже обертку для ошибок
        а потом уже выпускайте в продакшн
        Ответить
    • шеф не знает что вместо дле есть бесплатный говнокод?
      Ответить
    • Мне вообще-то насрать на то что он знает, мне главное чтоб деньги платил)
      Ответить
    • >>if ( stristr ( dirname ($url['path']) , "uploads" ) !== false )

      руки находятся в недопустимом месте!
      Ответить

    Добавить комментарий