Autor | Zpráva | ||
---|---|---|---|
iceover Profil * |
#1 · Zasláno: 29. 4. 2011, 07:35:23
Z textarea načtu proměnou
$this->value = @$_POST["$this->name_post"]; Text upravím přes funkce: $this->value = strip_tags(htmlspecialchars($this->value)); Ta se potom uloží do MySQL (UTF-8) A potom se to upraví přes str_replace() a vypíše přes echo $inzerat->popis = str_replace(array("\r", "\n"), array('', '<br />'), $inzerat->popis); echo $inzerat->popis; jenže mi to pořád vypisuje text ve špatné podobě: práci v mladém kolektivu dynamicky se rozvíjející společnosti\\r\\n- možnost nadprůměrných výdělků závislých na pracovním nasazení\\r\\n- firemní notebook, telefon\\r\\n- práce na HPP\\r\\n- velmi dobře prodejný fungující produkt * Problém asi bude ve volání funkce htmlspecialchars() už na vstupu nebo nevim. Můžete mi prosím někdo poradit. Celou noc jsem nespal. Mám už toho nějak dost :-) |
||
iceover Profil * |
Hmm tak problém byl v tom, že data do textarea byla překopírovaná z OpenOffice... OMG :D
|
||
nethor Profil |
#3 · Zasláno: 29. 4. 2011, 12:35:28
iceover:
„Hmm tak problém byl v tom, že data do textarea byla překopírovaná z OpenOffice... OMG :D“ V tom bych chybu neviděl, stejně bys to měl ošetřit, ať vkládáš cokoliv. Chyba je jednak tady: $this->value = strip_tags(htmlspecialchars($this->value)); Protože se provede nejdřív htmlspecialchars a potom strip_tags už asi nemá co převádět. Ale především Ti v úpravě chybí stripslashes(); , to tam dělá paseku. Na úpravu textu z formuláře pro db používám fci: function post2db($text){ $text = stripslashes(trim($text)); $text = preg_replace("~'~", "´" , $text); $text = preg_replace("~\\\~", "/" , $text); return $text; } |
||
iceover Profil * |
#4 · Zasláno: 29. 4. 2011, 19:44:00
OK, díky moc. Musim si o tom ještě něco přečíst. Nějak se mi ty funkce pletou.
|
||
Alphard Profil |
#5 · Zasláno: 30. 4. 2011, 00:11:24
Problém možná způsobuje Nejčastější potíže s PHP (FAQ) » Lomítka ve vstupních hodnotách
Při ukládání databáze mysql_real_escape_string(). Při výpisu htmlspecialchars($s, ENT_QUOTES) a nl2br(). |
||
Časová prodleva: 13 let
|
0