[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ftp and php
habryk
Всем привет! хочу подсчитывать количество просмотров файлов, которые находяться на фтп сервере, а также получить время последнего доступа к файлу! функциями фтп не получаеться. кто что подскажет??я новенький в этом деле, так что если можно поподробнее!заранее спс!
sergeiss
А как ты вообще можешь подсчитать количество этих просмотров? Как их вообще смотрят, где файлы находятся? Свои мысли есть какие?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
habryk
Цитата (sergeiss @ 15.04.2013 - 20:35)
А как ты вообще можешь подсчитать количество этих просмотров? Как их вообще смотрят, где файлы находятся? Свои мысли есть какие?

понял что отдаленно этого точно не сделать!возможно закинуть скрипт на сервер и если кто то запрашивает картинку проганять как то его запрос через мой скрипт и подсчитывать количество этих запросов и последний доступ. но я не знаю как это сделать и вообще возможно ли((перерыл оч много в интернете...
sergeiss
Цитата (habryk @ 15.04.2013 - 20:40)
возможно закинуть скрипт на сервер и если кто то запрашивает картинку проганять как то его запрос через мой скрипт и подсчитывать количество этих запросов и последний доступ. но я не знаю как это сделать и вообще возможно ли((

Да, именно так!

Цитата (habryk @ 15.04.2013 - 20:40)
но я не знаю как это сделать и вообще возможно ли((

Возможно и достаточно просто smile.gif Как именно... Попробуй поискать. У меня сейчас под рукой кода нету, чтобы показать. Там нужно несколько правильных хедеров отправить, и всё будет ОК.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
walerus
http://php.net/manual/ru/function.fileatime.php
- время последнего обращения к файлу, а количество просмотров, только через обработчик или же средствами сервера + обработчик, который будет логи обращения читать и "как то" фильтровать...
habryk
Цитата (sergeiss @ 15.04.2013 - 20:47)
Цитата (habryk @ 15.04.2013 - 20:40)
возможно закинуть скрипт на сервер и если кто то запрашивает картинку проганять как то его запрос через мой скрипт и подсчитывать количество этих запросов и последний доступ. но я не знаю как это сделать и вообще возможно ли((

Да, именно так!

Цитата (habryk @ 15.04.2013 - 20:40)
но я не знаю как это сделать и вообще возможно ли((

Возможно и достаточно просто smile.gif Как именно... Попробуй поискать. У меня сейчас под рукой кода нету, чтобы показать. Там нужно несколько правильных хедеров отправить, и всё будет ОК.

я пробовал искать, но что то ни к чему не пришел. хоть по памяти скажи, чем их отправлять, как вообще перехватить запрос?курлом?мне любая подсказка в помщь, чтобы хоть знать в каком направлении искать...
sergeiss
Вот смотри...

1. Делаем ссылку на файл. И не важно, существует он или нет, мы вообще можем сами "с ходу" создать то, чего не было! И не записывать, а сразу же динамически создать этот файл.
2. Формируем правильный заголовок.
3. Выводим в браузер данные. Они будут интерпретироваться как текст файла, а не как код страницы.

Пример из жизни.
Надо мне выводить данные в структурированном виде. Они готовятся в БД, обращение к ним по идентификатору.
Делаю файл table_file_create.php. Вот его начало (прямо с каментами взял из своего скрипта):
$id=intval( $_GET['id'] ); // идентификатор таблицы в списке таблиц

if( $id == 0 ) exit;

include_once 'connect_db.php' ;
include_once 'functions.php' ;

// вывожу заголовок
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=table_$id.csv");
header('Content-Transfer-Encoding: binary');


Далее идет запрос к БД, выбираю данные, вывожу их через обычное echo..... Но в итоге юзер получает именно файл, а не страницу для браузера - вот что важно.

Можно данные взять не из БД, а из любого готового файла, который можно взять через file_get_contents() и "вывести" через echo. При этом то, по какой ссылке у тебя будет идти обращение к файлу и какой ты будешь брать на самом деле... Всё может быть разным :) Думаю, сам тут догадаешься, как можно реализовать разные варианты. Или подскажем, если своих версий не будет...

В моем случае в ссылке указывается href="http://....../table_file_create.php?id=234139"
Идентификатор появляется в процессе подготовки данных и записи их в промежуточную таблицу.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
TranceIT
А почему бы просто не парсить логи доступа? Мы получим не только кол-во обращений, но и сможем устанавливать временные рамки...

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
sergeiss
Цитата (TranceIT @ 16.04.2013 - 21:17)
А почему бы просто не парсить логи доступа?

Если вопрос ко мне smile.gif, то я не знаю, что это даст.

А "мой" подход, во-первых, позволяет вести подсчет обращений. Во-вторых позволяет, если требуется, отдавать файлы только авторизованным юзерам. В-третьих, можно формировать файлы динамические. В-четвертых, можно скрывать за ссылками реальные имена файлов. В-пятых, можно сделать ссылку значимой в течение определенного времени... Вобщем, удобств много.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.