![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 201 Pomógł: 3 Dołączył: 10.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam pobieram przez formularz string 11 znaków.
np 10111266666 Dzielę go poprzez: substr i sprawdzam warunki. Problem jednak zaczyna się gdy chcę sprawdzić czy wycięty fragment jest większy od jakieś liczby. Bo logiczne że nie dam 99x elseif aby sprawdzić każdą możliwość błędnego wpisania dnia i miesiąca. Konwersja stringa na INT także nic nie daje albo źle to robię ... Cały if: if((substr($pesel, 2, 2) == "00") || (intval($pesel) < 13)) Chodzi o to co będzie po LUB Tak coś nie chce pykać z tym INTVAL i dziwnie się wywala bo jakoś ucina stringa zamiast wyświetlić napis i zakończyć działanie (po napisanie mam dane exit) można zobaczyć jak to wygląda: przykładowy string który już źle pyka: 94134567890 Na razie dnia nie sprawdzam. Danie warunku typu <= 13, 12 nie pomaga. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chcesz sprawdzić czy wycięty string jest większy od jakiejś liczby to chyba powinieneś go najpierw wyciąć
Dodatkowo post napisany jest niezrozumiale. Nie prościej było zapytać jak sprawdzić w numerze PESEL wartość miesiąca nie przekracza 13 albo jak wydobyć miesiąc jako liczbę z numeru PESEL? Ten post edytował jaslanin 26.03.2012, 16:30:46 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 201 Pomógł: 3 Dołączył: 10.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chcesz sprawdzić czy wycięty string jest większy od jakiejś liczby to chyba powinieneś go najpierw wyciąć Dodatkowo post napisany jest niezrozumiale. Nie prościej było zapytać jak sprawdzić w numerze PESEL wartość miesiąca nie przekracza 13 albo jak wydobyć miesiąc jako liczbę z numeru PESEL? Przecież wyciąłem nie muszę dawać zmiennej pomocniczej = substr mam ifa ![]() i zamiast tego month mam u siebie po prostu PESEL i nie działa z tym INTVALEM ... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Abstrahując od samego problemu, datę sprawdzaj przy pomocy funkcji checkdate. W ten sposób unikniesz problemu z lutym i sprawdzaniem czy miesiąc ma 30, czy 31 dni.
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 201 Pomógł: 3 Dołączył: 10.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Abstrahując od samego problemu, datę sprawdzaj przy pomocy funkcji checkdate. W ten sposób unikniesz problemu z lutym i sprawdzaniem czy miesiąc ma 30, czy 31 dni. Na przyszłość się przyda. Tutaj wystarczy z góry założyć że miesiąc ma 31 dni max bo to tak szkolne zadanie ![]() Doszedłem: || intval(substr($pesel, 2, 2)) >12) tak ma być i działa ![]() Można sprawdzić. Ten post edytował sakuwbarakushow 26.03.2012, 16:58:30 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
wiem że tak ma być, dokładnie tak samo wcześniej Ci napisałem tylko że zamiast dwa razy wykonywać substr (która zwraca to samo za każdym razem), użyłem zmiennej pomocniczej.
Ten post edytował jaslanin 26.03.2012, 17:04:53 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 201 Pomógł: 3 Dołączył: 10.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mniejsza o to ważne że działa
![]() Dzięki |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 01:13 |