Email Ausrichtung
Christoph
- php
Hallo Forum,
ich habe wieder ein Problem: Ich lasse durch ein Kontaktformular mir Daten schicken, soweit sogut. Und diese Daten lass ich mit der mail() Funktion mir zuschicken. Alles geht. Habe jetzt mittlerweile auch viele Abfragen vorher eingebaut zur Überprüfung usw...
Nun hatte ich vorher immer die Mail ausrichten lassen (mir viel kein anderes Wort ein) mit \n und \r Also Zeilenumbruch und Tabulator setzten. Das ging ja alles vorher, wo die Superglobals noch net waren. Jedoch jetzt gehts net mehr. Hier ein Auszug aus meinem Code:
$mail = "christoph@gahmann.com";
$headers ='From: '.$_POST['vorname'].' '.$_POST['nachname'].' <'.$_POST['email'].'>\r\n';
$message .='Vorname: '.$_POST['vorname'].'\n';
$message .='Nachname: '.$_POST['nachname'].'\n\n';
$message .='Email: '.$_POST['email'].'\n';
$message .='Homepage: '.$_POST['homepage'].'\n';
$message .='Nachricht: '.$_POST['nachricht'].'\n\n';
$message .= "----------------------------------------\n";
@$send=mail($mail,"Kontaktaufnahme",$message,$headers);
Ankommen tuts dann ungefähr so: Vorname: Christoph\nNachname: Gahmann\n\nEmail: cg@ghostnet.de\nHomepage: usw...
was mach ich nun wieder falsch?
LG Christoph!
Hallo,
Ankommen tuts dann ungefähr so: Vorname: Christoph\nNachname: Gahmann\n\nEmail: cg@ghostnet.de\nHomepage: usw...
\n zwischen einfachen Anführungszeichen ' werden (genauso wie
Variablen) nicht geparst. Wenn du stattdessen " verwendest,
sollte es gehen.
Gruß,
dimde
P.S. Ich wüsste gern, wieso das so ist und wie man das "umgehen" kann.
Um den Vorteil der ' (schneller, " müssen nicht escaped werden) zu
nutzen und trotzdem schönen Sourcecode auszugeben, müsste man ja
ständig sowas schreiben 'irgendein langer (Quell)Text'."\n";
Hallo Dimde
Richtige Erklärung.
P.S. Ich wüsste gern, wieso das so ist und wie man das "umgehen" kann.
Um den Vorteil der ' (schneller, " müssen nicht escaped werden) zu
nutzen und trotzdem schönen Sourcecode auszugeben, müsste man ja
ständig sowas schreiben 'irgendein langer (Quell)Text'."\n";
Verwende ein heredoc (ab PHP 4)
http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc
Ich zitiere (etwas frei) aus Programming PHP von Rasmus Lerdorf & Kevin Tatroe:
<cite>
Quoting String Constants
There are three ways to write a literal string in your program:
using single quotes,
double quotes,
and the here document (heredoc) ...
These methods differ in whether they recognize special escape sequences that
let you encode other characters or interpolate variables.
The general rule is to use the least powerful quoting mechanism necessary.
</cite>
Gruss,
Vinzenz
Hallo,
Hallo
Ankommen tuts dann ungefähr so: Vorname: Christoph\nNachname: Gahmann\n\nEmail: cg@ghostnet.de\nHomepage: usw...
\n zwischen einfachen Anführungszeichen ' werden (genauso wie
Variablen) nicht geparst. Wenn du stattdessen " verwendest,
sollte es gehen.
Danke ich habs alles umgeschrieben und nur " genommen, nun gehts auch!
Gruß,
dimde´P.S. Ich wüsste gern, wieso das so ist und wie man das "umgehen" kann.
Um den Vorteil der ' (schneller, " müssen nicht escaped werden) zu
nutzen und trotzdem schönen Sourcecode auszugeben, müsste man ja
ständig sowas schreiben 'irgendein langer (Quell)Text'."\n";
Lies mal hierzu: http://www.dclp-faq.de/q/q-stil-anfuehrungszeichen.html
Gruß Christoph
Hi!
Ich programmiere zwar ausschlieslich in Perl, dort ist es jedoch so, das Zeichen wie \r und \n in _doppelte_ Anführungszeichen gesetzt werden müssen. In einfachen Anführungsstrichen werden sie nicht als Steuerzeichen sondern als Strings behandelt.
'\n' -> \n
"\n" -> <Zeilenumbruch>