Avatar billede lylover Nybegynder
04. februar 2010 - 16:34 Der er 12 kommentarer og
1 løsning

CKEDITOR - html problem

Hej Eksperter!"

Jeg har et problem med min nyligt integrerede CKEDITOR.
Jeg udskriver min editor ved at gøre følgende;
$CKEditor = new CKEditor();
echo $CKEditor->editor("oplag", "Add din tekst her");
- og den vil gerne vise selve editoren - og adder også til min database.

MEN MEN MEN MEN!

Når jeg så viser den tekst, som jeg har addet til min database inde under nyheder eksempelvis, så vil den ikke vise den HTML som jeg har lavet i editoren?
Er der nogle som helst, der kan komme med en evt. function eller forslag til, hvad jeg kan gøre ved det?

Jeg gør ikke noget fancy med det jeg sætter ind i min database, dvs. jeg ikke sætter en function som htmlentities(); til at tjekke hvad jeg skriver, for det er kun mig der gør, og jeg vil jo ikke hacke mig ind i egen database.

Så jeg spørger Jer, eksperter, hvad er løsningen her?
Avatar billede repox Seniormester
04. februar 2010 - 21:29 #1
Jeg forstår ikke hvad du mener.
Det HTML som CKeditor producerer, er ikke det samme som det du gemmer i databasen?
Avatar billede lylover Nybegynder
04. februar 2010 - 22:07 #2
Jo, det er det samme..
Source coden(når jeg viser det i CKeditoren) er den samme som i databasen. MEN den vil ikke vise den kode, når jeg udskriver den data på en side.. Den vise rikke den html..
Avatar billede repox Seniormester
04. februar 2010 - 22:21 #3
Hvordan henter du dataen ud igen?
Avatar billede lylover Nybegynder
04. februar 2010 - 22:25 #4
Som ganske almindelig data..
echo "".$row[tekst].";
.. skal der sættes en function på?
Avatar billede repox Seniormester
04. februar 2010 - 23:41 #5
Udover at det du gør er grimt, så bør der ikke være noget forkert ved det.

echo $row["tekst"]; // mere korrekt og pæn syntaks.


Det er svært at gætte hvad fejlen kan være, når man ikke har noget at se.
Det kunne være rart at se hvad du gør når du gemmer din HTML og eventuelt en snippet af den tekst der er gemt i databasen.
Avatar billede lylover Nybegynder
04. februar 2010 - 23:48 #6
Når jeg skriver min tekst ind i databasen, gør jeg det simpelt :
    $tekst = $_POST[tekst];
    $overskrift = $_POST[overskrift];
    $oplag = $_POST[oplag];
               
                                    mysql_query("INSERT INTO guides (overskrift, oplag, tekst, dato) values ('$overskrift', '$oplag', '$tekst', now())") or die(mysql_error());

og et eksempel på hvordan TEKST valuen ser ud i databasen:

<p>
    <strong>Dette er ogs&aring; en test. :-)</strong></p>
<div id=codebox>
    <p>
        Dette er en test.</p>
    <p>
        &nbsp;</p>
</div>
<p>
    <em>Dette er ogs&aring; en test</em></p>
<p>
    <u>Dette er ogs&aring; en test</u></p>
Avatar billede lylover Nybegynder
05. februar 2010 - 00:02 #7
Har fundet fejlen..
den nægter simpelthen konsekvent over hele siden at lave en <b></b>.. SÅ jeg kan altså ikke længere skrive <b></b>!

Resten af HTML'en viste sig at lykkedes, da det blot var en indstilling i min database (efter jeg rettede henvendelse til min host) som var forkert.
Avatar billede repox Seniormester
05. februar 2010 - 00:06 #8
Du skal - igen - være opmærksom på din syntaks.
Bemærk at array indexes skal som udgangspunkt indkapsles i quotes.
Udover det har du en stor risiko for at blive udsat for SQL injections.

En bedre syntaks og mere sikkerhed:


    $tekst = $_POST["tekst"];
    $overskrift = $_POST["overskrift"];
    $oplag = $_POST["oplag"];
   
    $sql = "INSERT INTO guides (overskrift, oplag, tekst, dato) values ('".mysql_real_escape_string($overskrift)."', '".mysql_real_escape_string($oplag)."', '".mysql_real_escape_string($tekst)."', NOW())";         
    $res = mysql_query($sql);
    if(!$res)
      die(mysql_error());



Har du eventuelt et link til et sted hvor jeg kan se dit output fra databasen?
Avatar billede lylover Nybegynder
05. februar 2010 - 00:12 #9
http://www.anderslylover.wep.dk/vis_guide.php?id=1
- her skulle den, hvor jeg skriver
"Dette vil så udskrive, på din side:
Hej alle!"
gerne udskrive "HEJ ALLE" med fed. Dette gør den desværre ikke.
Men som du ser, virker alt det andet html (codebox'en er f.eks. i div, som er lavet i CKEDITOREN)..

Jeg forstår ikke hvorfor lige netop <b></b> ikke vil udskrives. Eller i dette tilfælde, som CKeditoren bruger <strong></strong>
Avatar billede repox Seniormester
05. februar 2010 - 00:27 #10
Det er fordi du i din CSS har en erklæring af dit body element erklærer at al font-weight skal være bold.
Så vil <strong> ikke have nogen effekt da al din tekst i forvejen er skrevet med fed.
Avatar billede lylover Nybegynder
05. februar 2010 - 00:30 #11
Hold da helt **** hvor er jeg glad for dét svar. :-)

- smid et svar, du fortjener helt sikkert pointene - og meget mere til..

Kunne jeg evt spørge hvad du synes om mit design? :)
Avatar billede repox Seniormester
05. februar 2010 - 00:39 #12
Du fik et svar her :)

Well, jeg har ikke rigtig forstand på design - jeg er programmør - jeg kunne ikke tegne en lige streg om jeg så havde en lineal.

Men som programmør ville jeg jo værdsætte hvis din HTML validerede ;)
Avatar billede lylover Nybegynder
05. februar 2010 - 00:40 #13
Touché..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester