Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] odczyt cookie w JavaScript
Forum PHP.pl > Forum > Przedszkole
qba10
mam taki skrypt do odczytywania cookie napisany w JavaScript
  1. <script type="text/javascript">
  2. function PobierzWartoscCookie(proces) {
  3. var dc = document.cookie;
  4. var prefix = escape(proces) + "=";
  5. // znalezienie początku wartości ciasteczka
  6. var begin = dc.indexOf("; " + prefix);
  7.  
  8. // jeśli dokument nie zawiera nazwy ciastka...
  9. if (begin == -1)
  10. {
  11. begin = dc.indexOf(prefix);
  12. if (begin != 0)
  13. return null;
  14. // ...jeśli zawiera, to do indeksu dodajemy 2 (średnik i jedna spacja dają dwa znaki)
  15. }
  16. else
  17. {
  18. begin += 2;
  19. }
  20.  
  21. // teraz funkcja szuka indeksu wystąpienia następnego średnika po miejscu,
  22. // w którym znaleziono nazwę ciastka
  23. var end = document.cookie.indexOf(";", begin);
  24. // jeśli nie ma więcej ciastek, to indeks końcowy równy jest długości pliku
  25. if (end == -1)
  26. end = dc.length;
  27. // zwracamy fragment łańcucha, zawierający wartość ciastka
  28. return unescape(dc.substring(begin + prefix.length, end));
  29. }
  30. </head>
  31. document.write("lol");
  32. document.write(PobierzWartoscCookie(proces));
  33.  
  34. </body>
  35. </html>

Niestety on mnie chyba nie lubi i nie ma zamiaru odczytać cookie który na 100% istnieje.
Prosiłbym o jakąś wskazówkę gdzie mam błąd.

PS: Zabawę z JS zaczełem wczoraj wieczorem na rzecz mojego cms'a więć chyba nie muszę tłumaczyć że w tej dziedzinie jestem bardziej ziolny niż wiossenny liść klonu winksmiley.jpg
sniezny_wilk
Ja na podstawie w jakiegoś kursu w necie przygotowałem coś takiego:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Ciacho</title>
  5. </head>
  6.  
  7. <body>
  8. <script type="text/javascript">
  9. var tresc='Treść pierwszego cookie'; //ustalamy treści cookie
  10. tresc=escape(tresc); //kodujemy tekst (w tym przykładzie nie jest to niezbędne)
  11. document.cookie="ciastko1="+tresc; //tworzymy cookie o nazwie ciastko1
  12.  
  13. var waznosc=new Date(); //tworzymy nowy obiekt zawierający datę
  14. var tresc='Treść stałego cookie'; //ustawianie treści cookie
  15. tresc=escape(tresc); //kodowanie tekstu
  16. waznosc.setTime(waznosc.getTime()+1000*60*60*24*7); //ustawianie daty wygaśnięcia (na 7 dni)
  17. document.cookie="ciastko2=" + tresc + ";expires=" + waznosc.toGMTString(); //tworzy cookie, parametr expires oznacza termin wygaśnięcia
  18.  
  19. function czytaj_ciacho(nazwa)
  20. {
  21. nazwa+="="; //uzupełnia nazwę
  22. startCookie=document.cookie.indexOf(nazwa); //sprawdza czy istnieje cookie o podanej nazwie
  23. if (startCookie==-1) {return ""} //jeżeli nie istnieje
  24. startCookie+=nazwa.length; //początek treści cookie
  25. if (document.cookie.indexOf(";",startCookie)==-1) //jeżeli jest więcej cookie
  26. {
  27. koniecCookie=document.cookie.length; //jeżeli nie ma podstawia jako koniec cookie, koniec całego tekstu
  28. }
  29. else
  30. {
  31. koniecCookie=document.cookie.indexOf(";",startCookie); // podstawia pod koniec miejsce występowania ";" (czyli początek następnego cookie)
  32. }
  33. textCookie=document.cookie.substring(startCookie,koniecCookie); //kopiuje treść cookie
  34. textCookie=unescape(textCookie); //rozkodowuje treść
  35. return textCookie; //zwraca wartość
  36. }
  37. document.write("lol");
  38. document.write(czytaj_ciacho("ciastko1"));
  39.  
  40. </body>
  41. </html>


EDIT: dla zainteresowanych kurs JS o ciastkach jest tutaj

wszystko działa smile.gif ciastko2 - ma ustalony czas wygaśnięcia. Pamiętaj o kodowaniu utf-8, aby wpisana treść ciastka była poprawnie wyświetlana.
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.