Аля Site Explorer (хелп)
Здраствуйте
Сразу извиняюсь за свой ламерский вопрос. Есть скрипт, который показывает содержание каталога. (Такой себе Експлорер). Всё в работает, но мне не нравится как оно работает.
значение переменной dir передается урлом. Если юзер идёт в глубь, то урл выглядит так:
http://www/dir.php?dir=d:/www/pic/misto то-есть в принцыпе нормально
если начинает "выходить", то
http://www/dir.php?dir=d:/www/pic/misto/../..
(то-есть юзер сейчас находится в папке d:/www
как избежать косых с точками? /../..
Или как правильно делать переход между папками ? (если что не так)? Подскажите плз.
может значение переменной передавать не урлом?
как сделать чтоб у юзера запускался даунлоад если он "выбрал" файл?
Этим скриптом можно лезть выше общедоступной папки. Например сайт лежит в папке home/httpd/mainsite
Как застраховаться, чёб юзер не лез "выше" /home/?
З.Ы. Надеюсь мои вопросы не показались Вам слишком ламерскими
Зы.Зы Я не программер, я только учусь (в свободное от работы время)
Вот сам скрипт:[.B]
if (isset($dir)){
chdir($dir);}
if (!isset($dir)){
$dir = $DOCUMENT_ROOT;}?>
<table class="text">
<?
$opendir = opendir ("$dir");
while ($file = readdir($opendir)){
if (is_dir($file)){?>//если это директория
<tr><td><img src="folder.gif" width="26" height="26" border="0" alt=""></td><td><a class="text" href="<? echo $PHP_SELF."?dir=".$dir."/".$file; ?>"> <? echo $file."</a></td><td>директория</td></tr>";}?>
<?
if (!is_dir($file)){?>//если это файл
<tr><td></td><td><a class="text" href="<? echo $PHP_SELF."?file=".$file; ?>"> <? echo $file."</a></td><td>размер файла: ".filesize($file)."</td>";} }?>
</table>
ОГРОМНОЕ СПАСИБО!!!!
Здраствуйте
Сразу извиняюсь за свой ламерский вопрос. Есть скрипт, который показывает содержание каталога. (Такой себе Експлорер). Всё в работает, но мне не нравится как оно работает.
значение переменной dir передается урлом. Если юзер идёт в глубь, то урл выглядит так:
http://www/dir.php?dir=d:/www/pic/misto то-есть в принцыпе нормально
если начинает "выходить", то
http://www/dir.php?dir=d:/www/pic/misto/../..
(то-есть юзер сейчас находится в папке d:/www
как избежать косых с точками? /../..
Или как правильно делать переход между папками ? (если что не так)? Подскажите плз.
может значение переменной передавать не урлом?
как сделать чтоб у юзера запускался даунлоад если он "выбрал" файл?
Этим скриптом можно лезть выше общедоступной папки. Например сайт лежит в папке home/httpd/mainsite
Как застраховаться, чёб юзер не лез "выше" /home/?
З.Ы. Надеюсь мои вопросы не показались Вам слишком ламерскими
Зы.Зы Я не программер, я только учусь (в свободное от работы время)
Вот сам скрипт:[.B]
if (isset($dir)){
chdir($dir);}
if (!isset($dir)){
$dir = $DOCUMENT_ROOT;}?>
<table class="text">
<?
$opendir = opendir ("$dir");
while ($file = readdir($opendir)){
if (is_dir($file)){?>//если это директория
<tr><td><img src="folder.gif" width="26" height="26" border="0" alt=""></td><td><a class="text" href="<? echo $PHP_SELF."?dir=".$dir."/".$file; ?>"> <? echo $file."</a></td><td>директория</td></tr>";}?>
<?
if (!is_dir($file)){?>//если это файл
<tr><td></td><td><a class="text" href="<? echo $PHP_SELF."?file=".$file; ?>"> <? echo $file."</a></td><td>размер файла: ".filesize($file)."</td>";} }?>
</table>
ОГРОМНОЕ СПАСИБО!!!!