Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Porównanie dat
Forum PHP.pl > Forum > Przedszkole
Ikky
chce zrobic ograniczenie na wysyłanie formularza na 60min juz zrobilem jedno ale zdałem sobie sprawe ze jesli ktos np wypelni formularz 10 sierpnia o 16 to 11 sierpnia o polnocy bo mialem warunek

  1. $data_f = data ostatniego wypelnienia formularza[zamiana na sekundy] + 3600 sekund
  2. $data_t = date() [zamiana na sekundy]
  3.  
  4. if(data_f < data_t)
  5. {
  6. dziala
  7. } else {
  8. musisz jeszce poczekac
  9. }


wiec kompletna glupota

jak moge zrobic cos co działalo?
nie prosze o gotowy skrypt tylko o wskazowke
jmail
przy zapisie pierwszym:

  1.  
  2. $_SESSION['data_wypelnienia'] = time();
  3.  


a później sprawdzenie musisz w to wsadzić;


  1.  
  2. if($_SESSION['data_wypelnienia'] && $_SESSION['data_wypelnienia'] > time() - 3600){
  3. die("Jeszcze musisz poczekać");
  4. }
  5.  
  6. $_SESSION['data_wypelnienia'] = time();
  7.  

Ikky
no własnie musi sie obyc bez sesji
jmail
to w ciastku ustaw.
Fifi209
Cytat(jmail @ 10.08.2009, 23:11:27 ) *
to w ciastku ustaw.

Ciastka można usunąć.

@topic
A możesz "rozpoznać" użytkowników? Tzn. czy to o czym piszesz jest wykonywane po zalogowaniu.
Andaramuxo
To zrób ew. z bazą danych jak sam opisywałeś+pobieranie IP+przeglądarki.
jmail
IP można zmienić jak się ma dynamiczne i znowu nici. winksmiley.jpg

fifi -> nie wiem czy coś innego niż sesja może wchodzić w grę. sesję można zakońćzyć ciastko usunąć, modem zresetować. nie da się. po prostu biggrin.gif
Fifi209
Cytat(jmail @ 10.08.2009, 23:37:08 ) *
IP można zmienić jak się ma dynamiczne i znowu nici. winksmiley.jpg

fifi -> nie wiem czy coś innego niż sesja może wchodzić w grę. sesję można zakońćzyć ciastko usunąć, modem zresetować. nie da się. po prostu biggrin.gif


To czytaj uważnie, powiązać to z konkretnym użytkownikiem...

Loguje się Jan Kolwalski i raz na 60 minut może wysłać formularz. Trudne...?
jmail
chwila chwila. nigdzie nie było mowy o tym, że ma się ktokolwiek logować..... bo jak tak to z bazy można brać.
Fifi209
Cytat(fifi209 @ 10.08.2009, 23:25:20 ) *
A możesz "rozpoznać" użytkowników? Tzn. czy to o czym piszesz jest wykonywane po zalogowaniu.



Cytat(jmail @ 10.08.2009, 23:46:17 ) *
chwila chwila. nigdzie nie było mowy o tym, że ma się ktokolwiek logować..... bo jak tak to z bazy można brać.


Napisałem posta z pytaniem. A to czy może czy nie to inna sprawa. Napisałeś, że nie ma innego wyjścia a więc stwierdzam, iż jest.
jmail
pewnie. może jeszcze na ColdFusion się przesiąść i tam ma takie magiczne cóś jak ClientScope i wtedy to już w ogóle - ciastka po stronie serwera.
Ikky
heh wywiązała się niezła dyskusja ale odpowiedzi nie otrzymałem tongue.gif
więc tak opisze wszystko po kolei:

mam system logowania, dołożyłem do tabelki z uzytkownikami dwie kolumny user_login_attempt i user_login_attempt_date

za kazdym razem kiedy login istnieje a haslo jest zle do kolumny user_login_attempt dodaje sie +1 i do user_login_attempt_date ma sie dodawać pełna data I WŁASNIE NIE WIEM W JAKIEJ FORMIE żebym potem mógł w skrypcie sprawdzic czy ostatnia proba logowania była ponad 3600 sekund wczesniej ( i wtedy user_login_attempt) się zeruje.

dodatkow powiem
ze sesja nei wchodzi w role bo mozna usunac
ciastka to samo to po prostu musi byc w bazie w tabeli users :/


edit literówka
skowron-line
  1. UPDATE personel SET user_login_attempt = ( user_login_attempt +1 ) AND user_login_attempt_date = NOW()


sprawdzenei
  1. SELECT timestampdiff( SECOND, NOW(), user_login_attempt_date ) > 3600
Ikky
k odpowiedzi nie uzyskałem ale jak przejrzałem manuala jescze raz to samemu znalazlem

  1. date(U)

pokazuje sekundy od jakiegos tam roku 1970 i porostu dodaje do bazy jak jest wysylany formularz a potem ifa w formularzu wszystko juz działa
dzieki za pomoc i tak
Fifi209
Cytat(Ikky @ 11.08.2009, 11:23:47 ) *
k odpowiedzi nie uzyskałem ale jak przejrzałem manuala jescze raz to samemu znalazlem

  1. date(U)

pokazuje sekundy od jakiegos tam roku 1970 i porostu dodaje do bazy jak jest wysylany formularz a potem ifa w formularzu wszystko juz działa
dzieki za pomoc i tak


Tak samo działa time tylko że został stworzony głównie do 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.