Formázások MYSQL-ben
Sziasztok.
Nemrég beleütköztem egy problémába. Csak úgy próbaképpen kipróbáltam a CKEditort. Mysql adatbázisba akartam feltölteni vele dolgokat, minden ment is szépen, de a formázásokat nem töltötte fel megfelelően. Aztán arra már rájöttem, hogy nem a CKEditor hibája.
Hogy érthetőbb legyek:
Ezt akarom feltölteni például (CKEditorral vagy bármivel):Ehelyett ez kerül az adatbázisba:Ezzel az a gond, hogy amikor le akarom kérdezni és ki akarom iratni, akkor a formázások nem érvényesülnek.
Be lehet valahol állítani esetleg a Phpmyadminba? Vagy hogy tudnám úgy lekérdezni, hogy azok a "\" jelek ne jelenjenek meg? Vagy egyéb ötlet?
Már próbáltam rákeresni több helyen, de azt se nagyon tudom, hogyan lehetne erre keresni.
Előre is köszönöm.
■ Nemrég beleütköztem egy problémába. Csak úgy próbaképpen kipróbáltam a CKEditort. Mysql adatbázisba akartam feltölteni vele dolgokat, minden ment is szépen, de a formázásokat nem töltötte fel megfelelően. Aztán arra már rájöttem, hogy nem a CKEditor hibája.
Hogy érthetőbb legyek:
Ezt akarom feltölteni például (CKEditorral vagy bármivel):
<font color="red">ez itt piros</font>
<font color=\"red\">ez itt piros</font>
Be lehet valahol állítani esetleg a Phpmyadminba? Vagy hogy tudnám úgy lekérdezni, hogy azok a "\" jelek ne jelenjenek meg? Vagy egyéb ötlet?
Már próbáltam rákeresni több helyen, de azt se nagyon tudom, hogyan lehetne erre keresni.
Előre is köszönöm.
feloldó jel
OFF
Nem ismerem a CKEeditor-t, de annyit el tudok mondani, hogy azok feloldó jelek. Nem tudom mennyire ismered, a lényeg az, hogy olyankor szoktuk alkalmazni, amikor egy jelet nem szeretnénk, hogy értelmezzen a fordító.
pl.
<?php print "<a href='javascript:sgDo(\"oneParam\")'"; ?>
A macskakörmökön belül csak idézőjelet használhatsz, viszont szükséged lenne még egy szintre. Ilyenkor tudod használni a feloldó jelet és így figyelmen kívül hagyja a php fordító. (különben úgy értelmezné, hogy a oneParam előtt vége a string-nek és a "oneParam" egy php változó)
ON
Ki kellene íratnod, hogy a küldés előtt (kliens oldalon) milyen formában van és megnézni, hogy küldés után a szerver oldalon hogy néz ki a kód. Szerintem maga az editor tárolja így, "előre látásból" és már eleve így küldi át.
(Esetleg megpróbálhatnád a TinyMCE-t. Az egyik, ha nem a legismertebb felületi szerkesztő)
üdv, Gábor
én azt szeretném ha értelmezné a fordító :)
Ha egy sima text areaból töltöm fel az adatbázisba például ezt:
<font color="red">ez itt piros</font>
akkor is így kerül be az adatbázisba, hogy:
<font color=\"red\">ez itt piros</font>
És ha lekérdezem ugye, ki akarom iratni például, akkor a fordító nem értelmezi, ahogy írtad. Biztos, hogy a MYSQL a ludas, mert ő teszi valamiért oda. De én azt szeretném, hogy ne úgy illessze be, hanem úgy ,hogy lekérésnél a fordító értelmezni is tudja (azokat a "\" jeleket ne tegye be az adatbázisba). Ezért nem működik pl. a CKEditor sem.
Remélem érthető :)
Szóval: miért alakítja át a MYSQL a feltöltött programkódot, úgy hogy a fordító ne tudja értelmezni, és ki lehet-e ezt kerülni?
Tárolás
Megoldva
A megoldás: stripslashes.
Ha be van kapcsolva a magic quotes ezzel a függvénnyel ki lehet kerülni.
egy példa annak aki nem tudná hogyan lehet alkalmazni:
Köszönöm mindenkinek a segítséget.
jönnek majd a kezdők ..
Jönnek majd a kezdők, másolnak és nem működik.
Magicquotes-ről
Szerintem jóval értelmesebb kikapcsolni a magic-quotes-t. Ha nincs hozzáférésed a webszerver konfigurációjához (vagy több site-ot is hosztol a szerver), akkor a legkönnyebben htaccess fájllal teheted ezt meg:
SetEnv MAGIC_QUOTES 0
Nem mellékes ilyenkor megemlteni, hogy a magicquotes kikapcsolása csak abban az esetben javasolt, ha tisztában vagy ennek következményeivel, és a kódod védve van az injection tÍpusú sebezhetőségektől.
Mysql-ből visszakapott szöveg formázása
Nekem egy olyan problémám lenne a CKeditorral, hogy az általa megformázott szöveget szeretném módosítani, amit Mysql-ban tároltam el előtte, de nem az egész szöveget dobja be a textareába és nem is formázottan.
Ha Mysql-ből íratom ki így, akkor jól megjelenik a formázott szöveg:
<?= $sor["text"] ?>
Ha a módosító részben a CK editorba illesztem be akkor az elején leírt problémába ütközöm :<textarea name="text" ><?= $text?></textarea> <script type="text/javascript"> CKEDITOR.replace( 'text' ); </script>
Nem értem miért nem működik. Ha egy bármelyik weboldalról jelölök ki bármekkora szöveget és akár képet, linket és vágúlappal bemásolom a CKeditorba, akkor azt úgy illeszti be, mint a kimásolt weboldalon van , formázva és a linkek is és képek is működnek. Akkor amit a CKeditor csinált előtte , miért nem tudja értelmezni?
Ha tud valaki segíteni kérem válaszoljon.
Köszi
Gábor