Autor Zpráva
iceover
Profil *
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
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 *
OK, díky moc. Musim si o tom ještě něco přečíst. Nějak se mi ty funkce pletou.
Alphard
Profil
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().

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0