Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Koniec sesji jak przywrócić zawartośc pola tekstowego
Forum PHP.pl > Forum > PHP
amii
Chciałbym zrobić coś takiego jak na forum php.pl czyli przywrócenie zawartości pola tekstowego po upływie sesji. To co wymyśliłem to sprawdzanie warunku dla czasu upłynięcia sesji. Nie wiem tylko jak 'ugryźć' tą część z przywracaniem zawartości pola txt.
Pomysły jakie mam to okresowy zapis zawartości pola do zmiennej za pomocą JS i AJAX. Any ideas ?

  1. if(!session_is_registered('pole_tekstowe')) { //jeśli sesja minęła to... trzeba przywrócić zawartość pola tekstowego
  2.  
  3.  
  4. }



wNogachSpisz
Jeśli chodzi o tylko jedno pole, to można pokusił się o wrzucenie do cookie...

Kod
5.3  Implementation Limits

   Practical user agent implementations have limits on the number and
   size of cookies that they can store.  In general, user agents' cookie
   support should have no fixed limits.  They should strive to store as
   many frequently-used cookies as possible.  Furthermore, general-use
   user agents SHOULD provide each of the following minimum capabilities
   individually, although not necessarily simultaneously:

      *  at least 300 cookies

      *  at least 4096 bytes per cookie (as measured by the characters
         that comprise the cookie non-terminal in the syntax description
         of the Set-Cookie2 header, and as received in the Set-Cookie2
         header)

      *  at least 20 cookies per unique host or domain name


Czyli przeglądarka powinna pozwolić na ustawienie 20 cookiesów po 4096 bajtów każdy...
Powinno Wystarczyć.
Oczywiście nie polecam, to rozwiązanie tylko dla prawdziwych twarcieli i wymiataczy smile.gif

Troche poczytałem. Okazuje się że jest wiele więcej metod na przechowywanie danych po stronie klienta.

Kod
flash: Flash 8 persistent storage.
gears: Google Gears-based persistent storage.
localstorage: HTML5 draft storage.
whatwg_db: HTML5 draft database storage.
globalstorage: HTML5 draft storage (old spec).
ie: Internet Explorer userdata behaviors.
cookie: Cookie-based persistent storage.


Do pobrania:
http://pablotron.org/?cid=1557

Pod FF i Opera działa mechanizm "localstorage", do 5MB..
http://frontend.pl/2010/04/w-strone-offline-localstorage/
amii
Dane nie muszą być koniecznie przechowywane po stronie klienta (mogą być np. w bazie i myślę, że to było by prostsze rozwiązanie). Pozostaje jednak kwestia zaczytania aktualnej zawartości pola i wyświetlenia jej w boksie w momencie upłynięcia czasu sesji (znam ten ból jak pisałem tekst przez 2h i wywaliło mi sesję nie wtedy nie ma żadnej możliwości przywrócenia bo przycisk wstecz nie zadziała).
Najprościej wyglądało by to tak tylko muszę przetestować czy po upływie czasu sesji JS będzie w stanie odczytać zawartość pola 'pole_tekstowe'

  1. function aktywuj(pokaz) {
  2. var pole = document.getElementById('pole_tekstowe').value;
  3. var zawartosc = document.getElementById('zawartosc');
  4.  
  5. if (zawartosc.innerHTML != "") zawartosc.innerHTML = "";
  6. pokaz ? zawartosc.style.display = "block" : zawartosc.style.display = "none";
  7. zawartosc.innerHTML = pole;
  8. }
  9. </head>
  10.  


  1. <?php if(!session_is_registered('pole_tekstowe')) { //jeśli sesja minęła to... trzeba przywrócić zawartość pola tekstowego
  2.  
  3. echo '<script type="text/javascript">aktywuj(true);</script>';
  4.  
  5. }
  6. ?>


  1. <div id="zawartosc"></div>
  2. </body>
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.