Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzanie za pomocą funckji IF
-Gizmon-
post 19.06.2006, 16:25:24
Post #1





Goście







Chciałbym sprawdzić datę urodzenia użytkownika i robię to następująco:

  1. <?php
  2. if($dataur<1900 || $dataur>date('%Y') || is_string($dataur) || is_array($dataur) || is_float($dataur) || is_object($dataur) )
  3. print "<center>Błędny rok urodzenia!</center><br><center><a href="xxx.php">Powrót</a></center>n";
  4. ?>

Gdzie robie błąd?
Go to the top of the page
+Quote Post
Misior
post 19.06.2006, 17:33:28
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 9.06.2006

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


Nic z tego nie wiem... o co tu chodzi??
Go to the top of the page
+Quote Post
no_face
post 19.06.2006, 17:43:05
Post #3





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Troche zamieszales.

Zrob to lepiej w ten sposob. Przy formularzu podaj dozwolony format daty np. RRRR-MM-DD i przy pomocy np wyrazen regularnych
Kod
if ( eregi("[0-9]{4}\-[0-9]{2}\-[0-9]{2}", $data_do_sprawdzenia) )
{
     echo 'Data okej';
}
Go to the top of the page
+Quote Post
-Gizmon-
post 19.06.2006, 19:19:53
Post #4





Goście







Rozwiązałem to trochę inaczej:

  1. <?php
  2. $dataak=date('Y');
  3.  $datatest=57;
  4.  if(datataur>1900 || datatest<3000)
  5.  $datatest=1;
  6.  else
  7.  $datatest=0;
  8. ?>

  1. <?php
  2. if($datatest==|| $dataur>$dataak || $dataur<1900)
  3.  print "<center>Błędny rok urodzenia!</center><br><center><a href="new_user.php">Powrót</a></center>n";
  4. ?>


W każdym razie działa, na stringi wywala błąd, na daty poniżej 1900 i powyżej aktualnego roku także wywala blad. A przy normalnej dacie jest dobrze smile.gif Ale w każdym razie dziękuje za odpowiedź.
Go to the top of the page
+Quote Post
-Gizmon-
post 19.06.2006, 19:21:38
Post #5





Goście







Oczywiście poprawka
  1. <?php
  2. $dataak=date('Y');
  3.  $datatest=57;
  4.  if(datataur>1900 || $dataur<3000)
  5.  $datatest=1;
  6.  else
  7.  $datatest=0;
  8. ?>
Go to the top of the page
+Quote Post
piotrekkr
post 19.06.2006, 19:49:56
Post #6





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


a nie lepiej zrobic prosty formularz co by sobie uzytkownik wybieral z list rozwijalnych dzien miesiac i rok wtedy raczej sie nie pomyli smile.gif
Go to the top of the page
+Quote Post
-Gizmon-
post 20.06.2006, 09:18:42
Post #7





Goście







Niby można,ale się uparłem i chciałem koniecznie zrobić z wpisywaniem ręcznym daty smile.gif Taki mały trening smile.gif
Go to the top of the page
+Quote Post
phpion
post 20.06.2006, 13:01:51
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Troche dupiaty pomysl, ale skoro sie juz uparles, to mozna to skrocic:
  1. <? $datatest = (datataur>1900 || $dataur<3000) ? 0 : 1; ?>

Poza tym: obecnie mamy rok 2006 winksmiley.jpg
Go to the top of the page
+Quote Post
-Gizmon-
post 20.06.2006, 16:35:06
Post #9





Goście







Wiem, ale skryptu aktualizować nie będę a data 3000 to taka uniwersalna. A to i tak wyjdzie przy kolejnym IF bo nastawiłem na sprawdzanie aktualnej daty smile.gif
Go to the top of the page
+Quote Post
Fipaj
post 20.06.2006, 17:00:01
Post #10





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


uniwersalna data to 1970 - 2069. ta wiedza przyda ci się w dalszym operowaniu tą datą smile.gif

  1. <?php
  2. if($dataur<1900 || $dataur>date('%Y') || is_string($dataur) || is_array($dataur) || is_float($dataur) || is_object($dataur) )
  3. ?>


starczy samo

  1. <?php
  2. if ($dataur < 1900)
  3. ?>


bo jeśli $dataur nie jest liczbą, to od razu php zwróci błąd (bo przecież obiekt nie jest mniejszy od 1900...). ale jeśli już chcesz mieć powiedzmy pełną kontrolę bądź wszystko czarno na białym (jasno napisane), to starczy:

  1. <?php
  2. if (!is_int ($dataur)) die ('error!');
  3. ?>


--------------------
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 Wersja Lo-Fi Aktualny czas: 18.06.2025 - 04:37