Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] walidacja godziny
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Mam w bazie pole odzina typu TIME.

Czyli godzina przetrzymywana jest jako, np. 16:55:34

Testuje formularz i gdy użytkownik wpisze string to skrypt się wywala. Jak sprawdzać czy użytkownik wpisał poprawnie godzine?

ps. musi być możliwość ręcznej edycji godziny (tylko godziny i minuty).

Ten post edytował J4r0d 6.06.2006, 21:01:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


chodzi ci o to, czy wpisał godzinę w poprawnym formacie? (np. 15:22 jest OK?)

moze byc regEx, ale nie zabezpieczysz sie latwo przed np. wpisaniem goindzy 65:98 :/

wiec, probujesz rozbic wpisana wartosc przez ':'. Jezeli otrzymujesz tablice dwuelementowa w wwyniku takiego rozbicia - OK, jedziesz dalej. A dalej rzutujesz oba elementy tablicy na int, sprawdzasz czy znajduja sie w odpowiednim przedziale (0-24, 0-59) i juz wiesz czy jest OK.

  1. <?php
  2. function checkTime($time)
  3. {
  4. $t = explode(':', $time);
  5.  
  6. if (count($t) != 2)
  7. { return false;
  8. }
  9.  
  10. $hour = (int) $t[0];
  11. $minute = (int) $t[1];
  12.  
  13. if ( ($minute < 0 || $minute > 59) || ($hour < 0 || $hour > 24) )
  14. { return false;
  15. }
  16. return true;
  17. }
  18. ?>


byc moze mozna to rozwiazac jakos bardziej "elegancko", ale wlasnie takie rozwiazanie wpadlo mi do glowy :>

pozdr.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 18:06