Oprettet fre. d. 10. februar 2012 kl. 12:59:40

Probie
Probie (3.285 point. Point ude: 200)
www.kasperwaagepetersen.dk

$_post fra textarea \r\n til <br/>

Hej alle sammen :)

jeg har et problem med en text jeg skriver i et textarea, jeg vil gerne have det vidst direkte på sitet når jeg trykker på post og jeg vil gerne have det vidst på flere linjer istedet for kun en lang linje.

jeg synes jeg har prøvet alt, nl2br() virker ikke og jeg kan simpelthen ikke finde en preg_replace der virker det bliver bare ved med at stå på en linje når jeg echo'er det. :(

hva skal jeg gøre for at få det til at stå på flere linjer?

Skrevet fre. d. 10. februar 2012 kl. 13:12:07| #1

The_Buzz
The_Buzz (13.155 point)
www.modified.dk
hvad med str_replace

$posttxt = $_POST['text'];
$posttxt = str_replace("\r\n", "<br />", $posttxt);
$posttxt = str_replace("\n", "<br />", $posttxt);

Skrevet fre. d. 10. februar 2012 kl. 13:20:29| #2

nej det virker ikke den står bar på en linje:
Det her er en test\r\nDet her er linje to i testen\r\n

Skrevet fre. d. 10. februar 2012 kl. 13:21:43| #3

The_Buzz
The_Buzz (13.155 point)
www.modified.dk
Kan du smide noget test kode?

Skrevet fre. d. 10. februar 2012 kl. 13:22:58| #4

smid et svar buzz!!! :P it's alive!! jeg rettede bare " omkring \r\n til ' også virkede det :P

Skrevet fre. d. 10. februar 2012 kl. 13:23:40| #5


Skrevet fre. d. 10. februar 2012 kl. 13:26:43| #6

The_Buzz
The_Buzz (13.155 point)
www.modified.dk
Jeg har selv haft det der problem tidligere. Forstod heller ikke hvorfor nl2br ikke virkede for mig, men den der "hack" med str_replace virkede for mig...

Undersøgte aldrig nærmere hvorfor det opførte sig så barnligt...

Skrevet fre. d. 10. februar 2012 kl. 14:15:42| #7

olebole
olebole (214.613 point)
<ole>

Som oftest er der tale om 'barnlig opførsel' fra koderens side  *o)

Problemet skyldes nemlig, at data bliver escaped - enten af PHP eller af koderen selv (f.eks. med mysql_real_escape_string). Derfor står der ikke \r\n i koden - men \\r\\n:

<?php
$text = "ole\r\nbole";
echo nl2br($text).'<hr>';

$text = mysql_real_escape_string($text);
echo nl2br($text);
?>

Hvis du bruger mysql_real_escape_string, bør du helt klart kikke på prepared statements i mysqli. PHP's almindelige mysql-API er efterhånden forældet, og i dag bruger man mysqli, som er langt sikrere end at 'hacke' sig frem med mysql_real_escape_string el.lign.

Derudover er det en skidt løsning at erstatte newlines ved indsætning i databasen. Det bør gøres efter hentning - lige inden udskrift. Ellers vil det meget let skabe problemer.

/mvh
</bole>

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger