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

Форум PHP

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

 

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

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

тема: Счетчик на download
 
 автор: Odin Kg   (13.09.2004 в 00:45)   письмо автору
 
 

Хочу сделать счетчик на download файлов со своей странички. Для этого написал отдельный php-файл, куда происходит ссылка при попытке download-а. А в качестве параметра передаю относительный путь к нужному файлу. (?file=…)

<?php

$file=$_GET["file"];

if (file_exists($file))
{
list($name,$ext)=explode(".",$file);
$ext="dnl";
//$download=implode(list($name,$ext),".");
$download=$name.".";
$download=$download.$ext;

$arrayer=@file($download); // Прочитать содержимое файла в масссив

$counter=$arrayer[0]; // Извлечь первый (и единственный) элемент

++$counter; // Увеличить счетчик обращений

$fh=fopen($download,"w");
if(flock($fh, LOCK_EX) )
{
// Записываем значение счётчика
fwrite($fh,$counter);
flock($fh, LOCK_UN);
}
fclose($fh);

// ВОТ ТУТ НАДО КАК-ТО ОТПРАВИТЬ ФАЙЛ КЛИЕНТУ
Header("Location: $file"); // Я ПОПРОБОВАЛ ИЗМЕНИТЬ РЕСУРС, НО ТАК НЕЛЬЗЯ
}
else
{
print "<html> <body> <H1>Ошибка! Запрошенный файл не найден. </H1> </body> </html>";
}

?>

Вопрос такой - а как заставить файл пересылаться? Я попробовал перекинуть ссылку на ресурс через Header("Location: $file"); , но такой метод не работает для файлов типа exe или rar (Сервер пишет: You don't have permission to access /Goonies.exe on this server.), а для php-файлов все работает.

   
 
 автор: glsv (Дизайнер)   (13.09.2004 в 09:09)   письмо автору
 
   для: Odin Kg   (13.09.2004 в 00:45)
 

Попробуйте вот так
<?php
  
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=\"../files/file.zip\"'>";
?>

   
 
 автор: cheops   (13.09.2004 в 09:14)   письмо автору
 
   для: Odin Kg   (13.09.2004 в 00:45)
 

Попробуйте HTML кодом передать заголовок, и не location, а reflesh:
<?php
    
echo "<html><head>";
    echo 
"<META HTTP-EQUIV='Refresh' CONTENT='0; URL= $file'>";
    echo 
"</head></html>";
?>


PS Посмотрите так же права доступа к файлам, имеет ли доступ ваш скрипт к ним...

   
 
 автор: Odin Kg   (13.09.2004 в 15:48)   письмо автору
 
   для: cheops   (13.09.2004 в 09:14)
 

Спасибо за помощь.
Действительно, после применения Ваших советов положение улучшилось. Однако вместе со скачиванием, на экран "вылетает" чистая белая страница (а мне нужно , чтобы содержание сохранялось), и вдобавок по-прежнему не хотят скачиваться exe-файлы (c rar проблема пропала). Нет ли какого-нибудь другого метода? Может мне поменять принцип? Как бы Вы сделали такой счетчик.

   
 
 автор: Odin Kg   (13.09.2004 в 15:50)   письмо автору
 
   для: Odin Kg   (13.09.2004 в 15:48)
 

Чуть не забыл. А как смотреть права доступа? (я пользуюсь XP и локальным Appachem).

   
 
 автор: cheops   (14.09.2004 в 16:07)   письмо автору
 
   для: Odin Kg   (13.09.2004 в 15:50)
 

Если у вас XP, то права доступа тут не причём, скорее это уже настройки Internet Explorer - посмотрите Свойства обозревателя -> Безопасность -> Другой
Переключатели должны находится в следующих положениях:
Для "Загрузка файлов" - Разрешить
Для "Запуск программ и файлов в окне IFRAME"

   
 
 автор: Odin Kg   (15.09.2004 в 07:32)   письмо автору
 
   для: cheops   (14.09.2004 в 16:07)
 

Спасибо за помощь.
Мне удалось самому найти решение - дело было в настройках апача, у которого exe-файл считался испольняемым cgi-скриптом. После исправления этого факта прекрасно заработало мое первое решение - через Location.
Еще раз спасибо за внимательное отношение к моим вопросам.

   
Rambler's Top100
вверх

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