Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Statyczne i dynamiczne strony dla różnych userów
Forum PHP.pl > Forum > PHP
colargol
Jak zrobić takie rozwiązanie cacheowania stron:
- niezalogowanym wyświetla się strona *.html
- zalogowanym wpisującym ten sam adres np. example.com/page.html wyświetla się strona, która jest już wynikiem wykonania się skryptu PHP

takie rozwiązanie jest zastosowane w Wordpress Super Cache (http://wordpress.org/extend/plugins/wp-super-cache/) ale zupełnie nie wiem jak się do tego zabrać, aby móc coś podobnego zastosować np. w moim autorskim skrypcie bloga
thek
Przecież user zalogowany ma dane, które nie są dostępne u usera niezalogowanego. Choćby określone w $_SESSION winksmiley.jpg Na podstawie ich obecności możesz decydować co komu wyświetlić smile.gif Na upartego to chyba nawet z poziomu htaccess masz dostęp do zmiennej $_SERVER i jesli wprowadzisz w serwisie autoryzację userów z tego poziomu to i już na tym poziomie będziesz mógł ich filtrować.
colargol
Cytat(thek @ 13.08.2010, 15:54:47 ) *
Przecież user zalogowany ma dane, które nie są dostępne u usera niezalogowanego. Choćby określone w $_SESSION winksmiley.jpg Na podstawie ich obecności możesz decydować co komu wyświetlić smile.gif


Właśnie w tym mam problem, w jaki sposób serwer ma decydować np. aby bez korzystania z PHP wyświetlić niezalogowanemu stronę statyczną .html


Cytat(thek @ 13.08.2010, 15:54:47 ) *
Na upartego to chyba nawet z poziomu htaccess masz dostęp do zmiennej $_SERVER i jesli wprowadzisz w serwisie autoryzację userów z tego poziomu to i już na tym poziomie będziesz mógł ich filtrować.

właśnie o takie wskazówki mi chodziło, ale nie chciałbym wprowadzać jakiś innych sposobów autoryzacji niż są stosowane w większości seriwsów
ZuyPan
  1. if (!$_SESSION['zalogowany']){ //lub inna sesja
  2. //include ('plik.html');
  3. }else{
  4. //kod php
  5. }


piotr94
jak chcesz, żeby rozszerzenie było .html, a nie .php to użyj ModRewrite
thomson89
Zainteresuj się header. Jak nie zalogowany to przenieś na stronę .html. Jeżeli masz szybki serwer i użytkownik wejdzie na index.php nawet nie zauważy kiedy znajdzie się na strona.html. Do tego ob_start na początek strony.
Crozin
Z poziomu .htaccess nie będziesz miał żadnego łatwego sposobu na dostanie się do danych typu sesja wygenerowana w PHP itp., ale bez większych problemów dobierzesz się do ciasteczek. Po poprawnym zalogowaniu użytkownika mógłbyś mu ustawić ciasteczko jest-zalogowany z jakąś tam wartością. Teraz w konf. serwer możesz skorzystać z RewriteCond i zmiennej %{HTTP_COOKIE}. Określasz po prostu czy istnieje ciastko - jak tak odpalasz plik PHP, jak nie HTML.
thek
Najwygodniej więc użyj dobierania się do ciastek jak radzi Crozin. Jeśli na szybko chcesz wiedzieć co w htaccess możesz zrobić to polecam wpisać mod rewrite cheat sheet smile.gif To Ci pomoże w szybkich poszukiwaniach tego co chcesz i co możesz zrobić. Po łebkach, ale w takich wypadkach google oferuje niezastąpiona pomoc. Ustaw choćby zmianną logged wtedy w cookies a będziesz miał dostęp do niej z poziomu htaccess i pozwoli Ci to sterować ruchem innym niż autoryzowany. Tylko pamiętaj, że te dane z i w ciastkach są łatwe do usunięcia lub manipulacji i nie polegałbym na nich a bardziej na sesji. Co prawda ją też można oszukać, ale jest to o wiele trudniejsze. Jednak session hijacking czy session fixating to nie są takie calkie proste typy ataków.
colargol
Dzięki wszystkim za odpowiedzi, do mojego problemu najbardziej pasuje rozwiązanie zaproponowane przez Crozina.
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.