CharAt |
CharAt |
4.02.2018, 21:16:33
Post
#1
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Hej
Chcę sprawdzić poprawność adresu IP. Chcę wykorzystać do tego metodę charAt, ale jak wiadomo IP może się zawierać w 1 do 3 znaków na każde pole, czy to jest poprawnie napisane do ustawienia zmiennej, bo wydaje mi się, że nie. A jeśli nie to jak powinno to wyglądać
Z góry dzięki |
|
|
4.02.2018, 21:29:15
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
http://php.net/manual/en/function.filter-var.php
http://php.net/manual/en/filter.filters.validate.php Oj. https://www.w3resource.com/javascript/form/...-validation.php Ten post edytował trueblue 4.02.2018, 21:35:30 -------------------- |
|
|
5.02.2018, 01:27:09
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
|
|
|
5.02.2018, 02:05:31
Post
#4
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Zrobiłem Tak
Jak dla mnie działa, ale pewnie można coś uprościć. |
|
|
5.02.2018, 08:16:12
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
[...] pewnie można coś uprościć. Czy ja wiem, wygląda naprawdę kompaktowo. -------------------- |
|
|
5.02.2018, 11:24:18
Post
#6
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Cieszę się, bo siedziałem nad tym pół nocy. Tamte linki co mi podałeś trochę mnie nakierowaly, ale musiałem sam coś naskrobać bo nie do końca spełniały moje oczekiwania.
|
|
|
5.02.2018, 18:47:27
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Przyszła mi ochota na kuchnię włoską.
|
|
|
5.02.2018, 19:14:51
Post
#8
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
|
|
|
5.02.2018, 22:20:32
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Oj tak, szczególnie tego długiego cienkiego
A mówiąc poważnie, Twój kod to koszmar. Zupełnie nieczytelny i bez sensu rozlazły. Dlaczego nie ułatwisz sobie życia i nie użyjesz wyrażenia regularnego? Całą sprawę ze sprawdzaniem IP mógłbyś załatwić jedną linijką, choć lepiej moim zdaniem sprawdzić wyrażeniem regularnym ogólną strukturę: ^\d{1,3}(?:\.\d{1,3}){3}$ i potem posprawdzać elegancko czy te liczby nie przekraczają 255. |
|
|
5.02.2018, 22:23:01
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Jest jeszcze ipv6
-------------------- |
|
|
5.02.2018, 23:08:32
Post
#11
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Oj tak, szczególnie tego długiego cienkiego A mówiąc poważnie, Twój kod to koszmar. Zupełnie nieczytelny i bez sensu rozlazły. Dlaczego nie ułatwisz sobie życia i nie użyjesz wyrażenia regularnego? Całą sprawę ze sprawdzaniem IP mógłbyś załatwić jedną linijką, choć lepiej moim zdaniem sprawdzić wyrażeniem regularnym ogólną strukturę: ^\d{1,3}(?:\.\d{1,3}){3}$ i potem posprawdzać elegancko czy te liczby nie przekraczają 255. Czemu uważasz że koszmar, co jest tam nie tak. Co jest wg Ciebie nie czytelne? IPV6 mnie nie interesuje w tym przypadku. Troszkę go skróciłem, ale nic nie zmieniałem
|
|
|
5.02.2018, 23:36:52
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
To jest typowy kod spaghetti. Masz osobne zmienne dla poszczególnych części tej samej rzeczy, wielkie zagnieżdżenia, milion razy powtarzasz tę samą linijkę dla różnych etapów kodu. Tak można wymieniać.
Całe sprawdzanie poprawności adresu IP v4 możesz załatwić tak:
Ten post edytował SmokAnalog 5.02.2018, 23:37:20 |
|
|
5.02.2018, 23:43:39
Post
#13
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Wiesz, uczę się i wg mnie myślę że dobrze mi idzie, choć mój kod to spaghetti wykonuje to co Twój. Może jak będę miał taką wiedzę jak Ty nie będę tak pisał tylko skracał do jednej linijki. Dla mnie liczy się to że do czegoś doszedłem sam. Nie mniej dziękuję za pomoc, ale uwierz mi napisanie komuś na forum (gdzie oczekuje się nakierowania czy pomocy) że jego kod jest do d. itp itp nie jest motywujące.
To tak jakby w szkole nauczycielka dziecku powiedziała, że niczego się w życiu nie nauczy. Zastanów się nad tym. |
|
|
5.02.2018, 23:47:08
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Ale od tego są kursy, a nie forum. Jeśli wchodzę na forum dla myśliwych i zadaję pytanie "jak ustrzelić dzika pistoletem na wodę", to nie mogę oczekiwać odpowiedzi jak to faktycznie zrobić. Ucz się i zadawaj konkretne pytania, a nie jak sprzątać śmietnik.
|
|
|
6.02.2018, 01:27:40
Post
#15
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
a powiedz mi proszę, czy poniższy kod też byś jakoś uprościł
|
|
|
6.02.2018, 01:51:24
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Tak, ten kod też bym uprościł. Kilka uwag na początek:
|
|
|
6.02.2018, 02:11:19
Post
#17
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Ok dzięki.
1. Sprawdzam czy formularz istnieje bo napisane jest to w jednej funkcji dla wielu formularzy. 2. Chodzi np o to
3. czyli te wszystkie sprawdzenia lepiej robić na wyrażeniach regularnych regex 4. Kod się powtarza, bo zmienia się komunikat, więc muszę upchnąć go do zmiennej i zmienia się div, który zmieni kolor jak będzie błąd. Jest to pisane dla biura, gdzie trzeba prowadzić za rączkę, np nie wpisałeś kropki, za dużo znaków itp itd, chcę oszczędzić sobie telefonów z pytaniami |
|
|
6.02.2018, 02:30:30
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Możesz to uprościć w tym stylu:
Czyli znowu wyjątki. Tylko że nie podoba mi się Twoja funkcja Error_Message(). Dobrze się domyślam, że ona korzysta z globalnej zmiennej Info_Message? Nie lepiej przekazywać jej wiadomość jako parametr? |
|
|
6.02.2018, 02:37:17
Post
#19
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
nie znałem jeszcze takiego sposobu, ale wygląda znacznie lepiej dla oka niż mój
początek pliku ze skryptem
|
|
|
6.02.2018, 02:40:15
Post
#20
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Ten kod mógłby być poprawiony w prawie każdej linijce, ale najważniejsze na ten moment jest to, że Info_Message chyba nie musi być globalną zmienną?
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 20:33 |