Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: CKeditor enkoodaa HTML:n

Sivun loppuun

pistemies [25.10.2013 14:06:31]

#

(Mod. vaihtoi otsikon. Alkuperäinen otsikko: ”Mysql Escape String riisuu html-tagit”)

Pikku ongelma mysql_real_escape - funktion kanssa. Käytän valmista alustaa, jossa ei ole käytössä PDO.
Teen pikku ohjelmaa, jolla voi lisätä artikkeleita CKEditorilla. Ongelma on se, että mysql_real_escape_string toimii kuin htmlspecialchars. Kaikki html-tagit muuttuvat tallennusvaiheessa. Ei hyvä.

The Alchemist [25.10.2013 14:10:09]

#

Ei se kyllä niin toimi. Teet jotain väärin.

lainaus:

mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.

Quirzo [25.10.2013 14:13:00]

#

Toimiiko sitten niin että siellä missä kyseinen HTML printataan ulos ajetaan se html_entity_decode:n läpi?

$output = html_entity_decode(stripslashes($html));

pistemies [25.10.2013 14:27:49]

#

Tarkistin hommaa hiukan.
Teksti on jo alunperin ennen escapeta muuttunut.
Kun CKeditoriin kirjoittaa vaikka "Testiä" se tulostuu testissä (ennen tallennusvaihetta) näin:

<p>Testiä</p>

eli nuo tagit on muuttunu. Onkohan tätä alustaa säädetty jotenkin javascriptin puolellaa...

Quirzo [25.10.2013 14:41:41]

#

En tiedä alustasta mitään, mutta kokeile vaikka ottaa JS pois selaimesta ja samaa uudelleen?

The Alchemist [25.10.2013 14:48:49]

#

Kannattaisi tutustua siihen, mikä se CKeditor on, jos sitä aikoo käyttää. Ei tuu hyvä, jos sokkona lähtee räpeltämään.

P.S. Otsikossa muuten puhut tagien poistamisesta, mutta aloitusviestissä kuitenkin vertaat toimintaa html_special_charsiin. Pitäisiköhän tuotakin kuvausta miettiä vielä toisen kerran.

pistemies [25.10.2013 14:51:48]

#

Quirzo kirjoitti:

En tiedä alustasta mitään, mutta kokeile vaikka ottaa JS pois selaimesta ja samaa uudelleen?

Eipä taida onnistua. CKeditor tarttee Javascriptiä.
Alusta on Opencart 1.5.1

 <html>
 <head>
  <body>
&lt;p&gt;TESTIÄ&lt;/p&gt;
</head> </body></html>

Tästäpä näkyy tekemäni testin lähdekoodi. Tuo TESTIÄ risuineen on CKeditorin tuotetta.

Lisäys: Nyt olen vakuuttunut siitä että tekstin html-tagit muuttuvat jo CKEditorin textareassa. En tiedä syytä.

Quirzo [25.10.2013 15:13:23]

#

Kokeiles nyt ajaa tuo sen html_entity_decode:n läpi siellä sivulla missä se pitäisi näyttää. Tai toinen vaihtoehto voisi olla:

pistemies [25.10.2013 15:16:03]

#

Quirzo kirjoitti:

Kokeiles nyt ajaa tuo sen html_entity_decode:n läpi siellä sivulla missä se pitäisi näyttää.

Ehdin juuri tehdä tuolla tavoin. Sain toimimaan.
Tässä ohjelmassa on Welcome- niminen tekstimoduuli jolla saa etusivulle/etusivuille tekstiä. Tarkistin, niin sen moduulin tekstit tulostetaan tuon html_entity_decode-funktion läpi.

The Alchemist [25.10.2013 15:19:59]

#

Kaiva nyt ihmeessä CKeditorin dokumentaatio esille ja katso sieltä, mikä asetus pitää pistää falseksi, ettei editori tee automaattista enkoodausta. Aivan järjetöntä ajaa palvelimella decodea vain sen takia, ettei älyä pistää asetuksista encodea pois päältä.

pistemies [25.10.2013 15:31:32]

#

The Alchemist kirjoitti:

Kaiva nyt ihmeessä CKeditorin dokumentaatio esille ja katso sieltä, mikä asetus pitää pistää falseksi, ettei editori tee automaattista enkoodausta. Aivan järjetöntä ajaa palvelimella decodea vain sen takia, ettei älyä pistää asetuksista encodea pois päältä.

Vilkaisin pikaisesti tiedostoa config.js. Asetus taitaa olla tässä:

config.htmlEncodeOutput = false;

En taida tässä nyt tuota muuttaa, koska tämä mitä teen menee levitykseen Opencartin sivustolle. Mutta hyvä tietää tuo homma.

Lebe80 [25.10.2013 16:11:34]

#

pistemies kirjoitti:

En taida tässä nyt tuota muuttaa, koska tämä mitä teen menee levitykseen Opencartin sivustolle. Mutta hyvä tietää tuo homma.

Olenkin aina miettinyt, ketkä aina näitä ihmeen virityksiä tekee open source-sovelluksiin. Nyt tiedän.

pistemies [25.10.2013 16:36:06]

#

Lebe80 kirjoitti:

Olenkin aina miettinyt, ketkä aina näitä ihmeen virityksiä tekee open source-sovelluksiin. Nyt tiedän.

Tuskimpa olet törmännyt minun tekemiin virityksiin :)

The Alchemist [25.10.2013 16:49:37]

#

OpenCartin oletusasetus on kylläkin htmlEncodeOutput = false, joten jos viritelmäsi eivät toimi oletusasetuksilla, niin se on aika huono juttu.

pistemies [25.10.2013 17:29:04]

#

The Alchemist kirjoitti:

OpenCartin oletusasetus on kylläkin htmlEncodeOutput = false, joten jos viritelmäsi eivät toimi oletusasetuksilla, niin se on aika huono juttu.

OpenCartin omien koodarien viritelmät toimii siltä osin yhtä kehnosti kuin minun, kuten mainitsin:

pistemies kirjoitti:

Tässä ohjelmassa on Welcome- niminen tekstimoduuli jolla saa etusivulle/etusivuille tekstiä. Tarkistin, niin sen moduulin tekstit tulostetaan tuon html_entity_decode-funktion läpi.

The Alchemist [25.10.2013 18:03:58]

#

Ei sillä ole mitään väliä, millaista kuraa muut tekevät. Tee itse oikein.

pistemies [25.10.2013 18:12:05]

#

The Alchemist kirjoitti:

Ei sillä ole mitään väliä, millaista kuraa muut tekevät. Tee itse oikein.

En ole haka javascript-puolella, mihin tuo CKeditorin toiminta liittyy :)
Tarkoitus on tehdä sellainen että toimii vähintään yhtä hyvin.

Lisäys: En tiedä, vaikuttaako asiaan, mutta tiedostossa common/filemanager.php kaikki palautetaan json_encode-funktion läpi. En tiedä johtuuko homma siitä, tuntuu että sille syötetään vain url-osoitteet ja tiedostopolut... sitä ei kannata joka tapauksessa muuttaa koska tämä pitäisi olla tarvittaessa yhteen sopiva muiden opencart-alustojen kanssa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta