Rozdílná fčnost Form::URL a Validators::isUrl
- Tomáš Votruba
- Moderator | 1114
Včera mne napadlo, proč když jsou „URL“ a „Url“ velmi podobná slova, se chovají různě.
Form::URL (používám aktuální netteForm.js, 2012–02–03)
- dokumentace tvrdí je hodnota absolutní URL?
- přitom pustí:
- http://test.cz
- www.test.cz
- test.cz
Validators::isUrl
- funguje správně:
- http://www.test.cz pustí
- www.test.cz už nepustí
Pak když ukládám URL od uživatele, musím ve formuláři použít Form::URL i Validators::isUrl() (a doplnit „http://“ na absolutní url), což je takové hloupé.
Nevím, jestli jde o feature nebo bug, tak píšu sem.
- kravčo
- Člen | 721
Podľa mňa je terajšie správanie absolútne žiaduce. Bežný
používateľ nepochopí, prečo mu po zadaní www.zoznam.sk
vyhodí chybovú hlášku, že má zadať absolútnu url.
Nenapadá mi, kedy by pri vyžadovaní validácie na url malo zmysel
rozlišovať medzi tým, či používateľ http://
napíše alebo
vynechá, takže by možno malo zmysel pridať default filter pre URL, ktorý
(ak chýba) pripojí na začiatok url http://
V tvojom prípade ti problém vyrieši manuálne pridanie takéhoto filtra, teda:
- Tomáš Votruba
- Moderator | 1114
@kravčo: Hodně dobré, díky. To by rozhodně nemělo chybět v dokumentaci.
- grandmaster
- Člen | 9
Navazu to tohoto vlakna, nebot problem mozna s nim souvisi.
Mam formularove pole, kod jsem upravil primo dle dokumentace
"" → projde
„a“ → neprojde
„aa“ → projde
Do validators:isUrl vstupuje hodnota 2×, jednou primo obsah input boxu, podruhe s „http://“. Nevim, zda je dle nejakeho RFC platna url http://aa ale v soucasnosti je tato validacni podminka nepouzitelna, kdyz mi projde jakekoliv viceznakove slovo.
- marten
- Člen | 2
Sice hodne stara zalezitost, ale pridam se se svoji troskou. URL je spravne
i se schematem. Tedy url je i telnet://192.168.1.1, ftp, gopher a cokoliv
dalsiho. Davat podminku na http a https je nedostatecne. Stejne jako se email
validuje podle RFC, melo by se tak validovat i URL. A ne ze projde jakekoliv
jedno slovo bez mezer jako validni adresa. Kdyz validuji string
‚google.com‘, jeste to vubec neznamena, ze si mam domyslet, ze pred to
automaticky napisu http. Stejne tak ani ted pro http nepodporuje informaci
o uzivateli a hesle. Pokud by to bylo opravdu URL, je kazdy protokol potreba
validovat jinak.
Pokud chci validovat pouze http, https, myslim, ze by bylo lepsi pro ne mit
vlastni validator (URL_HTTP).