Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Zagadka dotyczaca sesji, Jest sobie pewien skrypt... ;-)
Lk_hc
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 12.06.2006

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


Witajcie,

Mam wrażenie że napisałem całkiem znośny skrypt którego zadaniem jest pozwalanie uzytkownikowi na wykonanie pewnej czynności raz na minutę (nie częściej). Osobiście kod mi się podoba. Ma jednak jedną zasadniczą wadę: nie wykonuje zadanej czynności za pierwszym wywołaniem. Test na inteligencję: kto powie jak to zrobić żeby przy pierwszym wywołaniu wykonywał czynność a przy kolejnych standardowo odmierzał minutę odstępu.

Wszystko oparte jest o sesję bo mechanizm składa się z dwóch plików. Oto one:

1. Pierwszy - z niego następuje wywoałenie drugiego wykonującego zadaną czynność.
  1. <?php
  2.  
  3. if ( !isset($_SESSION['start_limit_handler']) )
  4. { $_SESSION['start_limit_handler'] = date ("i"); }
  5.  
  6. echo "<a href='cache.php'> check cache </a>\n";
  7.  
  8. ?>


2. Drugi. Tutaj następuje weryfikacja czasu i odpowiednia dla jej wyniku akcja.
  1. <?php
  2.  
  3. $stop_limit_handler = date("i");
  4. if ( isset($_SESSION['start_limit_handler']) )
  5. {
  6. $margin = $_SESSION['start_limit_handler'] - $stop_limit_handler;
  7. }
  8.  
  9. if ( isset($margin) && $margin != 0 )
  10. {
  11. echo "Do something what you want!";
  12. unset( $_SESSION['start_limit_handler'] );
  13. }
  14. else
  15. {
  16. echo " Oh no no! You most now wait 1 minute to do it!
  17. <script language='javascript' type='text/javascript'>
  18. setTimeout('history.back()', 3000)
  19. </script> ";
  20. }
  21. ?>


Ten post edytował Cysiaczek 8.05.2008, 15:53:20
Powód edycji: dodałem tag i zmodyfikowałem temat (cysiaczek)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Moli
post
Post #2





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Zagadka ? Szukasz kogoś kto Ci rozwiąże problem.
Go to the top of the page
+Quote Post
Lk_hc
post
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 12.06.2006

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


Też, ale problem jest na tyle niewielki że można go tak nazwać. I tak prędzej czy później to zrobię - a tak, może ktoś jeszcze skorzysta z kodu który napisałem oraz jego poprawionej wersji.
Go to the top of the page
+Quote Post
l0ud
post
Post #4





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


'Skrypt' pierwszy:
  1. <?php
  2.  
  3. echo "<a href='cache.php'> check cache </a>\n";
  4.  
  5. ?>


Skrypt drugi:
  1. <?php
  2.  
  3. $stop_limit_handler = time();
  4. if ( isset($_SESSION['start_limit_handler']) )
  5. {
  6. $margin = $stop_limit_handler - $_SESSION['start_limit_handler'];
  7. }
  8.  
  9. if ( isset($margin) && $margin > 60 )
  10. {
  11. $_SESSION['start_limit_handler'] = time();
  12. echo "Do something what you want!";
  13. }
  14. else
  15. {
  16. echo " Oh no no! You most now wait 1 minute to do it!
  17. <script language='javascript' type='text/javascript'>
  18. setTimeout('history.back()', 3000)
  19. </script> ";
  20. }
  21. ?>


Temat chyba nadaje się bardziej do przeniesienia na przedszkole/php smile.gif


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Tak, tam właśnie wyląduje.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
--Lk_hc--
post
Post #6





Goście







thx
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 Aktualny czas: 21.08.2025 - 19:45