Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dostęp do img tylko po zalogowaniu
Forum PHP.pl > Forum > Przedszkole
radponiewaz
Cześć,
Przepraszam, jak taki temat już tu był. Porsze o link a nie krytykę. Szukanie tematu wśród kilkiset tysięcy wpisów wbrew pozorom nie jest taki łatwe.

Szukam pomysłu na wyświetlenie kilku zdjęć, ale tylko dla osób, które się zalogują.

Problem jest taki, że jak się ktoś zaloguje, wejdzie w galerię a potem skopiuje URL i się wyloguje, to po wklejeniu tego linku w dowolnej przeglądarce i tak się pokaże ta galeria. W sumie logowanie jest potrzebne tylko po to, aby wyczaić link, potem staje się bezużyteczne... Po co takie logowanie, skoro przed niczym nie chroni(?)

Logowanie zrobiłem z COOKIES, niby działa.

Kombinowałem już na różne sposoby: basename(), ale to ucina tylko ścieżkę a zostawia nazwe pliku, której podstawienie w <img src=...> nic nie da, bo nie jest to przecież prawidłowa ścieżka, tylko sama nazwa.

Kombinowałem z token_id, generowanymi losowo.

Kombinowałem z dynamiczną zmianą nazwy katalogu, w którym są zdjęcia, ale problem jest w momencie, gdy więcej niż jedna osoba próbuje obejrzeć te zdjęcia.

Pliz o pomoc...
Dzięi z góry za wskazówki i podpowiedzi.
redeemer
Dostęp do katalogu z obrazkami zablokuj w pliku .htaccess, a do wystawiania obrazków użyj skryptu PHP który sprawdzi czy ktoś jest zalogowany, jeśli tak wystawia mu obrazek (header + readfile).
piotrex41
Ja bym proponował zrobić logowanie na sesji. I dostęp do podstrony jest tylko jeśli np. $_SESSION['userName'] istnieje, a będzie istnieć tylko jeśli ktoś będzie zalogowany. Polecał bym zrobić metodę to sprawdzania tego, czy ktoś jest zalogowany i na górze pliku z obrazkami zrobić IFa, jeśli w sesji nie ma userName to wyrzuca na stronę główną i po kłopocie smile.gif

EDIT:
Moja metoda sprawdzająca czy parametry sesji istnieją:
  1. /**
  2.  * Metoda sprawdzająca czy użytkownik jest obecnie zalogowany
  3.  *
  4.  * Sprawdza czy paramerty sesji istnieją
  5.  */
  6. public function isLogged()
  7. {
  8. if (isset($_SESSION['userLogin']) && isset($_SESSION['isLogged']))
  9. {
  10. if ($_SESSION['isLogged'] == 1)
  11. {
  12. return TRUE;
  13. }
  14. else
  15. {
  16. return FALSE;
  17. }
  18. }
  19. else
  20. {
  21. return FALSE;
  22. }
  23. }

OFC przy logowaniu trzeba sesję utworzyć i te parametry ustawić, a przy wylogowaniu trzeba zniszczyć sesję, żeby to działało jak trzeba smile.gif
radponiewaz
redeemer - dzięki!
piotrex41 - dzięki!

Do redeemer - .htaccess - to dla mnie zamotane, nie dam rady tego zrobić sad.gif

Do piotrex41 - a masz jakiś pomysł na to, żeby w p r o s t y sposób zapobiegać wyświetlania img po wklejeniu URL?
redeemer
Cytat(radponiewaz @ 16.07.2012, 13:46:44 ) *
...
Do redeemer - .htaccess - to dla mnie zamotane, nie dam rady tego zrobić sad.gif
...

Kod
deny from all
piotrex41
Chyba tylko .htaccess może zapobiec wyświetlaniu IMG po wklejeniu jego adresu do przeglądarki.

Możesz jeszcze spróbować, zmieniać nazwę katalogu po utworzeniu sesji, a po jej zniszczeniu lub braku istnienia wraca do pierwotnej nazwy, której nikt nie zna.
Np. masz obrazki w katalogu imaaageees, ale gdy sesja istnieje ten katalog nazywa się img012345 (cyferki losowe), ale gdy nie ma sesji (inna przeglądarka, wylogowanie) to ten katalog tymczasowy nie istnieje, więc nie pokaże zdjęcia, ale ma to minus, jak kilka osób będzie chciało obejrzeć zdjęcia.

Można by jeszcze bawić się w katalogi tymczasowe, żyjące puki żyje sesja, ale nie wiem na ile będzie to wydajne, dla każdej sesji tworzyć katalog tymczasowy, przenosić tam zdjęcia które ktoś ogląda i kasować katalog po wylogowaniu/zniszczeniu sesji.

Mimo wszystko polecam .htaccess smile.gif
radponiewaz
Cytat(redeemer @ 16.07.2012, 13:51:47 ) *
Kod
deny from all


smile.gif
OK, chyba z tym powalczę

Cytat(piotrex41 @ 16.07.2012, 13:55:26 ) *
Chyba tylko .htaccess może zapobiec wyświetlaniu IMG po wklejeniu jego adresu do przeglądarki.

Możesz jeszcze spróbować, zmieniać nazwę katalogu po utworzeniu sesji, a po jej zniszczeniu lub braku istnienia wraca do pierwotnej nazwy, której nikt nie zna.
Np. masz obrazki w katalogu imaaageees, ale gdy sesja istnieje ten katalog nazywa się img012345 (cyferki losowe), ale gdy nie ma sesji (inna przeglądarka, wylogowanie) to ten katalog tymczasowy nie istnieje, więc nie pokaże zdjęcia, ale ma to minus, jak kilka osób będzie chciało obejrzeć zdjęcia.

Można by jeszcze bawić się w katalogi tymczasowe, żyjące puki żyje sesja, ale nie wiem na ile będzie to wydajne, dla każdej sesji tworzyć katalog tymczasowy, przenosić tam zdjęcia które ktoś ogląda i kasować katalog po wylogowaniu/zniszczeniu sesji.

Mimo wszystko polecam .htaccess smile.gif


No właśnie próbowałem ze zmianami nazw katalogów, ale problem jest przy wielodostępie sad.gif

No nic - pomęczę sie z .htaccesem
Dzięki.
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.