Nette 2.1 a vypnuti sanitizace

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MartyIX
Člen | 217
+
0
-

Ahoj,

presel jsem na Nette 2.1 a narazil jsem na problem, ze potrebuji zachovat \r\n ve vstupu, tak jak to uzivatel poslal. V Nette 2.0.x stacilo overridnout funkci setValue V Nette 2.1 jsem ale nahrany, protoze nyni se sanitizace provadi v

https://api.nette.org/…orm.php.html#…
https://api.nette.org/…ers.php.html#…
https://api.nette.org/…ers.php.html#…

kterou nemohu nijak vypnout. Leda ze bych si zmenil zdrojak, coz se mi dvakrat nelibi.

Napada vas jeste jine reseni?
Diky

David Matějka
Moderator | 6445
+
0
-

jaka data control prijima si urcuje v loadHttpData – DATA_LINE, DATA_TEXT nebo DATA_FILE. vice na phpfashion

MartyIX
Člen | 217
+
0
-

Aha, koukam, ze jsem si to spatne odtrasoval. Diky moc!

David Grudl
Nette Core | 8228
+
0
-

Jediný, kdo posílá \r\n, jsou staré verze Explorerů, na to vážně v aplikacích spoléháš?

MartyIX
Člen | 217
+
0
-

@David: Nevidim do toho do hloubky, ale podle vlakna na StackOverflow:

By HTML specifications, browsers are required to canonicalize line breaks in user input to CR LF (\r\n), and I don’t think any browser gets this wrong. Reference: clause 17.13.4 Form content types in the HTML 4.01 spec.

a doplneni si clovek udela obrazek.

Udelal jsem si maly test:

http://jsfiddle.net/DRG5B/1/ – posle POST data na nejakou domenu a pak se koukam v Chrome (Windows) v Developer Tools na Request Headers a vidim tam string:

text:line%0D%0Aanother+line%0D%0A++++

A pomoci nasledujicich prikazu se koukam, co se skutecne poslalo:

var_dump(json_encode("line\nanother line")); // prints: string(20) ""line\nanother line""
var_dump(json_encode(urldecode("line%0D%0Aanother+line%0D%0A++++"))); // prints: string(30) ""line\r\nanother line\r\n    ""

Nevidim chybu a proto si myslim, ze minimalne Chrome na Windows posila \r\n.

A jeste k tomu duvodu, proc to vlastne potrebuju. Jde o jeden specificky pripad, kdy hashuju vstup uzivatele (tj. presne to, co zadal) a tam uz je velky rozdil mezi tim, jestli \r ve vstupu je nebo neni.

Editoval MartyIX (5. 1. 2014 19:56)