|
|
|
| echo "<html><head><meta http-equiv='Refresh' content='0 URL=$myrow[put_f]'></head></html>";
В $myrow[put_f] передается путь к файлу..Можно ли закодировать его, чтобы юзер нажав просмотр исходного кода страницы увидел не читаемый текст? И не повлияет ли это на скачивание?
И еще как открытую страничку закрыть автоматически? После ридеректа на скачивание страничка закрывалась? | |
|
|
|
|
|
|
|
для: TetRiska
(27.11.2008 в 21:41)
| | Кодируйте, правда этот путь не только юзер не увидит, но и браузер не найдет. Передавайте вместо пути параметр, а уж на сервере обрабатывайте его, хотя зачем тогда refresh... | |
|
|
|
|
|
|
|
для: sim5
(27.11.2008 в 21:46)
| | Сейчас объясню как я сделал скачивание файла:
1.На страничке кликаем скачать и у нас параметр ИД этого фильма летит на след страничку download.php?id=...
2. На ней мы получаем переменную проверяем есть ли она, если нет то придаем значение 1
3. Делаем запрос на выборку из таблици по id='$id'
4.Записываем в массив и потом его юзаем
5.Используем редирект в случае если путь к файлу прописан в базе
echo "<html><head><meta http-equiv='Refresh' content='0 URL=$myrow[put_f]'></head></html>";
|
Без рефреша файл не начнется качаться...И если просмотреть исходный код страницы путь будет виден:( Как зашифровать то?
Вот мой весь код:
<a style='color:#FF3300; text-decoration:none' href='download.php?id=%s' target='_blank'>Скачать сэмпл фильма</a>
|
<?
include ("blocks/bd.php");
if(isset($_GET['id'])) {$id = $_GET['id'];}
if(!isset($id)) {$id=1;}
$result = mysql_query("SELECT * FROM data WHERE id = '$id'",$db);
$myrow = mysql_fetch_array($result);
if($myrow["put_f"] =="")
{
echo "<table align='center' width='100%' height='100%'>
<tr>
<td style='padding:250px'><strong>Файл не найден. Отпишитесь в комментарии фильма или обратитесь к администратору!</strong></td>
</tr>
</table>";
}
else
{
echo "<html><head><meta http-equiv='Refresh' content='0 URL=$myrow[put_f]'></head></html>";
}
?>
|
Это все что я смог придумать, т.к. учусь только программировать на PHP.. Подскажите что и как...Спс | |
|
|
|
|
|
|
|
для: TetRiska
(27.11.2008 в 22:04)
| | То что у пользователя, то ему уже принадлежит в любом случае. Что вы подразумеваете под кодированием? download.php?id=чего-то спрятать? Ну можно это "обезобразить" с помощью JS, но для кого, для честных? Так это им и в открытом виде нафик не нужно, а для "продвинутых" получить ваш download.php?id=чего-то труда не составит.
И зачем это нужно? Вы отдаете файл на скачивание не по прямой ссылке, а посредством скрипта, значит уже прямой путь к нему скрыт. Вы отдаете файл по прямой ссылке, значит устанавливайте на него временное ограничение. И таких ограничений и если может быть много, начиная от банальной регистрации, кончая отправкой СМС...
Если вы говорите о шифоровании $myrow[put_f], то это вообще полный бред. Как вы представляете в этом случае переход браузера? | |
|
|
|
|
|
|
|
для: sim5
(28.11.2008 в 07:15)
| | Вот немного подработал файл:
<?
include ("blocks/bd.php");
if(isset($_GET['id'])) {$id = $_GET['id'];}
if(!isset($id)) {$id=1;}
$result = mysql_query("SELECT * FROM data WHERE id = '$id'",$db);
$myrow = mysql_fetch_array($result);
if($myrow["put_f"] =="")
{
echo "<table align='center' width='100%' height='100%'>
<tr>
<td style='padding:250px'><strong>Файл не найден. Отпишитесь в комментарии фильма или обратитесь к администратору!</strong><center><br><input style='border:1px solid gray; background-color:#f6f6f6; width:135px' name='close' type='button' value='Закрыть страничку' onclick='javascript:self.close();'></center></td>
</tr>
</table>";
}
else
{
include ("encoding_html.php");
echo "<html><head><meta http-equiv='Refresh' content='0 URL=$myrow[put_f]'></head></html>";
$new_count_f = $myrow["count_f"] + 1;
$date_f = date("Y-m-d H:i:s");
$update_count_f = mysql_query ("UPDATE data SET count_f='$new_count_f',date_f='$date_f' WHERE id='$id'",$db);
}
?>
|
При просмотре исходного кода странички нефига непонятно:) Но, скачав файл к примеру фаерфоксом можно получить путь к файлу скопировав ссылку на этот файл :( Вот бы от этого еще защитится както, не могу приложить ума.
Еще пару вопросиков:
1.Как определить нажал ли пользователь на скачивание или отменил, чтобы потом закрыть страничку?
2.Как определить существует ли файл на скачивание по нужной ссылке?
Буду признателен за ответы. | |
|
|
|
|
|
|
|
для: TetRiska
(29.11.2008 в 01:49)
| | $myrow = mysql_fetch_assoc($result); - забудьте вы об этой mysql_fetch_array().
<?
if(!$myrow["put_f"]) {
//понятно, сообщаем...
//не понятно зачем здеь JS, у вас что, это в новом окне организовано?
} else {
$new_count_f = //... ?
$date_f = //... ?
$update_count_f = //... ?
header("location: $myrow[put_f]");
//"При просмотре исходного кода странички нефига непонятно:)"
//и что тут не понятного? да и чего тут нужно понимать?
}
|
1. Вот этого я не знаю как определить, ибо $myrow[put_f], надо полагать, это прямая ссылка на скачиваемый файл, так почему UPDATE data SET count_f='$new_count_f', ... вы производите на этой странице, не зная, был ли запрос на скачивание? Уж определяйте это тогда непосредственно по запросу $myrow[put_f].
2. А зачем тогда проверка по $myrow["put_f"]? Узнать наличие файла - file_exists().
PS. put - с английского означает помещенный (поместить), а путь будет как path. ;-) | |
|
|
|
|
|
|
|
для: sim5
(29.11.2008 в 04:13)
| | там наверное имеется в виду транслит put => put' => путь :) | |
|
|
|
|
|
|
|
для: sl1p
(29.11.2008 в 04:21)
| | Спасибо за разъяснение, сам бы не догдался.) | |
|
|
|
|
|
|
|
для: sim5
(29.11.2008 в 04:39)
| |
<?
include ("blocks/bd.php");
if(isset($_GET['id'])) {$id = $_GET['id'];}
if(!isset($id)) {$id=1;}
$result = mysql_query("SELECT * FROM data WHERE id = '$id'",$db);
$myrow = mysql_fetch_array($result);
$filename = $myrow["put_f"];
if (file_exists($filename))
{
include ("decode_html.php");
echo "<html><head><meta http-equiv='Refresh' content='0 URL=$myrow[put_f]'></head></html>";
$new_count_f = $myrow["count_f"] + 1;
$date_f = date("Y-m-d H:i:s");
$update_count_f = mysql_query ("UPDATE data SET count_f='$new_count_f',date_f='$date_f' WHERE id='$id'",$db);
}
else
{
echo "<table align='center' width='100%' height='100%'>
<tr>
<td style='padding:135px'><strong>Файл отсутствует, либо был переименован. Отпишитесь в комментарии фильма или обратитесь к администратору!</strong><center><br><input style='border:1px solid gray; background-color:#f6f6f6; width:135px' name='close' type='button' value='Закрыть страничку' onclick='javascript:self.close();'></center></td>
</tr>
</table>";
exit();
}
?>
|
1. Да в новом окне
2. Запрос на обновление обновляет поле количество скачивания в любом случае, скачал или не скачал (я просто не знаю как вычислить нажатую кнопку на скачивание - Кто подскажет как реализовать?)
3. JS нужен для того чтобы юзер в случае просмотра исходного кода странички не увидел путь к файлу /files/films/tra la la
4. Не пойму как вывести сообщение о не правильной ссылке..Например я забыл полностью указать путь к файлу в поле put_f и при нажатии по ссылке скачать меня перебрасывает на страничку 404..Как избежать этого?
5. Ктото слышла о скин кодах? Возможно я не так понял..В общем суть такова, они зашифровывают путь к файлу и браузер может распознать этот путь, а юзер нет.
Жду ответов:) | |
|
|
|