Zadejte hledaný výraz...

Pri znovu editovani do textarea me u znaku " pribyvaji \

Ahojte,
delam si pro sebe v administraci moznost editaci HTML znaku. Pri editaci se me HTML nacte do TEXTAREA v pohode, jenze pokud provedu odeslani formulare s tim, ze nektery INPUT nemam vyplneny, vypisu si chybu a tedy TEXTAREA vypisu ne jiz z mySQL, ale z promene na kterou jsem odesilal formular.
Bohuzel vsak vsechny znaky " jsou nahrazeny znakem " ... pokud znovu odeslu a budu mit v nekterem INPUT chybu, tak do TEXTAREA dostanu \" ... a porad pribyva.
Nevite prosim jak tomuto zamezit?
22. 2. 2010 22:30:30
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462608
Martin Klíma
verified
rating uzivatele
(13 hodnocení)
22. 2. 2010 22:34:07
Napsal vecerapl;463627
Ahojte,
delam si pro sebe v administraci moznost editaci HTML znaku. Pri editaci se me HTML nacte do TEXTAREA v pohode, jenze pokud provedu odeslani formulare s tim, ze nektery INPUT nemam vyplneny, vypisu si chybu a tedy TEXTAREA vypisu ne jiz z mySQL, ale z promene na kterou jsem odesilal formular.
Bohuzel vsak vsechny znaky " jsou nahrazeny znakem " ... pokud znovu odeslu a budu mit v nekterem INPUT chybu, tak do TEXTAREA dostanu \" ... a porad pribyva.
Nevite prosim jak tomuto zamezit?
No někde v tom zpracování máš escapování znaků, takže tím aby ti to nedělalo neplechu, potom při vypsání to vlastně bere jako a opět " a tím ti přibývají ty lomítka.
22. 2. 2010 22:34:07
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462607
Napsal Pooky;463628
No někde v tom zpracování máš escapování znaků, takže tím aby ti to nedělalo neplechu, potom při vypsání to vlastně bere jako a opět " a tím ti přibývají ty lomítka.
Prave ze zde nemam nic.
if (isset($html)) $html = $html; else $html = $editace;
Tak ze prvne se provede vypis z mySQL (tj. $editace;) a kdyz odeslu formular, tak tam mam pouze:
$html = $_POST
Pak nasleduje ten if (isset....)
:confused: Nevim cim to muze safra byt.
22. 2. 2010 22:38:30
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462606
Nejspíš budeš mít zaplou direktivu magic_quotes_gpc a navíc ještě před vstupem do SQL provádět další addslashes. Vypni direktivu, je to humus který bude navíc v PHP 6.0 odstraněn.
22. 2. 2010 22:39:49
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462605
Napsal Pix;463636
Nejspíš budeš mít zaplou direktivu magic_quotes_gpc a navíc ještě před vstupem do SQL provádět další addslashes. Vypni direktivu, je to humus který bude navíc v PHP 6.0 odstraněn.
Lze to nejakym scriptem spravit, at se me to tam nepridava? Docela me to stve :D
EDIT: resim to pred vypisem do TEXTAREA za pomoci str_replace a funguje.
22. 2. 2010 22:48:26
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462604
gorau
verified
rating uzivatele
(1 hodnocení)
22. 2. 2010 22:52:52
$html = stripslashes($_POST);
---------- Doplňující příspěvek odeslán v 22:56 ----------
A dobryje http://php.vrana.cz/vypnuti-magic_quotes_gpc.php
22. 2. 2010 22:52:52
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462603
@gorau: Takže si budu do databáze ukládat data s předmr*anýma uvozovkama a pak to opravovat na výstupu? Co to je za chujovinu? :) Řešením je vypnout magic_quotes, nebo nepřidávat další addslashes při insertu/update do databáze.
22. 2. 2010 23:18:38
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462602
gorau
verified
rating uzivatele
(1 hodnocení)
22. 2. 2010 23:28:47
Napsal Pix;463681
@gorau: Takže si budu do databáze ukládat data s předmr*anýma uvozovkama a pak to opravovat na výstupu? Co to je za chujovinu? :)
Fungovalo by mu to. A k tomu přece magic_quotes / addslashes / mysql_real_escape_string je ne?
Ty znaky neošetřené do SQL dotazu přece pustit nemůžeš, to je logické.
Řešením je vypnout magic_quotes, nebo nepřidávat další addslashes při insertu/update do databáze.
Jistě že vypnutí je nejlepší řešení, ale to třeba na sdíleném hostingu nemůžeš, proto jsem přidal odkaz na článek jak to ošetření magic_quotes jednoduše odstranit v PHP.
22. 2. 2010 23:28:47
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462601
Takže ty mu navrhuješ tento postup:
1. Uživatelské vstupy se ošetří pomocí magic_quotes.
2. Šíleným postupem ala Vrána prolezu všechny uživatelské vstupy a odošetřím je.
3. Při vkládání do databáze znovu všechny vstupy ošetřím.
Nevěřím, že magic_quotes nejde na tvém hostingu vypnout. Pokud nejde, jdi jinam. Jinak udělej tohle řešení: nepoužívej addslashes u GET a POST dat při vkládání do SQL dotazu při zapnutém magic_quotes. Dělá to už magic_quotes!
23. 2. 2010 00:03:12
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462600
gorau
verified
rating uzivatele
(1 hodnocení)
23. 2. 2010 00:30:47
Napsal Pix;463705
Takže ty mu navrhuješ tento postup:
Nevěřím, že magic_quotes nejde na tvém hostingu vypnout. Pokud nejde, jdi jinam. Jinak udělej tohle řešení: nepoužívej addslashes u GET a POST dat při vkládání do SQL dotazu při zapnutém magic_quotes. Dělá to už magic_quotes!
Jistě že to dělá magic_quotes_gpc. A v podstatě máš pravdu: ošetření magis_quotes odstraníš pomocí toho kodu od J. Vrány a pak se můžeš spolehnout, že tam ty zpětné lomítka nebudou a na vstupu i výstupu si to ošetříš jak chceš.
Má to stovky řešení, nemá smysl se o tom dohadovat. V PHP 6 budeme mít klid :)
23. 2. 2010 00:30:47
https://webtrh.cz/diskuse/pri-znovu-editovani-do-textarea-me-u-znaku-pribyvaji#reply462599
Pro odpověď se přihlašte.
Přihlásit