why CI have to Standardizes newline? it changes 1 newline to double newline (CI2.0) |
[eluser]vee[/eluser]
in textarea form if user enter one newline CI change it to double newline like this Quote:line 1 to Code: line 1 is it a bug? how to fix it? >:-(
[eluser]Future Webs[/eluser]
related post here http://ellislab.com/forums/viewthread/180436/ https://bitbucket.org/ellislab/codeignit...duplicated
[eluser]vee[/eluser]
this is my fix http://www.okvee.net/2011/02/16/xss-filt...-new-line/ this double new line is very ugly bug and occurs when using $_POST or $_GET create MY_Input.php in application/core Code: class MY_Input extends CI_Input {
[eluser]Future Webs[/eluser]
thanks man, that seemed to have sorted it for now while we wait for it to get resolved in the official version
[eluser]squirrels[/eluser]
That doesn't work. I think we have a problem with double replacement in the str_replace function. So we replace all "\r\n", "\n", and "\r" with a dummy character that shouldn't be finding itself in the data, then change him to PHP_EOL. I picked the delete character ASCII code 127. I also threw in the "\n" character for the Mac operating system. // Standardize newlines if needed if ($this->_standardize_newlines == TRUE) { if (strpos($str, "\r") !== FALSE) { $str = str_replace(array("\r\n", "\n", "\r"), chr(127), $str); $str = str_replace(chr(127), PHP_EOL, $str); } }
[eluser]furball[/eluser]
will this work? Code: // Standardize newlines if needed
[eluser]squirrels[/eluser]
Furball has the winning solution. I think we should standard new lines if the string contains a "\r" or a "\n". The conditional statement needs to be changed. I just removed it. |
Welcome Guest, Not a member yet? Register Sign In |