Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]detekcja obsługi cookies
Forum PHP.pl > Forum > Przedszkole
Mary$
mam jaki kod, jak zamiszczony poniżej. Probelm jest taki, że gdy pierwszy raz wchodze na stronę, to wyswietla sie komunikat o wyłączonej obsłudze cookies (mimo, że mam włączoną akceptację cookies), a gdy odświeżę, to już go nie ma. Co się dzieje?

  1. <?php
  2. setcookie("TEMPCOOKIE", "NOVALUE", time() + 30);
  3. IF (!IsSet($_COOKIE['TEMPCOOKIE'])){
  4. Echo '
  5. <table style="background-color:#ffd7d7;width:700px;height:200px;border:1px solid #ff0000;margin-left:auto;margin-right:auto;">
  6. <tr>
  7. <td style="color:#ff0000;text-align:center;font-family:Tahoma;font-size:24pt;"><strong>Twoja przeglądarka nie obsługuje cookies. System nie bedzie działał poprawnie
    .</strong><br/> Włącz w ustawieniach swojej przeglądarki akceptację cookies!'
    ;
  8. IF (strstr($_SERVER['HTTP_USER_AGENT'],'Opera'))
  9. Echo '<br/><span style="font-size:18pt;">WejdĽ w <i>Narzędzia :: Preferencje :: Zaawansowane :: Ciasteczka</i> i wybierz "Akceptuj ciasteczka"</span>';
  10. elseif (strstr($_SERVER['HTTP_USER_AGENT'],'Firefox'))
  11. Echo '<br/><span style="font-size:18pt;">WejdĽ w <i>Narzędzia :: Opcje :: Prywatność </i> i wybierz "Akceptuj ciasteczka"</span>';
  12. elseif (strstr($_SERVER['HTTP_USER_AGENT'],'MSIE'))
  13. Echo '<br/><span style="font-size:18pt;">WejdĽ w <i>Narzędzia :: Opcje internetowe :: Prywatność </i> i kliknij przycisk "Witryny" pod suwakiem. Następnie wpisz adres <a href="http://www.rotmanka.nazwa.pl" target="_blank">http://www.rotmanka.nazwa.pl</a> i kliknij "Zezwalaj". Następnie kliknij OK i znowu OK. Teraz odświez stronę.</span>';
  14.  Echo '</td>
  15. </tr>
  16. </table>';
  17. };
  18. ?>
Kuziu
Cookie jest nastawiane po stronie uzytkownika, więc wywołanie setcookie nie daje zadnego efektu do czasu przeladowania strony dopiero wtedy przeglądarka wysyła cookie do tablicy $_COOKIE.

Musisz po nastawianiu cookie dać header("Location: adres...."); na inny plik PHP z kodem ktory masz ponizej setCookie albo na ten sam z jakims warunkiem.
Mary$
hmmm, a może jest jakaś inna metoda wykrycia, czy przeglądarka obsługuje cookies?
dem
odswiezam pytanie zawarte w poscie wyzej... sam jestem ciekaw
Istalacar
O ile ja się dobrze orientuję to raczej bez przeładowania strony to nie przejdzie, możesz skorzystać z ajaxa, bądź kod w tym stylu:
  1. <?
  2. if (isset($_GET[a]))
  3. {
  4.  if (isset($_COOKIE[test]))
  5. echo 'Twoja przeglądarka obsługuje cookies';
  6.  else
  7. echo 'Twoja przeglądarka nie obsługuje cookies';
  8. }
  9. else
  10. {
  11.  setcookie('test', 1, time()+3600);
  12.  echo 'Testowanie w trakcie<script>location.href="'.$_SERVER[PHP_SELF].'";</script>';
  13. }
  14. ?>
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.