Ringstadjr Skrevet 18. januar 2007 Rapporter Del Skrevet 18. januar 2007 Skal lage en blogg i JSP. Men det er to problem. Det første er utskrift av innleggene og kommentarene. De blir lagt inn i databasen med avsnitt og innrykk, slik de ble skrevet inn av brukere. Når jeg så skal skrive dem ut ved hjelp av JSP kommer alt som en sammenhengende tekstbolk. Det blir fryktelig uoversiktlig. Teksten legges inn i et textarea i et HTML-skjema. I databasen, som bruker mySQL er den lagret som text. Ellers lagrer JSP hele greia som String før den skriver d ut på sida. Hva er feil? Problem nr. 2 er at innleggene og kommentarene ikke kan inneholde '. Dette kommer i konflikt med mySQLs tegnsetting. Hvordan unngår jeg d? Lenke til kommentar
Drømmemannen Skrevet 18. januar 2007 Rapporter Del Skrevet 18. januar 2007 (endret) Ren tekst blir ikke automatisk HTML. Dvs to linjeskift som skiller to avsnitt i ren tekst blir ikke automatisk til </p><p> (slutt på forrige avsnitt, begynn på neste). Du må selv tolke teksten og generere de nødvendige HTML-kodene for at teksten skal bli vist korrekt på nettsiden. Kan godt hende det finnes noen ferdige biblioteker for dette, uten at jeg kjenner til noen. Det at ' kommer i konflikt med MySQL tyder på at du bruker SQL-injection. Kan godt hende jeg tolker deg feil, men uansett er bruk av SQL-injection en stor sikkerhetsrisiko og bør unngås. Da skal man også slippe å måtte ta hensyn til '. Si ifra hvis jeg tar feil. Endret 18. januar 2007 av balletryne Lenke til kommentar
Ringstadjr Skrevet 18. januar 2007 Forfatter Rapporter Del Skrevet 18. januar 2007 Ok. Jeg skal altså tolke teksten. Det vil si putte på <br/>, <p> og slike ting der det skal være. Men når skal jeg gjøre det? Etter jeg har tatt det ut av mySQL med JSP? Hvordan gjør jeg d? Hvordan vet jeg hvor og hvilke slike merkelapper som skal genereres? Når et gjelder ' så vet jeg ikke om jeg bruker injections, fordi jeg ikke vet hva det er. Hvordan jeg i så fall unngår det er derfor også ukjent. Unnskyld hvis det er grunnleggende ting innen programmering, men jeg er nybegynner og prøver å lære Lenke til kommentar
Zethyr Skrevet 19. januar 2007 Rapporter Del Skrevet 19. januar 2007 Dersom du legger <pre>-tagger rundt hele teksten kommer den til å bli printet på samme måte som den ble skrevet inn. Du "bruker" nok ikke SQL injections, ettersom dette er en angrepsteknikk som er mye brukt ovenfor nettsider som tar ibruk databaser, men koden din er sårbar ovenfor SQL injections. Lenke til kommentar
Ringstadjr Skrevet 20. januar 2007 Forfatter Rapporter Del Skrevet 20. januar 2007 Dersom du legger <pre>-tagger rundt hele teksten kommer den til å bli printet på samme måte som den ble skrevet inn. Du "bruker" nok ikke SQL injections, ettersom dette er en angrepsteknikk som er mye brukt ovenfor nettsider som tar ibruk databaser, men koden din er sårbar ovenfor SQL injections. 7754361[/snapback] Når skal jeg legge inn <pre>-taggene? Før den legges inn i databasen? Da får jeg ikke skiftet font på skriften. I alle fall får ikke jeg det til. Lenke til kommentar
Drømmemannen Skrevet 20. januar 2007 Rapporter Del Skrevet 20. januar 2007 I utgangspunktet spiller det ingen rolle om du legger til HTML-taggene før eller etter tekstene legges i databasen, så lenge de blir vist slik du ønsker det når de blir en del av nettsiden. Databasen er jo bare et midlertidig lagringspunkt uansett. Personlig ville jeg gjort det etter at tekstene er hentet ut fra databasen ettersom man da bevarer tekstene i sine opprinnelige former i databasen. Et første skritt for å få avsnitt: Trim teksten og legg til "<p>" på begynnelsen av teksten og "</p>" på slutten av teksten. Så, bytt ut alle doble linjeskift med "</p><p>". Bruker du regulære utrykk kan du f.eks. bruke /((?:[ \t]*\n){2,}[ \t]*)/ til å finne all white space som inneholder to eller fler linjeskift, og så erstatte disse med "</p><p>". Da unngår du eventuelle tomme avsnitt. Lenke til kommentar
Ze0s Skrevet 22. januar 2007 Rapporter Del Skrevet 22. januar 2007 (endret) et annet hot tips er å bytte ut linjeskift med <br> på denne måten: String tekst = request.getParameter("tekst"); String cr = System.getProperty("line.separator"); tekst = tekst.replaceAll(cr, "<br />"); bruken av System.getProperty("line.separator"); gjør at dette vil funke på alle OS (så vidt jeg vet ) håper dette hjelper deg litt på vei Endret 22. januar 2007 av Ze0s Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå