Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: otwarcie pliku
Forum PHP.pl > Forum > PHP
muniea
Czy da się w jakiś sposób sprawdzić czy plik został otwarty? Dajmy na to, że mam grafikę pod adresem: http://test.test/adresdoobrazka.jpg, teraz chciałbym, żeby za każdym razem gdy ktoś wejdzie w ten obrazek w bazie zapisywała się informacja o tym, że obraz został wyświetlony o tej i o tej godzinie. Jakiś pomysł?
buliq
htaccess i przekierowanie do pliku PHP, w pliku PHP na podstawie request'a wiesz ze user chce ten obrazek, zapisujesz info i wyświetlasz
Sephirus
ewentualnie pozostaje Ci przegląd/włączenie odpowiednich logów serwera (np apache) gdzie masz podane wszelkie requesty jakie przychodziły na serwer z datą i godziną.
muniea
@buliq, dzięki, stworzyłem na szybciocha coś takiego:

http://test.test/foto.jpg

htaccess
  1. RewriteEngine On
  2. RewriteRule (.*) p.php?args=$1 [QSA]


p.php
  1. $file = $_REQUEST['args'];
  2.  
  3. // tutaj funkcje do daty i innych operacji na obrazku
  4.  
  5. $type = 'image/jpeg';
  6. header('Content-Type:'.$type);
  7. header('Content-Length: ' . filesize($file));
  8. readfile($file);
  9. die();


I pytanie z ciekawości:
czy jest sposób na odpalenie osobno pliku php z htaccess, w tle? Jeżeli tak to wtedy nie musiałbym pobierać zawartości obrazka i go wyświetlać w php.
buliq
I kto by czekał na jego zakończenie?
Może jest jakiś mod, ale ja o takim nie słyszałem. Jeżeli chcesz tylko czas otwarcia to pomysł @Sephirus ma dobry pomysł.

A parsowaniem samego logu znowu może zajmować się PHP. Tylko kwestia tego kiedy.

Najlepiej byłoby umieścić logi gdzieś blisko tego skryptu i go odpalać CRON kilka razy dziennie. Stare logi do /dev/null lub do pliku drugiego, mogą się przydać.
em1X
Sposób dobry napisałeś, ale zamiast robić readfile, przekieruj ponownie na ten obrazek ale z jakąś zmienną, która jeżeli jest podana ominie zapisywanie informacji o dostępie. Proste, szybkie i skuteczne.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.