Validace URL neumí localhost
- jiriknesl
- Člen | 56
Vygenerovaný regulární výraz /^.+\.[a-z]{2,6}(\/.*)?$/i neprojde, pokud zadám http://localhost.
- jiriknesl
- Člen | 56
Jan Tvrdík napsal(a):
Tohle je dle mého názoru očekávané chování.
A to http://localhost není URL?
RFC 1738 (http://www.faqs.org/…rfc1738.html) se odkazuje, že část host musí dodržovat RFC 1035 (sec 3.5) a RFC 1123 (sec 2.1)
Z RFC 1035 soudím, že platná URL je i: „http://a“
Následuje BNF zápis pro část doména:
<domain> ::= <subdomain> | " "
<subdomain> ::= <label> | <subdomain> „.“ <label>
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | „-“
<let-dig> ::= <letter> | <digit>
<letter> ::= any one of the 52 alphabetic characters A through
Z in
upper case and a through z in lower case
<digit> ::= any one of the ten digits 0 through 9
- BigCharlie
- Člen | 283
Pokud máš pravdu, tak je IMHO dobře, že v tomto případě nette nectí tak úplně standard. Když by totiž prošlo i „http://a“, v praktickém životě bych to moc neocenil, i kdyby to bylo podle všech RFC.
Edit: Jako chybu bych to úplně neviděl, protože valná většina z nás spíš využije dosavadní chování. A kdo ne, nechá validovat podle vlastního reguláru.
Editoval BigCharlie (6. 12. 2010 16:06)
- jiriknesl
- Člen | 56
Každý web byl někdy localhost. Proč by neměly fungovat vývojářovi na localhostu formuláře, to mi ale opravdu nejde do hlavy.
BigCharlie napsal(a):
Pokud máš pravdu, tak je IMHO dobře, že v tomto případě nette nectí tak úplně standard. Když by totiž prošlo i „http://a“, v praktickém životě bych to moc neocenil, i kdyby to bylo podle všech RFC.
Edit: Jako chybu bych to úplně neviděl, protože valná většina z nás spíš využije dosavadní chování. A kdo ne, nechá validovat podle vlastního reguláru.
- Panda
- Člen | 569
jiriknesl napsal(a):
Každý web byl někdy localhost. Proč by neměly fungovat vývojářovi na localhostu formuláře, to mi ale opravdu nejde do hlavy.
Mě zase moc nejde do hlavy, proč by měl formulář na produkčním akceptovat i očividně nesmyslná URL jen kvůli nějakému vývojářovi támhle v tmavém koutě.
- jiriknesl
- Člen | 56
Panda napsal(a):
jiriknesl napsal(a):
Každý web byl někdy localhost. Proč by neměly fungovat vývojářovi na localhostu formuláře, to mi ale opravdu nejde do hlavy.
Mě zase moc nejde do hlavy, proč by měl formulář na produkčním akceptovat i očividně nesmyslná URL jen kvůli nějakému vývojářovi támhle v tmavém koutě.
Ale ta URL není nesmyslná. Je platná podle RFC a plno firem má řadu let IS na doménách jako http://muj-is/ a dodnes kvůli nějakému Pandovi nevěděli, že je na té URL něco špatného.
- David Grudl
- Nette Core | 8228
Formulářový validátor neověřuje podle RFC, ale podle použitelnosti,
tudíž platné je třeba www.seznam.cz
a naopak
není http://localhost
- Ondřej Mirtes
- Člen | 1536
Jde o to, že jako tvůrce webové aplikace chceš po uživali obvykle zadat URL, na kterou se můžeš dostat. Ze stejného důvodu Nette nepřijme jinak validní e-mailové adresy jako foobar@127.0.0.1 apod.