Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 19:35 Der er 26 kommentarer og
1 løsning

Den vil ikke spytte linje skift ved brug af "enter" rigtig ud

Hej alle her på Exaperten

Jeg er ved at lave en gæstebog, alt andet virker som det skal men når jeg skriver en tekst og vil hoppe på en ny linje, hvilket jeg gør med "enter", men når det så kommet ud af mySQL databasen kommer det ud uden linjeskift.
Det vil sige hvis man skal lave linje skift, skal man skrive "<br>", vilket ikke er fedt når det er en gæstebog for alle...

Min kolonne "besked" er oprettet som "text not null"...

Hvad kan der være galt siden at den ikke laver et linje skift ved at bruge "enter"???

Med Venlig Hilsen
Kim
Avatar billede jpvj Nybegynder
15. oktober 2003 - 19:36 #1
Det bliver du nødt til at kode dig ud af...

Linieskift i HTML hedder <BR> - det kan ingen ændre på.
Avatar billede jpvj Nybegynder
15. oktober 2003 - 19:38 #2
Dvs. du bliver nødt til at lave en "søg-erstat" på "\n" med <BR> når du laver dit output.

Du kan også gøre det når du gemmer. Det vil spare lidt CPU regneri, hver gang gæstebogen skal vises. Hvis du vil tillade at man retter i sit indlæg, skal du så gøre det "modsat" før du lægger teksten ind i tekstfeltet til brugeren...
Avatar billede kimg Nybegynder
15. oktober 2003 - 19:38 #3
$_POST['tekst'] = nl2br($_POST['tekst']);
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 19:55 #4
jpvj vil du ikke lige give et eks på den søg-erstat du mener skal bruges???
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 19:55 #5
kimq hvad gør den linje du har skrevet??? Laver den det linje skift???
Avatar billede kimg Nybegynder
15. oktober 2003 - 19:59 #6
ja, den laver linieskift, du skal udskifte med dit felt navn
$_POST['dit_felt_navn'] = nl2br($_POST['dit_felt_navn']);
Avatar billede sukos Juniormester
15. oktober 2003 - 19:59 #7
Bruger selv denne:

function br($var) {
return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>\n", $var);
}

som erstatter alle entertryk med EN ENKELT <br>

for at bruge den:

echo br($fradb["besked"]);
Avatar billede sukos Juniormester
15. oktober 2003 - 20:00 #8
Hvis alle entertryk skal byttes ud med en <br> skal du fjerne + tegnet
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 20:09 #9
Den linje du har givet mig sukos gover følgende fejl:

Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/02-03/Gaestebog/laes.php on line 225


Jeg har sat funktionen ind i et dokument jeg har til føjet til siden og så har jeg sat "br($fradb["$besked"])" ind der hvor min "$besked" stod før...

Hvad kan der være galt????
Avatar billede sukos Juniormester
15. oktober 2003 - 20:16 #10
<?php
function br($var) {
return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>\n", $var);
}


$hent = mysql_query("SELECT `besked` FROM `tablenavn` WHERE `besked` != ''") or die (mysql_error());
while($vis = mysql_fetch_array($hent)) {
echo br($vis["besked"]) ."<p>\n";
}
mysql_free_result($hent);

?>
Avatar billede sukos Juniormester
15. oktober 2003 - 20:17 #11
eller:

"br($fradb["$besked"])"
skal være
br($fradb["besked"]);
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 20:23 #12
jeg vil gerne lave det ud fra den første funktion du gav mig men den siger den samme fejl selvom at fin funktion hedder:

function br($var) {
return ereg_replace("(\r\n|\n\r|\n|\r)", "<br>\n", $var);
}

Og den måde jeg kalder funktionen der vor den skal være er:

br($fradb["besked"])
Avatar billede sukos Juniormester
15. oktober 2003 - 20:25 #13
Og hvad siger:

<?php
function br($var) {
return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>\n", $var);
}
?>

????????????
Altså IKKE andet end lige præcis det i en fil
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 20:27 #14
Den viser ikke noget... Så den må jo være god nok...
Avatar billede sukos Juniormester
15. oktober 2003 - 20:29 #15
Eller prøv denne:

<?php
function br($var) {
return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>\n", $var);
}

function br2($var) {
return ereg_replace("(\r\n|\n\r|\n|\r)", "<br>\n", $var);
}

$str = "Hej du!
Mon det virker???

Eller hva'?";

echo br($str);
echo"<p>";
echo br2($str);

?>
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 20:34 #16
Det virker også fint efter at variablen "$str" lige blev lavet... Men det er jo heller ikke det du du skrev til mig at jeg skulle skrive (altså "br($bedsked)".
Avatar billede sukos Juniormester
15. oktober 2003 - 20:37 #17
Ja ,jeg startede nu med at skrive:
echo br($fradb["besked"]);
:O)
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 20:39 #18
det vil sige at det skal skal skrive er "echo br($besked);"????
Avatar billede sukos Juniormester
15. oktober 2003 - 20:44 #19
Du skriver:
"men når det så kommet ud af mySQL databasen kommer det ud uden linjeskift"

altså, du henter fra DB'en

Efter din query, laver du jo så en fecth_array eller fetch_object, (formodentlig da! :O) ), så derfor skrev jeg
echo br($fradb["besked"]);

da dit felt jo hedder "besked"
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 20:48 #20
Ja det kommet ud på et det virker ikke...
Avatar billede sukos Juniormester
15. oktober 2003 - 20:55 #21
Prøv at vise hele scriptet med query m.m. hvor det ikke virker
Avatar billede sukos Juniormester
15. oktober 2003 - 20:56 #22
Virker jo iøvrigt fint her, f.eks.

http://www.showsource.dk/php/

:O) (beskrivelser vises på den måde)
Avatar billede sukos Juniormester
15. oktober 2003 - 21:05 #23
hmm, og grunden ti lat det ikke virkede, ligger jo sikkert i at du bruger:
echo"br($fradb["besked"])";

som jo så skal være
echo br($fradb["besked"]);
eller
(bad!)
echo"br($fradb[besked])";
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 21:27 #24
Ja det gør jeg jo endeligt... Men det er fordi at det skal ligge sammen med en helt masse html... Er det et eller andet smart jeg kan gøre ved det???
Avatar billede sukos Juniormester
15. oktober 2003 - 23:01 #25
Avatar billede little_kim86 Nybegynder
15. oktober 2003 - 23:03 #26
jeg har fundet ud af det det eneste jeg skulle bruge var en linje så simpel som "$besked = nl2br($besked);"
Avatar billede kimg Nybegynder
15. oktober 2003 - 23:27 #27
Det skrev jeg jo til dig 3 min efter du spurgte ;-)

Kim
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