![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam potrzebe aby zablokowac klientow ktorzy nie akceptuja cookies. Nie zobacza nic i czesc. Z tym ze chcialbym aby odbywalo sie to juz przy samym wejsciu na pierwsza strone - nie po pierwszym kliknieciu na niej. Pytanie jak to zrobic? Ten post edytował wshk 21.04.2009, 12:19:08 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 286 Pomógł: 34 Dołączył: 4.09.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zapisz coś do cookies i spróbuj odczytać ...
potem IF ... -------------------- Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 6 Dołączył: 18.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zapisz coś do cookies i spróbuj odczytać ... potem IF ... Hehe, takie oczywiste to nie jest jeżeli mówimy o pierwszym uruchomieniu strony. Standardowym php problemu nie da się rozwiązać przy pierwszym uruchomieniu strony. setcookie() wykona się poprawnie po stronie serwera niezależnie od tego czy user ma włączone cookies czy nie. W grę wchodzi Ajax, ale de facto będzie to też powtórne wykonanie transakcji POST/GET, ten sam efekt co przy przeładowaniu strony. Dużo zależy od tego do czego potrzebujesz tej informacji. Jeżeli chcesz powiadomić user'a o tym, że strona wymaga COOKIES, aby działać poprawnie to możesz stworzyć posłużyć się wspomnianym AJAX'em bądź wykorzystać inną technologię (popularnie jest to JS, DTML), np.: http://techpatterns.com/downloads/javascri...eck_cookies.php http://www.zope.org/Members/kmcnamee/HowTo.2004-11-21.2043 Jeżeli przy pierwszym uruchomieniu strony próbujesz w php sprawdzać warunkowo czy cookie istnieje, lub odwoływać się do jego wartości to jest to zwykły błąd. Wartość cookie musi być przekazana do serwera php przez użytkownika strony, ale by ten mógl wykonać jakąś akcję najpierw musi załadować stronę ... Jest jeszcze jedna możliwość, ale chyba niezbyt elegancka... Wyświetlenie pierwszej strony jak pustej z zaszytym setcooki i redirect do strony właściwej za pomocą meta. Ten post edytował pi_wo 21.04.2009, 14:08:27 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Aktualanie uzywame tej drugiej-mniej eleganckiej mozliwosci.
Ci co nie lubia ciasteczek widza ciasteczowego potwora zamiast strony. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Problem co jakiś czas pojawia się na forum. A sprowadza się i tak do jednego rozwiązania. Specyfikacja PHP, obsługa cookies przez przeglądarki czy nawet sama specyfikacja protokołu HTTP (nagłówki) sprawia, że niemożliwe jest wykrycie obsługi cookies za jednym tylko żądaniem.
Pomysł z użyciem AJAX'a jest moim zdaniem niezbyt trafiony. Bo czy ktoś, kto z nadwrażliwości na zachowanie prywatności wyłącza cookies, zostawi włączoną obsługę JS? Czy jakaś niszowa przeglądarka, która nie obsługuje cookies będzie obsługiwała JS? http://forum.php.pl/index.php?showtopic=64...mp;#entry341835 http://forum.php.pl/index.php?showtopic=10...mp;#entry515076 [edit] Bardzo dobrym rozwiązaniem jest np. ustawić ciastko przy wywołaniu strony głównej i sprawdzić je przy próbie wczytania jakiegoś obrazka czy arkusza styli (i np. arkusz styli zależny od obsługi cookies - dzięki temu już możesz pokazać/ukryć komunikat). Przecież to dwa oddzielne żądania wywoływane jedno po drugim. Wtedy wszystko dzieje się 'za plecami' użytkownika, jest eleganckie, a działanie strony nie zmienia się. Ten post edytował sowiq 24.04.2009, 09:13:07 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:49 |