Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:26 Der er 18 kommentarer og
1 løsning

Linjeskift ved mail via tekstbox!?

Jeg har et nyhedssystem hvor jeg sender mails, til alle dem der er i min database. Problemet er bare at den besked jeg sender, slevom jeg laver linjeskift i tekstboxen, så bliver det bare til mellemrum i mailen, hvordan laer jeg om på det?:

// Her er den fil hvor jeg skriver nyheden!
<form action="sendnyhed.php" method="post">
<textarea cols=50 rows=20 name="tekst"></textarea>
<input type=submit name=submit value=Send>

---- // Her er den jeg sender mailen med -----

<?
include('xxxxx.php');

$tekst = $_POST['tekst'];
$q = mysql_query("SELECT email FROM nyhed WHERE nyhed = 'ja'") or die(mysql_error());
while($row = mysql_fetch_array($q)) {

    $email = $row[email];
    $headers = "From: FRIENDS <mail>\n";
    $headers .= "Reply-to: mail\n";
    $headers .= "X-Sender: <mail>\n";
    $headers .= "X-Mailer: mail\n";
    $headers .= "X-Priority: 3\n";
    $headers .= "Return-Path: <mail>\n";
    $mailadr = $_POST['mailadr'];
    mail($email,"Nyhedsbrev fra FRIENDS","$tekst\n","$headers");
}

?>
Avatar billede taskmgr Nybegynder
14. juni 2004 - 21:29 #1
Prøv med:

$tekst = nl2br($_POST['tekst']);

i stedet for:
$tekst = $_POST['tekst'];
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:32 #2
Så står der:

Hajza, er der mon linjeskift nu,<br /> <br /> dette er test på friends,<br /> tag dig ikke af mailen!

I MAILEN ALTSÅ!
Avatar billede jaw Nybegynder
14. juni 2004 - 21:34 #3
prøv med:
$tekst = str_replace("\n","\r\n", $tekst);
Avatar billede taskmgr Nybegynder
14. juni 2004 - 21:35 #4
Nå ja, min fejl.
Men i så fald burde der sådan set komme linebreaks i din mail.
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:38 #5
Brevene er blanke!

HAr prøvet med $tekst = str_replace("\n","\r\n", $_POST['$tekst']);
Avatar billede jaw Nybegynder
14. juni 2004 - 21:41 #6
Ikke med $_POST, men:
$tekst = $_POST['tekst'];
$tekst = str_replace("\n","\r\n", $tekst);
$q = mysql_query("SELECT email FROM nyhed WHERE nyhed = 'ja'") or die(mysql_error());

det andet er mail() ikke særlig glad for...
Avatar billede jaw Nybegynder
14. juni 2004 - 21:42 #7
hov nej, jeg læste din kommentar forkert, sry...
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:44 #8
du kan da ikke lave to der hedder tekst?

Så skal du da kalde den anden noget andet?

fx.

$tekst = $_POST['tekst'];
$teksten = str_replace("\n","\r\n", $tekst);
$q = mysql_query("SELECT email FROM nyhed WHERE nyhed = 'ja'") or die(mysql_error());

Så skal den selvfølgelig også rettes nederst på siden under mail, men skal jeg ikke det?
Avatar billede jaw Nybegynder
14. juni 2004 - 21:45 #9
Du behøver faktisk ikke kalde den noget andet, sålænge den bare står som det gør der - altså at det er den nederste $tekst der skal være den med str_replace du sender
Avatar billede jaw Nybegynder
14. juni 2004 - 21:46 #10
Men jeg er heller ikke sikker på at det virker, kun fordi jeg ved, at \n er til Unix og \r\n er til Windows - hvis de bruger Windows servere :(
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:47 #11
De bruger unix.
Avatar billede jaw Nybegynder
14. juni 2004 - 21:48 #12
Nå oki, ja så er det ikke nogen løsning...
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:49 #13
Dette virker!

YES

$tekst = $_POST['tekst'];
$teksten = str_replace("\n","\r\n", $tekst);
$q = mysql_query("SELECT email FROM nyhed WHERE nyhed = 'ja'") or die(mysql_error());


Jeg beholder \r\n, hvis jeg nu skulle skifte til andet sted med windows, så jeg ikke gelmmer det!

Smid et svar!
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:50 #14
Det virker fint, det er en løsning, hvorfor troede du ikke det?
Avatar billede jaw Nybegynder
14. juni 2004 - 21:51 #15
Virkede mit???
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:53 #16
Ja, det gør, hvorfor troede du ikke det? Smid forklaring som svar!
Avatar billede jaw Nybegynder
14. juni 2004 - 21:56 #17
Jamen ganske simpelt fordi du siger at det er Unix mailservere de bruger... Og så vidt jeg ved (eller troede), så er mit foreslag til at konvertere fra Unix linieskift til Windows linieskift... Men jo bare fint hvis det funker :)
Avatar billede hmmhelpinghmm Nybegynder
14. juni 2004 - 21:59 #18
Takker 1000 gange, vil lige sige,
\r\n er til windows
men du indsatte også
\n som er til unix
Derfor!
Avatar billede jaw Nybegynder
14. juni 2004 - 22:00 #19
hmm... no problem :)
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