Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][PHP] Timer i sesje
Kshyhoo
post 13.01.2010, 23:34:07
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Nie bardzo wiem, jak nazwać temat. Mianowice, mam na stronie ustalony czas życia sesji na 15 minut, do tego podpięty timer dla zobrazowania mijającego czasu. Śmiga... Chciałbym dodać możliwość zresetowania czasu timera (uporałem się z tym), z jednoczesnym ponownym ustawieniem czasu życia sesji na 15 minut, bez utraty danych wpisanych np. w formularze... Kompletnie nie wiem, jak się do tego zabrać, termin AJAX przypomina mi nazwę proszku do prania ;p Mój kod:
plik główny z sesją:
  1. if ($_SESSION["czas"] and $_SESSION["czas"]+60*15<time()) { // 15 minut
  2. }
  3. $_SESSION["czas"] = time();

i plik czas.php, z timerem:
[JAVASCRIPT] pobierz, plaintext
  1. <div id="czassesji"><!-- --></div>
  2.  
  3. <script type="text/javascript">
  4. <!-- <![CDATA[
  5. liczbasekund = 890;
  6. teraz = 0;
  7. function zegar() {
  8. // wyliczanie roznicy
  9. var sekund = Math.abs(liczbasekund-teraz);
  10. var minut = Math.floor(sekund/60);
  11. var godzin = Math.floor(minut/60);
  12. // wyliczanie okresu
  13. sekund = Math.floor(sekund-minut*60);
  14. minut = Math.floor(minut-godzin*60);
  15. var roznica="Do końca sesji pozostało "+((minut<10)?"0":"")+minut+":"+((sekund<10)?"0":"")+sekund+" <input type=\"button\" value=\"resetuj\" onclick=\"teraz=(0)\" />";
  16. document.getElementById("czassesji").innerHTML = roznica;
  17. if (teraz<liczbasekund) {
  18. teraz++;
  19. setTimeout("zegar()",1000);
  20. } else {
  21. document.getElementById("czassesji").innerHTML = "Sesja wygasła! Zaloguj się ponownie... <a href='./index.php?go=logowanie'> Logowanie </a>";
  22. }
  23. }
  24. zegar();
  25. // ]]> -->
  26. </script>
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Kshyhoo 13.01.2010, 23:50:53


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kefirek
post 14.01.2010, 14:08:07
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Można to zrobić tak
[JAVASCRIPT] pobierz, plaintext
  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4. <script type="text/javascript">
  5.  
  6. var start = 10;
  7.  
  8. $(document).ready(function(){
  9. stoper();
  10. setInterval(stoper,1000);
  11.  
  12.  
  13. $('#reset').click(function() {
  14. start = 10;
  15. $.ajax({
  16. type: "POST",
  17. url: "plik_php_ktory_zresetuje_sesje.php",
  18. });
  19.  
  20.  
  21. });
  22.  
  23. });
  24.  
  25. function stoper()
  26. {
  27. godzin = Math.floor(start/3600);
  28. minut = Math.floor(start/60)%60;
  29. sekund = start%60;
  30.  
  31.  
  32. if(start<=0) {
  33. $('#stoper').html('Sesja wygasła');
  34. } else {
  35. $('#stoper').html('Godzin ' + godzin + ' Minut ' + minut + ' Sekund ' + sekund);
  36. start--;
  37. }
  38. }
  39.  
  40.  
  41.  
  42. </script>
  43. </head>
  44. <body>
  45.  
  46. <div id="stoper"></div><a href="#" id="reset">Reset</a>
  47.  
  48. </body>
  49. </html>
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
Kshyhoo
post 14.01.2010, 14:38:28
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Jak sprawdzić, że dane zostały przesłane? Nie znam niestety jquery...


--------------------
Go to the top of the page
+Quote Post
kefirek
post 14.01.2010, 14:52:25
Post #4





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


[JAVASCRIPT] pobierz, plaintext
  1. $.ajax({
  2. type: "POST",
  3. url: "nazwa_pliku.php", },
  4. pobierz: function (XMLHttpRequest) { $("#id_elementu").html('Trwa resetowanie sesji');},
  5. success: function(msg){ $("#id_elementu").html('Wszystko OK'); },
  6. ajaxError : function(event, request, settings){ $("#id_elementu").html('blad nie mozna zrestowac sesji'); }
  7. });
[JAVASCRIPT] pobierz, plaintext


Ten post edytował kefirek 14.01.2010, 14:53:06
Go to the top of the page
+Quote Post
Kshyhoo
post 14.01.2010, 16:59:34
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Czy taki kod mogę podpiąć w pliku php, czy wymaga jakichś specjalnych zabiegów? Nie łapię tego.


--------------------
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: 14.08.2025 - 14:54