- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 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.'"}';
}
istem 15.01.2011 08:30 # 0
7ion 15.01.2011 11:46 # +4
Вот за это надо сразу все отрывать.
Я за собачки, но если используешь их - делай собственную обертку для ошибок!
>небыло
И вообще, сначала учите Русский, а потом уже PHP.
Uchkuma 15.01.2011 13:24 # +2
а потом уже обертку для ошибок
а потом уже выпускайте в продакшн
brainstorm 15.01.2011 14:12 # +1
bugmenot 15.01.2011 19:28 # +1
DanxilLs 16.01.2011 05:50 # 0
Анонимус 16.01.2011 09:14 # +2
руки находятся в недопустимом месте!