Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Rozpoznawanie klientow nie akceptujacych cookies, Jak to zrobic?
wshk
post 21.04.2009, 12:05:29
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
DREEMus
post 21.04.2009, 13:17:04
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
Go to the top of the page
+Quote Post
pi_wo
post 21.04.2009, 14:04:54
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 18.03.2009

Ostrzeżenie: (0%)
-----


Cytat(DREEMus @ 21.04.2009, 14:17:04 ) *
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
Go to the top of the page
+Quote Post
wshk
post 24.04.2009, 08:29:42
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.
Go to the top of the page
+Quote Post
sowiq
post 24.04.2009, 09:07:45
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:49