Avatar billede tlunde Nybegynder
29. september 2005 - 11:34 Der er 10 kommentarer og
1 løsning

Gemme tekst rigtigt i databasen?

Hejsa,
Jeg har en del forms, hvor jeg har problemer med at gemme teksten rigtigt i databasen, hvordan gør jeg det?

Tænker her på, at gemme æ ø å rigtigt i databasen, sådan at det også bliver vist som æ ø å når jeg hiver det ud igen. Email adresser og web adresser skal også gemmes rigtigt, sådan at de bliver til links når de bliver hevet ud igen. Og så skal der være sådan, at nye linier også bliver gemt, så den ik bare skriver teksten ud i en lang linie uden afsnit..

Er der en nem måde at gøre dette på?
Avatar billede jaw Nybegynder
29. september 2005 - 11:41 #1
Tjoh, jeg plejer at gøre sådan, at jeg gemmer de "rå" data i databasen, evt. lige backslasher med mysql_real_escape_string() i INSERT-forspørgslen for at undgå injection.

Det jeg så gør er, at jeg behandler de udhentede data på forskellige måder.
Hvis du ønsker at lave f.eks. æ, ø og å om til &aelig; &oslash; og &aring; så brug htmlentities(); Ønsker du at lave linieskift på teksten, altså <br />, så brug nl2br();

Eksempel.

Udhentet data $row['tekst'], som du ønsker at kombinere ovenstående 2 metoder:
  echo nl2br(htmlentities($row['tekst']));
Avatar billede tlunde Nybegynder
29. september 2005 - 11:50 #2
Det jeg skal gemme er hele artikler, vil du bare bare gemme dem i rå tekst i databasen, sådan at man slet ik kan se linieskift eller andet? Eller har jeg misforstået det?
Avatar billede tlunde Nybegynder
29. september 2005 - 12:11 #3
jaw:

Eksempelvis, hvis jeg vil gemme dette tekst:

----------
En selvhjælpsgruppe består af 5-8 mennesker, som mødes med jævne mellemrum for at snakke om et bestemt emne eller problem, for eksempel skilsmisse, sygdom, ensomhed eller sorg over at have mistet.

En selvhjælpsgruppe er et arbejdsfællesskab, der består af mennesker, der går sammen om at bearbejde et problem. Selvhjælpsmetoden henvender sig til personer af begge køn, alle aldersgrupper og politiske eller religiøse overbevisninger.

Den eneste forudsætning for at være i en selvhjælps-gruppe er, at man har et emne eller en problematik i sit liv, man ønsker at arbejde konstruktivt med sammen med en mindre gruppe ligesindede.

Deltagelse i en selvhjælpsgruppe kræver altså, at man er motiveret til at arbejde for at forbedre sin egen situation og tage ansvar for sit liv.

Dog kan alvorligt psykisk syge eller personer med store misbrugsproblemer ikke medvirke i de traditionelle selvhjælpsgrupper. Heldigvis findes der flere specialiserede foreninger for mennesker med disse problemer, der tilbyder selvhjælpsgrupper.
----------

Hvordan vil du gøre det på den måde du foreslår, og hvordan vil du hive det ud igen, for at få det til at vise alle formateringerne rigtigt?
Avatar billede jaw Nybegynder
29. september 2005 - 12:48 #4
Korrekt, jeg vil gemme det uden at formatere det først. Så vil det i databasen fremgå nærmest som én lang smøre.

Prøv det med din tekst, og så lav et simpelt udtræk og formater med nl2br(); så vil du vist se hvad jeg mener:
echo nl2br($row['tekst']);
Avatar billede tlunde Nybegynder
29. september 2005 - 12:56 #5
lige et spørgsmål?
Hvordan kan den i databasen se forskel på om der er linie- afsnitskift?
Avatar billede jaw Nybegynder
29. september 2005 - 13:37 #6
Det kan den ved, at et linieskift foruden <br /> i html også kan være \n eller \r\n afhængig af hvad slags server det er. nl2br kan faktisk også kaldes "new line to break" altså \n til <br />.
Avatar billede tlunde Nybegynder
29. september 2005 - 17:08 #7
Okay, kigger lige på det i morgen, men indtil videre tak for hjælpen. Vender tilbage hvis der opstår problemer (Skal der nok gøre :) )
Avatar billede tlunde Nybegynder
01. oktober 2005 - 10:14 #8
Hej igen jaw,
Det ser ud til at det virker med at gemme den rå tekst uden formateringer, og så hive det ud igen med: nl2br($row['tekst']);

Men har stadig lige et lille problem, hvad med web- og emailadresser? De bliver stadig bare skrevet ud i ren tekst, men det skulle gerne blive til et link i teksten, kan man det?
Avatar billede jaw Nybegynder
02. oktober 2005 - 15:47 #9
Hey.

Der skal du have fat i en tagster-funktion. Mener at den de bruger her på exp. ligger under artikler, men igen så mener jeg at det bør gøres når du henter dataene i stedet for når du gemmer dem.
Avatar billede tlunde Nybegynder
11. oktober 2005 - 15:11 #10
jaw:
Smider du lige et svar, som tak for hjælpen?
Avatar billede jaw Nybegynder
11. oktober 2005 - 15:12 #11
Gør jeg da selvfølgelig gerne :) Selv tak.
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