Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zablokowanie możliwości wysyłania czasowo
jacobson
post
Post #1





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


Witam, chce zrobic u siebie na stronie dodatkowe zabezpieczenie formularza kontaktowego, zeby byl blokowany na 2 minuty po ostatnim wyslaniu wiadomosci uzytkownika. Zastanawialem sie czy moze ustawic w sesji czas ostatniego wyslania wiadomosci i przy probie wyslania sprawdzac czy minely 2 minuty. Na stronie nie mam systemu uzytkownikow (logowanie itp) dlatego kazdy jest gosciem. Dlatego zastanawiam sie czy takie rozwiazanie jest dobre. Myslalem tez o wstawianiu "logow" do bazy mysql wraz z adresem IP uzytkownika.
Moze ktos juz mail do czynienia z takim skryptem i moglby mi podsunac jakis dobry pomysl smile.gif
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
cer98
post
Post #2





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 17.07.2011

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


pole hidden z unikalnym tokenem np.

  1.  
  2. public function genId(){
  3. $sKey = md5(time() * rand(0, 999999));
  4. return $sKey;
  5. }
  6.  
  7.  
  8. print $form->dodaj_element('hidden','sessionId','',$calculator->genId(),'','','','','','','');
  9.  
  10.  
  11.  
  12. if($calculator->checkSession($calculator->dataGet['sessionId']) && !empty($calculator->dataGet['Time']))
  13.  
  14. public function checkSession($action){
  15.  
  16. if($action != $_SESSION['Id']){
  17. $_SESSION['Id'] = $action;
  18. return true;
  19. } else {
  20. //$this->errors[] = 'Refresh';
  21. return false;
  22. }
  23. }
  24.  
Go to the top of the page
+Quote Post
jacobson
post
Post #3





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


proboje analizowac ten kod ale nie rozumiem do konca po co ten randomID, czy sam czas nie wystarczy. Wedlug tego co napisales przy kazdym uruchomieniu formularza kontaktowego bedzie juz wygenerowane pole hidden z unikatowym id sesji tak wiec po wyslaniu wiadomosci, po tym jak to wszystko zostanie wpisane do Twojej sesji, ten id i time to po ponownym uruchomieniu formularza, session id w polu hidden bedzie juz inne bo znowu zostanie wywolana funkcja genID().
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: 22.08.2025 - 00:42