Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Timer i sesje
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
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
kefirek
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
Kshyhoo
Jak sprawdzić, że dane zostały przesłane? Nie znam niestety jquery...
kefirek
[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
Kshyhoo
Czy taki kod mogę podpiąć w pliku php, czy wymaga jakichś specjalnych zabiegów? Nie łapię tego.
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.