Avatar billede msdb Nybegynder
13. september 2011 - 16:52 Der er 18 kommentarer og
1 løsning

php, behandling af tekst

På mit site har jeg en oversigt af nyheder som hentes fra databasen med:

<?php echo html_entity_decode($row_meh['news']); ?>

Men hvis jeg indsætter en værdi i databasen som f.eks. indeholder et hyperlink som her:

"Besøg venligst <a href="http://www.dr.dk">Danmarks Radio</a>"

Så vises det som:

"Besøg venligst Danmarks Radio"

Teksten konverteres dog ikke om til et hyperlink, men blot alm- tekst.

Jeg er sikker på at løsningen er enormt simpel, men mine google-søgninger har alligevel været forgæves.

Hvordan får jeg den href vist som et hyperlink?
Avatar billede msdb Nybegynder
13. september 2011 - 18:24 #1
Ved nærmere eftersyn af min database går jeg ud fra at svaret er at finde i måden jeg gemmer mine værdier på og ikke hvordan jeg viser dem.
Spørgsmålet bør så hedde, hvordan undgår jeg at html tags bliver fjernet ved forsøg på at gemme teksten i databasen?
Avatar billede majbom Novice
13. september 2011 - 19:08 #2
som udgangspunkt bliver der ikke gjort noget ved tags når de kommer i din database - hvordan gemmer du teksten i dine tabeller?
Avatar billede msdb Nybegynder
13. september 2011 - 19:12 #3
Type: text
Collation: utf8_danish_ci

- er tabellens eneste instillinger.
Avatar billede majbom Novice
13. september 2011 - 19:36 #4
ja, men charset og encoding på dine filer og forbindelsen til databasen...
Avatar billede msdb Nybegynder
13. september 2011 - 19:48 #5
charset og encoding er begge utf-8
Avatar billede majbom Novice
13. september 2011 - 19:51 #6
men så snart du smider tekst i databasen er det mystiske tegn?

har du prøvet at sætte forbindelsens charset til UTF-8 inden du smider tekst i databasen?
Avatar billede msdb Nybegynder
13. september 2011 - 19:57 #7
Nå nej, tegnene er ikke noget problem, men derimod at et hyperlink ikke "overlever" turen gennem databasen.

Når jeg opretter en nyhed med et hyperlink bliver det kun vist som normal tekst.
Avatar billede majbom Novice
13. september 2011 - 20:20 #8
også i databasen?
Avatar billede msdb Nybegynder
13. september 2011 - 20:30 #9
Ja. Og hvis de html tags som et link består af ikke gemmes i databasen, så er det forståeligt, at det heller ikke vises som et link.
Avatar billede majbom Novice
13. september 2011 - 21:29 #10
hvis de ikke bliver gemt i databasen, må teksten jo ryge igennem et eller andet der fjerner dem først...  har du et almindeligt textarea som du skriver i og hvor indholdet bagefter smides direkte i db?
Avatar billede msdb Nybegynder
13. september 2011 - 21:29 #11
jep.
Avatar billede majbom Novice
14. september 2011 - 08:00 #12
for lige at få summere op:

du taster tekst i et textarea, smider det direkte i databasen uden nogen form for rensning og når du ser teksten i phpmyadmin, er html-tags osv. væk

er det korrekt?
Avatar billede msdb Nybegynder
14. september 2011 - 09:06 #13
ja nogenlunde. Der må foregå noget rensning, når mine html tags forsvinder på vej ind i databasen, men jeg aner ikke, hvordan jeg kan undgå det.
Avatar billede majbom Novice
14. september 2011 - 14:19 #14
kan du vise noget kode, hvor du smider tekst i databasen? for det giver ikke nogen mening hvis der ikke sker et eller andet med den tekst på vej til databasen...
Avatar billede msdb Nybegynder
14. september 2011 - 14:34 #15
Ha. Ja okay, den havde jeg helt glemt. Her er synderen:

function clear($message)
{
    if(!get_magic_quotes_gpc())
        $message = addslashes($message);
    $message = strip_tags($message);
    $message = htmlentities($message);
    return trim($message);
}

Den bruges inden teksten smides i databasen. Jeg går stærkt ud fra at mit problem forsvinder, hvis jeg undlader at bruge den. Har jeg ret?
Avatar billede majbom Novice
14. september 2011 - 16:04 #16
der kan jeg kun give dig ret...

jeg mente ellers vi var blevet enige om at der ikke var nogen form for rensning?
Avatar billede msdb Nybegynder
14. september 2011 - 16:24 #17
Der var samtalen på vej hen, ja. Heldigvis fik dit forslag mig til at gennemgå min kode en ekstra gang, da jeg kun kunne give dig ret i at teksten måtte blive ændret et sted.
Årsagen var meget indlysende, så snart jeg kiggede det rigtige sted.
Ikke overraskende :)

Tak for din tid og hjælp.
Tillad mig at komme af med nogle point.
Avatar billede majbom Novice
14. september 2011 - 17:22 #18
svar kommer her

selv tak :)
Avatar billede majbom Novice
14. september 2011 - 19:33 #19
tfp :)
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
Kurser inden for grundlæggende programmering

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