Avatar billede pemo123456 Novice
26. maj 2011 - 09:18 Der er 8 kommentarer og
1 løsning

Problemer med bl.a. <br /> bliver vist på front end

Hej

Jeg har lavet hjemmeside i PHP med tilhørende MySQL database. Til siden har jeg lavet et kontrolpanel, så jeg nemmere kan redigere siderne. Jeg har dog det problem, at hvis jeg "går" tilbage til en side for at redigere i den i kontrolpanelet, så trækkes <br /> tag og lignende med frem, hvorefter de står dobbelt og derfor bliver vist på front end siden. Når jeg opretter side, eller hvis jeg sletter tags'ne inden jeg gemmer efter at have redigeret, så ser det fint nok ud.

Hvad er problemet, og hvad kan jeg gøre for at løse det?

:-)
Avatar billede pemo123456 Novice
26. maj 2011 - 09:20 #1
Skulle måske lige have tilføjet, at det er ved <textarea name=""> jeg har problemet.
Avatar billede kentora Nybegynder
26. maj 2011 - 11:12 #2
Inde i et textarea vises html koden, og den bliver ikke afviklet. Du kan bruge almindelige newlines (linjeskift) inde i textarea'et.
Avatar billede pemo123456 Novice
26. maj 2011 - 11:18 #3
Ja, det er også det jeg gør, men når jeg gemmer min tekst og så trækker den frem igen i kontrolpanelet, så er der tilføjet <br /> tags automatisk. Disse tags vises så i front end, hvis jeg gemmer teksten i kontrolpanelet uden først at slette tags'ne.

Det er det, jeg gerne vil være foruden, og derfor have en løsning på.
Avatar billede kentora Nybegynder
26. maj 2011 - 12:51 #4
Hvis du bruger en WYSIWYG Editor, er det meget muligt at der bruges funktionen nl2br. Du kan muligvis lave nogle regular expresions og så bruge pregslit, og så bare bruge nl2br på [0],[2],[3],[5] og så videre (alt efter hvor mange textareas der er.)
Avatar billede pemo123456 Novice
26. maj 2011 - 13:12 #5
Jeg bruger pt. ikke WYSIWYG Editor for at være sikker på, at det ikke er en sådan, der laver ravage.

nl2br er ikke noget jeg kender til, før du skriver det her. Logikken må være, at det i hvert fald ikke bruges, når jeg opretter en side. Kan så være, at jeg uvidende bruger det, når jeg trækker informationer til redigering i kontrolpanelet.

Må lige checke op på det.
Avatar billede pemo123456 Novice
26. maj 2011 - 22:05 #6
Jeg har dette filter script med i min kode, hvor nl2br som du nævner indgår. Jeg har prøvet at fjerne nl2br delen, men så bliver outputtet i front end en lang smøre, der ikke er delt i de afsnit, som jeg gerne vil have. Så hvis jeg fjerner den, løser den principielt problemet, men skaber et nyt, så det dur ikke.


function filterFunction ($var) {
    $var = nl2br(htmlspecialchars($var));
    $var = eregi_replace("'", "'", $var);
    $var = eregi_replace("`", "'", $var);
    return $var;
}

Det, du skriver her: Du kan muligvis lave nogle regular expresions og så bruge pregslit, og så bare bruge nl2br på [0],[2],[3],[5] og så videre (alt efter hvor mange textareas der er.) siger mig desværre ikke så meget, så hvis du tror det kan løse mit problem, gider du så uddybe lidt - tak.
Avatar billede pemo123456 Novice
28. maj 2011 - 11:08 #7
Hej

Har fundet en løsning. Fjerne denne del af filtret:

  $var = nl2br(htmlspecialchars($var));

og så installere en WYSIWYG Editor.

Så styrer de forskellige html tags tilsyneladende problemfrit.

Tak for hjælp - smid et svar, så er der point på vej. :-)
Avatar billede pemo123456 Novice
03. juni 2011 - 09:32 #8
Hej kentora

Kan jeg få dig til at smide et svar, så jeg kan få lukket.

Din hjælp med nl2br var årsagen til, at jeg fik fundet og løst fejlen.

:-)
Avatar billede pemo123456 Novice
18. juni 2011 - 08:16 #9
lukker here - tak for hjælp igen.
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