Avatar billede mjl Nybegynder
09. september 2003 - 18:00 Der er 23 kommentarer og
4 løsninger

Medtage mellemrum i mail.

Hej der...

Har brug for hurtig hjælp... :o)

Jeg sender en mail via PHP, og mit besked felt, er <textarea>....

Hvis der er linieskift i feltet, sender den slet ikke mailen - men uden gør den...

Hvordan for jeg den til at sende linieskift med?

hilsen Conrad
Avatar billede makman Nybegynder
09. september 2003 - 18:03 #1
Hvis du er PHP proof (hvilket jeg ikke er) men jeg ved noget om det.. Så skal du bruge en $replace (hvilket hvis du er phpproof ved alt om ;))
Avatar billede odni Nybegynder
09. september 2003 - 18:05 #2
nl2br($dintekst);
Avatar billede odni Nybegynder
09. september 2003 - 18:08 #3
den samme funktion med makmans hentydninger er

str_replace("/n", "<br>", $dintekst);

men brug nl2br - den er ment for det ;)
Avatar billede mjl Nybegynder
09. september 2003 - 18:13 #4
nl2br - hjælper ikke...
Avatar billede odni Nybegynder
09. september 2003 - 18:15 #5
<textarea cols="50" rows="10" name="tekst">

</tekstarea>

og når du sender den i formen og modtager:

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

og så skal du sende $nytekst .... det burde virke ;)
Avatar billede smooth Nybegynder
09. september 2003 - 18:17 #6
hej pørv :

$besked = $_POST[besked];
$besked = str_replace("&apos;","'", $besked);
$besked = str_replace("'","'", $besked);

$besked = str_replace("  "," &nbsp;", nl2br(htmlentities(addslashes($besked))));
Avatar billede mjl Nybegynder
09. september 2003 - 18:22 #7
smooth> Nu modtager jeg mail, men uden tekst - altså en blank mail...
Avatar billede mjl Nybegynder
09. september 2003 - 18:23 #8
odni> Gav ingenting...
Avatar billede mjl Nybegynder
09. september 2003 - 18:26 #9
Sætter lige lidt flere points på...

30 > 60
Avatar billede smooth Nybegynder
09. september 2003 - 18:30 #10
mjl  >> Har du husket at udskifte din tekst variabel med $besked ?
Kan du ikke smide os din kode, så vi kan se på det. Måske er fejlen et andet sted.

Med venlig hilsen
Smooth
Avatar billede mjl Nybegynder
09. september 2003 - 18:32 #11
Jeg har...

mail("navn@domain.dk","$webmaster_kontakt","$ris_ros_besked");

$ris_ros_besked er res. fra <textarea>

...og formen:

<form action=index.php method=post>
<input type=hidden name=webmaster_kontakt value="Ris_eller_ros">
<textarea name=ris_ros_besked cols="50" rows="10" class=felt></textarea>
<br><br>
<input type=submit value="Send til webmaster" class=knap>
</form>
Avatar billede detox Nybegynder
09. september 2003 - 18:36 #12
mail("navn@domain.dk",$webmaster_kontakt,$ris_ros_besked);
Avatar billede mjl Nybegynder
09. september 2003 - 18:38 #13
detox> Nop - desværre...
Avatar billede smooth Nybegynder
09. september 2003 - 18:40 #14
prøv med :

<?
if(!empty($_POST[ris_ros_besked])){

$besked = $_POST[ris_ros_besked];
$besked = $_POST[besked];
$besked = str_replace("&apos;","'", $besked);
$besked = str_replace("'","'", $besked);

$besked = str_replace("  "," &nbsp;", nl2br(htmlentities(addslashes($besked))));

mail("navn@domain.dk", Mail fra siden, $besked,);
    header("Location:index.php");
}
?>
Avatar billede detox Nybegynder
09. september 2003 - 18:41 #15
Så tror jeg ikke dine variabler indeholder det de skal. Prøv at udskrive dem i stedet.
Avatar billede smooth Nybegynder
09. september 2003 - 18:43 #16
Hvis mit script ikke kører nu så tror jeg at du skal vise og hele koden og ikke kun en lille del. Vi skal jo se om du ikke lave en fejl et eller anden sted.
Avatar billede mjl Nybegynder
09. september 2003 - 18:46 #17
ok...

Hvis jeg kun skriver b, så modtager jeg en mail med b i besked-feltet...

Skriver jeg

b

b

...står der intet i feltet - men nu får jeg dog en mail, med dit sidste forslag smooth - før fik jeg ingen mail, hvis jeg lavede linieskift...
Avatar billede mjl Nybegynder
09. september 2003 - 18:48 #18
Jeg kan heller ikke lave mellemrum...

b b

sendes heller ikke...
Avatar billede detox Nybegynder
09. september 2003 - 19:02 #19
Problemet er måske at din form bruger \r\n som newline og ikke alle servere fungerer med det. Det hjælper slet ikke at bruge <br />, da du ikke bruger html.
Prøv at udskrive din tekst variabel med:

if (isset($_POST['ris_ros_besked'])) {
    $tekst = $_POST['ris_ros_besked'];
    for ($i=0;$i<strlen($tekst);$i++) {
        $bog = substr($tekst,$i,1);
        echo ord($bog)." ";
    }
}

Så vi kan se hvad din form helt præcist sender. Mit forslag er så at udskifte \r\n med \n, som virker på alle servere.
Avatar billede detox Nybegynder
09. september 2003 - 19:05 #20
Ellers vil jeg mene, som smooth, at du må poste hele scriptet. Så det kan tjekkes for slåfejl o.l.
Avatar billede mjl Nybegynder
09. september 2003 - 19:39 #21
Mærkeligt...

Jeg satte din kode ind, og nu sender den mellemrum, men stadig ikke linieskift...

Den echo'er '68 101 116 116 101 32 101 114 32 101 110 32 112 114 248 118 101' på siden, og 'Dette er en prøve' i mailen
Avatar billede detox Nybegynder
09. september 2003 - 19:41 #22
Men prøv med en ny linie.
Avatar billede mjl Nybegynder
09. september 2003 - 19:43 #23
...så får jeg:

76 105 110 105 101 32 110 117 109 109 101 114 32 49 13 10 76 105 110 105 101 32 110 117 109 109 101 114 32 50
Avatar billede detox Nybegynder
09. september 2003 - 19:46 #24
Ja, det var det jeg tænkte. 13 10 = \r\n. Prøv at bytte det ud med \n:

$besked = $_POST['ris_ros_besked'];
$besked = str_replace("\r\n", "\n", $besked);
Avatar billede mjl Nybegynder
09. september 2003 - 19:48 #25
HURRA HURRA HURRA HURRA HURRA HURRA.....

Læg et svar - du er guld værd - 10.000 tak!!!!
Avatar billede detox Nybegynder
09. september 2003 - 19:51 #26
Velbekommen c",)
Avatar billede mjl Nybegynder
09. september 2003 - 19:54 #27
Tak til Jer andre også - jeg hævede til 90 p. og fordelte som ses...

Tak for altid fin hjælp - det gør mig skide glad.
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