Kom ihåg mig?
Home Menu

Menu


Ny rad @ PHP mail()

 
Ämnesverktyg Visningsalternativ
Oläst 2011-04-27, 14:41 #1
em0c4tz em0c4tz är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2011
Inlägg: 17
em0c4tz em0c4tz är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2011
Inlägg: 17
Standard Ny rad @ PHP mail()

Hej.

Jag försöker få mitt kontaktformulär att fungera. När en användare gjort en ny rad i textrutan så blir meddelandet i mejlet som skickas iväg "\r\n" istället för nya rader.

Exempel:
Hej.
Jag heter Karl Karlsson och bor i Karlstad.
Jag gillar päron
Mvh

Resultat:
Hej.\r\nJag heter Karl Karlsson och bor i Karlstad.\r\nJag gillar päron\r\nMvh

#Server
Webbhotell: Binero
Plattform: LINUX
PHP v.: 5.2.14

#Header
$header = 'Content-Type: text/html; charset="UTF-8"' . "\r\n";
$header .= 'MIME-Version: 1.0' . "\r\n";
$heades .= 'X-Mailer: PHP/".phpversion() . "\r\n";
$header .= 'From: Mail Inbox <[email protected]>' . "\r\n";
$headers .= 'Cc: Vatten Melon <[email protected]>' . "\r\n";

#Message
$message = preg_replace("#(?<!\r)\n#si", "\r\n", $_POST['msg']);

Kan ni se något som ska ändras, tas bort eller läggas till?

Tacksam för svar!
em0c4tz är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-27, 15:23 #2
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Om du ersätter \r\n med PHP konstanten: PHP_EOL istället?

Annars verkar det som att du kör:
Kod:
echo '\r\n';
istället för:
Kod:
echo "\r\n";
---

Däremot tycker jag att du ska skrota det "manuella" kodandet och köra med phpMailer (http://phpmailer.worxware.com/) istället. Den funkar out-of-the-box.

Senast redigerad av hnn den 2011-04-27 klockan 15:25
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 09:47 #3
em0c4tz em0c4tz är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2011
Inlägg: 17
em0c4tz em0c4tz är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2011
Inlägg: 17
Citat:
Ursprungligen postat av Kjette Visa inlägg
Se om du får nytta av det här som vi har utvecklat:

http://kjette.se/uploads/FormMail.zip
Nej, det hjälpte mig ingenting. Men väldigt bra jobbat med projektet!
em0c4tz är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 09:59 #4
em0c4tz em0c4tz är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2011
Inlägg: 17
em0c4tz em0c4tz är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2011
Inlägg: 17
Jag löste det genom denna funktion:
'str_replace('\r\n', '<br />', $_POST['msg']);

Tack för alla svar!
em0c4tz är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 12:43 #5
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Finns en färdig sådan funktion i PHP.. nl2br()
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 13:07 #6
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Citat:
Ursprungligen postat av Jine Visa inlägg
Finns en färdig sådan funktion i PHP.. nl2br()
Inte riktigt.

Syns \r\n i klartext, så funkar inte nl2br då den konverterar \n\r's motsvarande i ASCII kod (ASCII kod 10 och 13).
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 14:19 #7
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Eftersom "\n\r" (med just ") är just chr(10) & chr(13) så kommer nl2br fungera i hans exempel.

Enligt den koden han använder;
$message = preg_replace("#(?<!\r)\n#si", "\r\n", $_POST['msg']);
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 14:21 #8
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Citat:
Ursprungligen postat av Jine Visa inlägg
Eftersom "\n\r" (med just ") är just chr(10) & chr(13) så kommer nl2br fungera i hans exempel.

Enligt den koden han använder;
$message = preg_replace("#(?<!\r)\n#si", "\r\n", $_POST['msg']);
Om du läser vad han skrivit, så är det ju just det som inte sker
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 14:27 #9
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Antagligen pga. han skickar mailet som HTML, och som du kanske vet så syns inte \r\n i HTML (om man inte visar källkod)

Nåväl, TS har löst det (på enligt mig - fel sätt) någonstans i hans kod blir det tokigt med radbrytningen - problemet borde lösas genom att rätta till det så (om det nu inte går) han använder nl2br() istället.
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-28, 14:34 #10
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Citat:
Ursprungligen postat av Jine Visa inlägg
Antagligen pga. han skickar mailet som HTML, och som du kanske vet så syns inte \r\n i HTML (om man inte visar källkod)

Nåväl, TS har löst det (på enligt mig - fel sätt) någonstans i hans kod blir det tokigt med radbrytningen - problemet borde lösas genom att rätta till det så (om det nu inte går) han använder nl2br() istället.

rätt sätt hade ju varit:

$string = str_replace(array('\r\n', '\n\r'), "\r\n", $var);

$string = nl2br($string)
hnn är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
mail, php


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017