|
|
|
| есть функция которая возвращает дескриптор каталога ей передаётся параметр $DIR как сделать так чтобы ниже $_SERVER['DOCUMENT_ROOT'] не пускала при возможности использовать такие символы ../../
<?
function ListFiles($DIR)
{
$dh=glob($DIR.'/*');
for ($i=0;$i<count($dh);$i++)
{
echo basename($dh[$i]);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: sav
(05.12.2006 в 22:02)
| |
<?
function ListFiles($DIR)
{
$dh=glob(trim($DIR, "./").'/*');
for ($i=0;$i<count($dh);$i++)
{
echo basename($dh[$i]);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Саня
(06.12.2006 в 02:35)
| | [b][Саня/b]
а если ему передать в параметр $DIR типа этого ../../../../ то он пропустит ниже $_SERVER['DOCUMENT_ROOT'] ... нужно чтобы не пускала, но не запрещать эти символы ../../ | |
|
|
|
|
|
|
|
для: sav
(06.12.2006 в 14:07)
| | Уже нашёл решение может кому нибудь пригодится
<?
$RootPath = $_SERVER['DOCUMENT_ROOT'];
$SlashCount = substr_count($RootPath, '/');
function RetPath($PATH, $RootPath, $SlashCount)
{
$RealPath=realpath($RootPath.$PATH);
$RealPath=str_replace('\\','/',$RealPath);
$GetLevel=substr_count($RealPath, '/');
if($GetLevel<$SlashCount)
die('mazafaka');
if($GetLevel==$SlashCount)
return '/';
$HtmlPath=str_replace($RootPath, '', $RealPath);
return $HtmlPath;
}
RetPath($_GET['dir'], $RootPath, $SlashCount);
?>
|
| |
|
|
|