Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kod do sprawdzania daty., problem przy blednym wprowadzniu danych.
dobryvinyl.com
post
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Witam,

mam nastepujacy problem.

  1. <?php
  2. if (empty($data_urodzenia))
  3. {
  4. errormsg("Wypełnij pole data!");
  5. $error=tak;
  6.  
  7. }elseif(!checkdate(substr($data_urodzenia, 5, 2), substr($data_urodzenia, 8, 2), substr($data_urodzenia, 0, 4)) AND strlen($data_urodzenia) != 10){
  8. errormsg("Data nie jest poprawna! Prawidłowy format to: YYYY-MM-DD");
  9. $error=tak;
  10. }else{
  11. }
  12. ?>


Przy wprowadzeniu daty np: 2004-11-05 wszystko jest ok. Wystarczy jednak ze uzytkownik wpisze 204-11-05 a juz wyskoczy taki błąd:

Kod
Warning: checkdate() expects parameter 3 to be long, string given



jak uniknac takiego bledy?

Dzikuje z gory za odpowiedzi.


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
Levabul
post
Post #2





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


  1. <?php
  2.  
  3. $data = explode ('-', $data_urodzenia);
  4. if (empty($data_urodzenia))
  5. {
  6. errormsg("Wypełnij pole data!");
  7. $error=tak;
  8.  
  9. }elseif(!checkdate($data[1], $data[2], $data[0]) AND strlen($data_urodzenia) != 10){
  10. errormsg("Data nie jest poprawna! Prawidłowy format to: YYYY-MM-DD");
  11. $error=tak;
  12. }else{
  13. }
  14.  
  15. ?>


Pisane na sucho więc sprawdź czy działa


--------------------
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #3





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


teraz jak wprowadze np. 12-45-56 to mam:


Kod
Warning: checkdate() expects parameter 2 to be long, string given




czy w takim momecie najlepiej sprawdzic dlugosc kazdego elementu ($data[1], $data[2], $data[0])?


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
misiek_km
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 25.01.2003

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


Ja sobie to załatwiłem wyrażeniem regularnym

  1. <?php
  2.  
  3. // dd-mm-rrrr
  4. function check_date($date)
  5. {
  6. return preg_match('#^(0[1-9]|[1-2]{1}[0-9]{1}|3[0-1]{1})-(0[1-9]{1}|1[0-2]{1})-(19[d]{2}|20[0-9][0-9])$#', $date) ? true : false;
  7. }
  8.  
  9. ?>


--------------------
-=[ misiek ]=-
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: 20.08.2025 - 01:11