Поругайте, что неправильно, что может не так делается...
Ограничил доступ вверх - в пределах директории сайта. Результат мне кажется ооочень громоздким... И собственно, для навигации "назад" я разбираю строку запроса URL, а если я захочу ограничеть доступ дальше корня сайта - нужно делать конечную разрешенную точку доступа стартовой страницей или не обязательно? Пытался сначала брать директорию из пути файловой системы и применять ее в создаваемых ссылках, но что-то запутался...
Пока что вот такой вариант:
PHP/HTML 1
2
3
4
5
6
7
8
9
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
<?php
error_reporting ( - 1 ) ;
header ( 'Content-Type: text/html; charset=utf-8' ) ;
$dir = dirname ( __FILE__ ) ;
$query = 'index.php?aim=' ;
$real = ( isset ( $_GET [ 'aim' ] ) ) ? realpath ( $_GET [ 'aim' ] ) : $dir ;
$ref = ( isset ( $_GET [ 'aim' ] ) ) ? scandir ( $_GET [ 'aim' ] ) : scandir ( '.' ) ;
?>
<! doctype html>
< html >
< head >
< meta charset = "utf-8" >
< title > File Manager</ title >
< link href = "main.css" rel = "stylesheet" type = "text/css" >
</ head >
< body >
< div class = "main" >
< div class = "info" >
< div class = "wrap" >
<?php
echo $real ;
?>
</ div >
</ div >
<?php
for ( $i = 1 ; $i < count ( $ref ) ; $i ++ ) {
if ( isset ( $_SERVER [ 'QUERY_STRING' ] ) && strchr ( $_SERVER [ 'QUERY_STRING' ] , '..' ) ) {
echo '<div class="warning">ILLEGAL ADDRESS!<br><br><a href="' . $_SERVER [ 'PHP_SELF' ] . '">Back to site root</a></div>' ;
exit ( ) ;
}
else
if ( is_dir ( $dir . '/' . ( ! isset ( $_GET [ 'aim' ] ) ? '' : $_GET [ 'aim' ] ) . '/' . $ref [ $i ] ) ) {
echo '<a href="' ;
if ( isset ( $_GET [ 'aim' ] ) ) {
if ( $ref [ $i ] == '..' ) {
$pos = strrpos ( $_SERVER [ 'QUERY_STRING' ] , '/' ) ;
if ( ! $pos ) {
echo 'index.php' ;
}
else {
$arg1 = substr ( $_SERVER [ 'QUERY_STRING' ] , 0 , $pos ) ;
$argstop = substr ( $arg1 , strpos ( $arg1 , '=' ) + 1 ) ;
echo $query . $argstop ;
}
}
else
echo $query . $_GET [ 'aim' ] . '/' . $ref [ $i ] ;
}
if ( ! isset ( $_GET [ 'aim' ] ) ) {
echo ( $ref [ $i ] == '..' ) ? $_SERVER [ 'REQUEST_URI' ] : $query . $ref [ $i ] ;
}
echo '">' . ( ( $ref [ $i ] != '..' ) ? '
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2017, 17:12
Ответы с готовыми решениями:
Файловый менеджер Всем привет!
Пытаюсь двигаться дальше в изучении php. Пишу файловый менеджер. Вернее пытаюсь...
файловый менеджер Доброго вечера всем кто читает
срочно возникла необходимость в написании файлового менеджера на...
Файловый менеджер Доброго времени суток.
Сейчас разбираюсь с файловым менеджером. Посмотрел пример написания вот на...
Файловый менеджер Добрый день!
Столкнулся с необходимостью создания на сайте возможности для пользователя загружать,...
2
39 / 9 / 10
Регистрация: 19.09.2016
Сообщений: 1,064
15.01.2017, 18:05
[ТС]
2
Все настолько безнадежно?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,227
15.01.2017, 20:12
3
всё настолько неинтересно - в бредокоде копаться
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2017, 20:12
3
Наверх