Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли закодировать?
 
 автор: TetRiska   (27.11.2008 в 21:41)   письмо автору
 
 

echo "<html><head><meta http-equiv='Refresh' content='0 URL=$myrow[put_f]'></head></html>";

В $myrow[put_f] передается путь к файлу..Можно ли закодировать его, чтобы юзер нажав просмотр исходного кода страницы увидел не читаемый текст? И не повлияет ли это на скачивание?

И еще как открытую страничку закрыть автоматически? После ридеректа на скачивание страничка закрывалась?

  Ответить  
 
 автор: sim5   (27.11.2008 в 21:46)   письмо автору
 
   для: TetRiska   (27.11.2008 в 21:41)
 

Кодируйте, правда этот путь не только юзер не увидит, но и браузер не найдет. Передавайте вместо пути параметр, а уж на сервере обрабатывайте его, хотя зачем тогда refresh...

  Ответить  
 
 автор: TetRiska   (27.11.2008 в 22:04)   письмо автору
 
   для: 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.. Подскажите что и как...Спс

  Ответить  
 
 автор: sim5   (28.11.2008 в 07:15)   письмо автору
 
   для: TetRiska   (27.11.2008 в 22:04)
 

То что у пользователя, то ему уже принадлежит в любом случае. Что вы подразумеваете под кодированием? download.php?id=чего-то спрятать? Ну можно это "обезобразить" с помощью JS, но для кого, для честных? Так это им и в открытом виде нафик не нужно, а для "продвинутых" получить ваш download.php?id=чего-то труда не составит.
И зачем это нужно? Вы отдаете файл на скачивание не по прямой ссылке, а посредством скрипта, значит уже прямой путь к нему скрыт. Вы отдаете файл по прямой ссылке, значит устанавливайте на него временное ограничение. И таких ограничений и если может быть много, начиная от банальной регистрации, кончая отправкой СМС...
Если вы говорите о шифоровании $myrow[put_f], то это вообще полный бред. Как вы представляете в этом случае переход браузера?

  Ответить  
 
 автор: TetRiska   (29.11.2008 в 01:49)   письмо автору
 
   для: 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.Как определить существует ли файл на скачивание по нужной ссылке?
Буду признателен за ответы.

  Ответить  
 
 автор: sim5   (29.11.2008 в 04:13)   письмо автору
 
   для: 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. ;-)

  Ответить  
 
 автор: sl1p   (29.11.2008 в 04:21)   письмо автору
 
   для: sim5   (29.11.2008 в 04:13)
 

там наверное имеется в виду транслит put => put' => путь :)

  Ответить  
 
 автор: sim5   (29.11.2008 в 04:39)   письмо автору
 
   для: sl1p   (29.11.2008 в 04:21)
 

Спасибо за разъяснение, сам бы не догдался.)

  Ответить  
 
 автор: TetRiska   (29.11.2008 в 14:51)   письмо автору
 
   для: 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. Ктото слышла о скин кодах? Возможно я не так понял..В общем суть такова, они зашифровывают путь к файлу и браузер может распознать этот путь, а юзер нет.
Жду ответов:)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования