|
|
|
|
$dist="./dir/files/";
$h=opendir("$dist");
while(($f=readdir($h))!==false)
{
if (substr($f,0,1)!=".")
{
echo "<a href=\"./page.php?path=$f\">$f\n</a><br> ";
}
}
|
и в соседнем столбце
if($path)
{
$dist="./memarea/files/$path";
$h=opendir("$dist");
while(($f=readdir($h))!==false)
{
if (substr($f,0,1)!=".")
{
echo " <a href=\"./page.php?path=$path&path2=$f\">$f\n</a> -";
}
}
}
|
И нужно что-б выше dir нельзя было подняться вводя в адресной строке
page.php?path=../../ | |
|
|
|
|
|
|
|
для: BArt Simpson
(26.08.2005 в 18:04)
| | Удалите все точки из $path
<?php
$path = str_replace(".","",$path);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.08.2005 в 22:16)
| | Спасибо | |
|
|
|
|
|
|
|
для: cheops
(26.08.2005 в 22:16)
| | Возник следующий вопрос. Предположим $path - это директория, а $path2 это уже файл! как сделать что б он скачивался через этот же скрипт а не на прямую? | |
|
|
|
|
|
|
|
для: BArt Simpson
(29.08.2005 в 11:59)
| | А в смысле скачивался не на прямую? | |
|
|
|
|
|
|
|
для: cheops
(29.08.2005 в 12:11)
| | чтоб не видно было реального адреса а ссылка была
http://домен.ru/page.php?go=dil&path=lexar&path2=photo&path3=secuer_digital&file=SD512-40-231_large.jpg | |
|
|
|
|
|
|
|
для: BArt Simpson
(29.08.2005 в 11:59)
| | .htaccess надо использовать | |
|
|
|
|
|
|
|
для: P@Sol
(29.08.2005 в 12:18)
| | А поподробнее.. | |
|
|
|
|
|
|
|
для: P@Sol
(29.08.2005 в 12:18)
| | типа Rewrite? | |
|
|
|
|
|
|
|
для: BArt Simpson
(29.08.2005 в 12:49)
| | -- | |
|
|
|
|
|
|
|
для: P@Sol
(29.08.2005 в 12:58)
| | а что значит let_me_in ? | |
|
|
|
|
|
|
|
для: BArt Simpson
(29.08.2005 в 13:08)
| | просто я так обозвал это условие:) хотя может это и еще что то обозначает | |
|
|
|
|
|
|
|
для: P@Sol
(29.08.2005 в 12:58)
| | Боюсь это не для моего случая, нельзя даже с моего сайта качать просто так, скрипт с проверко пользователя и пароля, даже эти пользователи не должны знать где файлы лежат, и скачать их без осуществления входа на странице. | |
|
|
|
|
|
|
|
для: BArt Simpson
(29.08.2005 в 13:16)
| | А какова исходная задача? Коммерческое распространение или что? | |
|
|
|
|
|
|
|
для: P@Sol
(29.08.2005 в 12:58)
| | ок, а как осуществить ссылку внутрях скипта? при хорошем раскладе выводися ошибка что-то типа "немогу открыть директорию". | |
|
|
|
|
|
|
|
для: BArt Simpson
(29.08.2005 в 13:28)
| | я пологаю что она должна быть примерно такой
./page.php?go=dil&path=$path&path2=$path2&path3=$path3&file=$f
а код такой
<?php
if($file)
{
$dist="./files/$path/$path2/$path3/$file";
open незнаю чего("$dist");
а тут всё должно открыться :) (как-то)
}?>
|
| |
|
|
|
|
|
|
|
для: BArt Simpson
(29.08.2005 в 13:36)
| | нашёл
ссылка на файл с кодом
<a href=\"./down.php?go=dil&path=$path&path2=$path2&path3=$path3&file=$f\">$f\n</a>
а сам код
<?php
if($file)
{
$dist="./files/$path/$path2/$path3/$file";
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$file");
header("Content-Length: ".filesize($dist));
header("Accept-Ranges: bytes");
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-transfer-encoding: binary");
@readfile($dist);
exit();
}
?>
|
| |
|
|
|
|
|
|
|
для: BArt Simpson
(26.08.2005 в 18:04)
| | и тут столкнулся ещё с проблеммой - имена файлов в дириктории слишком длинные что б красиво отображаться в одну строчку!!!!
хотелосьбы покороче!!!!
напр.
Вася_Пупкин_жевел_всякий_мусор.wav
а надо на выходе
Вася_Пупкин...
<?php
$h=opendir("$dist");
while(($f=readdir($h))!==false)
{
if (substr($f,0,8)!="info.txt")
{
echo"<a href=$f>$f</a><br>"
}
}
?>
|
| |
|
|
|
|
|
|
|
для: BArt Simpson
(01.09.2005 в 14:42)
| | Там ведь навернека substr !!!??? | |
|
|
|
|
|
|
|
для: BArt Simpson
(01.09.2005 в 16:45)
| | А ну да просто отрежте длинное имя при помощи substr
<?php
$h=opendir("$dist");
while(($f=readdir($h))!==false)
{
if (substr($f,0,8)!="info.txt")
{
if(strlen($f) > 8) $filename = substr($f,0,8)."...";
else $filename = $f;
echo"<a href=$f>$filename</a><br>"
}
}
?>
|
| |
|
|
|
|
|
|
|
для: BArt Simpson
(01.09.2005 в 14:42)
| | И сново на нашем интересном пути к совершенствованию препядствие
<?
if (($sub=fopen("$dist/info.txt","r"))!==false)
{
include_once("$dist/info.txt");
}
else
{
$desc="no coment";
}
?>
|
если есть файл info.txt то переменная из него забирается
если нет файла то
"Warning: fopen(./memarea/files/One for all/audio files/URC8210/info.txt): failed to open stream: No such file or directory "
и за одно
"no coment"
как с этим змеем бороться?
файл может быть в одной директории и не быть в другой? | |
|
|
|
|
|
|
|
для: BArt Simpson
(02.09.2005 в 12:48)
| | или вот ещё вариант, но ему тоже не нравится когда нет файла
<?
if (($sub=implode('',file("$dist/info.txt")))!==false)
{
$desc="$sub";
}
else
{
$desc="no coment";
}
?>
|
| |
|
|
|
|
|
|
|
для: BArt Simpson
(02.09.2005 в 12:48)
| | 1) Для этог, сначала проверяют существование файла при помощи функции file_exists() http://www.softtime.ru/dic/id_dic=173&id_group=6
<?php
if(file_exists("$dist/info.txt"))
{
if (($sub=fopen("$dist/info.txt","r"))!==false)
{
include_once("$dist/info.txt");
}
}
else
{
$desc="no coment";
}
?>
|
2) Или просто подавляют вывод сообщений при помощи символа @ http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4389
<?
if (($sub = @fopen("$dist/info.txt","r"))!==false)
{
include_once("$dist/info.txt");
}
else
{
$desc="no coment";
}
?
|
| |
|
|
|
|
|
|
|
для: BArt Simpson
(01.09.2005 в 14:42)
| | И сново!!!!
так как мы держим в секрете всё что можно, возникла потребность открыть грфический файл через всё тотже скрипт:
<?php
if(file_exists("$dist/logo.gif"))
{
$tmp=include("$dist/logo.gif");
$logo=base64_decode($tmp);
echo "
<tr>
<td>
<div align=center>
<img src=\"$logo\">
</div>
</td>
</tr>";
}
?>
|
по чтитаемости должно быть так, но в реале не получается. | |
|
|
|
|
|
|
|
|
для: BArt Simpson
(05.09.2005 в 10:59)
| | не вышло
<?
if(file_exists("$dist/logo.gif"))
{
$logo = fopen("$dist/logo.gif","rb");
if(!logo)
{
echo("Ошибка открытия файла");
}
echo "
<tr><td>
<div align=center>
$logo
</div>
</td></tr>"; }
?>
|
и результат
не gif а нодпись
Resource id #67
так как же? | |
|
|
|
|
|
|
|
для: BArt Simpson
(05.09.2005 в 11:03)
| | А нет... вывод нескольких изображений на одной странице осуществляется сложнее http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5173. Только ведь это не защитит изображения от заимствований - для того, чтобы изображение увидел посетитель - оно должно быть загружено к нему на локальную машину, а там он его всегда найдёт. | |
|
|
|
|
|
|
|
для: cheops
(05.09.2005 в 12:20)
| | а мне нужно зашитить только адрес откуда оно грузится | |
|
|
|
|
|
|
|
для: BArt Simpson
(26.08.2005 в 18:04)
| | Чёйта дафига у меня получилось директорий которые выводятся через скрипт, начал теряться!!! Как сделать чтоб они выводились по алфавиту?
<?
$dist="./files/";
$i=0;
$h=opendir("$dist");
while(($f=readdir($h))!==false)
{
if (substr($f,0,1)!=".")
{
$i++;
if (($i%2)==0)
{
echo "<td><a href=\"./index.php?go=dil&path=$f\">$f\n</a></td>";
}
else
{
echo "<td bgcolor=\"#E9E9E9\"><a href=\"./index.php?go=dil&path=$f\">$f\n</a></td>";
}
}
}
@closedir($h);
?>
|
| |
|
|
|
|
|
|
|
для: BArt Simpson
(06.09.2005 в 15:17)
| | Для вывода файлов в алфавитном порядке следует воспользоваться скриптом в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4792. Смысл такой - помещаем все названия файлов в массив - массив сортируем, а затем выводим. | |
|
|
|
|
|
|
|
для: BArt Simpson
(26.08.2005 в 18:04)
| | ***Собираю слёзки в ладошку*** Начинаю вводить карявые переменные в адресной сроке типа
http://site.ru/?go=memberarea&path=Vasya&path2=/../&path3=Pupkin
скрипт предательски выдаёт своё место положения (он вкючён инклудом), выдовая ошибку
Warning: opendir(./путь/кдириктории/Vasya////Pupkin/): failed to open dir: No such file or directory in /home/part/01/site/www/memarea/script.php on line 777
как запретить вывод ошибки если директория не правельная? | |
|
|
|
|
|
|
|
для: BArt Simpson
(09.09.2005 в 12:04)
| | Поставльте перед функцией opendir символ @, который подавляет вывод сообщений http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5146
<?php
$h = @opendir("$dist");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.09.2005 в 12:41)
| | После того как я попробовал @ я уже решил спросить, это не работает
а вот error_reporting(0); то что нужно | |
|
|
|
|
|
|
|
для: BArt Simpson
(09.09.2005 в 13:09)
| | Вообще говоря странно, что это не работает... В таком случае вы можете воспользоваться функцией file_exists(), которая проверяем на существование файл или директорию.
<?
$dist="./files/";
$i=0;
if(file_exists("$dist"))
{
$h=opendir("$dist");
while(($f=readdir($h))!==false)
{
if (substr($f,0,1)!=".")
{
$i++;
if (($i%2)==0)
{
echo "<td><a href=\"./index.php?go=dil&path=$f\">$f\n</a></td>";
}
else
{
echo "<td bgcolor=\"#E9E9E9\"><a href=\"./index.php?go=dil&path=$f\">$f\n</a></td>";
}
}
}
@closedir($h);
}
?>
|
| |
|
|
|