Bestellformular für EINZEL-Artikel mit Antwortmail
Naja du führst einmal den setlocale Aufruf auf und dann immer sprintf um die Zahlen zu formatieren.
Code: Alles auswählen
setlocale(LC_ALL, "de_DE", "german");
[...]
$einzelpreis = ...
$anzahl = ...
$message = sprintf("Vielen Dank für ihre Bestellung von %d Büchern à %.2f €. Der Gesamtpreis ihrer Bestellung ist somit %.2f €", $anzahl, $einzelpreis, $einzelpreis * $anzahl);
mail(..., $message);
printf("Sie haben Waren im Wert von %.2f € bestellt.", $einzelpreis * $anzahl);
KB:knigge
Hi Pyramide,
VIELEN DANK
darauf wäre ich nie gekommen, das ist ja richtig unlogisch, dass ich nun nicht mehr "$betrag" im Text verwenden kann, oder ihn global so wie round() formatieren kann
... und wenn man Beträge öfters verwendet, wird´s ja noch umständlicher. Aber ich hab´s gepackt
Jetzt hab ich nur noch das Problem, dass ich nicht 16% MwSt. schreiben kann, weil das %-Zeichen als Funktion und nicht als Textzeichen gelesen wird. Da muss ich doch irgendwie was "auskommentieren" mit "\" oder so ... ich find aber nicht raus
Und mit dem html-Mailheader:
Gibt es dafür ´ne Erklärung oder Lösung? Andere Mailheaderformatierung?
Einen sonnigen Sonntag noch
Uwe[/code]
VIELEN DANK

darauf wäre ich nie gekommen, das ist ja richtig unlogisch, dass ich nun nicht mehr "$betrag" im Text verwenden kann, oder ihn global so wie round() formatieren kann

... und wenn man Beträge öfters verwendet, wird´s ja noch umständlicher. Aber ich hab´s gepackt

Code: Alles auswählen
$text_lieferschein = sprintf("
[...]
<p>Ihre Bestellung vom $bestelldatum Uhr:</p>
<p> %1\$d x Artikel zu je %2\$.2f EUR<br>
= %3\$.2f EUR<br>
+ %4\$.2f EUR für Versand $land<br>
______________________________________<br>
= %5\$.2f EUR Gesamtbetrag<br>
<br>
In diesem Betrag sind 16 Prozent = %6\$.2f EUR Mehrwertsteuer enthalten.</p>
[...]
", $anzahl, $preis, $betrag, $versandkosten, $summe, $mwst);
mail(
$absender,
$my_betreff,
$text_lieferschein,
$extheader_ls
);

Und mit dem html-Mailheader:
kann ich im $test_lieferschein zwar <br>, <b> und <p> verwenden, aber nicht <fontsize>.$extheader_ls = "From: ".$_POST["absender"]."\n"
."Content-Type: text/html; charset=\"iso-8859-1\"\n"
."Content-Transfer-Encoding: 8bit\n";
Gibt es dafür ´ne Erklärung oder Lösung? Andere Mailheaderformatierung?
Einen sonnigen Sonntag noch

Uwe[/code]
Du kannst natürlich auch einfach $betrag_formatiert = sprintf("%.2f", $betrag) schreiben - das hatte ich dir ja zuerst vorgeschlagen. Aber insbesondere bei kurzen Texten ist IMHO die Variante mit mehreren Parametern übersichtlicher:uwe.hanss hat geschrieben:darauf wäre ich nie gekommen, das ist ja richtig unlogisch, dass ich nun nicht mehr "$betrag" im Text verwenden kann, oder ihn global so wie round() formatieren kann![]()
... und wenn man Beträge öfters verwendet, wird´s ja noch umständlicher.
Code: Alles auswählen
$message = sprintf("Sie haben %d Artikel zu je %.2f € gekauft, also insgesamt %.2f €.", $anzahl, $einzelpreis, $gesamtpreis);
Code: Alles auswählen
$anzahl = sprintf("%d", $anzahl);
$einzelpreis = sprintf("%.2f", $einzelpreis);
$gesamtpreis = sprintf("%.2f", $gesamtpreis);
$message = "Sie haben $anzahl Artikel zu je $einzelpreis € gekauft, also insgesamt $gesamtpreis €.";
Code: Alles auswählen
$message = "Sie haben " . sprintf("%d", $anzahl) . " Artikel zu je " . sprintf("%.2f", $einzelpreis) . " € gekauft, also insgesamt " . sprintf("%.2f", $gesamtpreis) . " €."
Liegt wohl daran, daß es <fontsize> in HTML nicht gibt...entweder <font size="2"></font> oder besser <span style="font-size: 1.5em"></span> oder noch besser gar kein HTML in EMails verwenden.uwe.hanss hat geschrieben:... kann ich im $test_lieferschein zwar <br>, <b> und <p> verwenden, aber nicht <fontsize>.
Gibt es dafür ´ne Erklärung oder Lösung?
KB:knigge
N´abend,
Jetzt hab ich´s aber
... und so find ich´s auch besser

Aber bei
<font size="2"></font> oder
<span style="font-size: 1.5em"></span>
kommt immer:
Parse error: parse error, unexpected T_LNUMBER in ...
OHNE die ' " ' und dafür ' { ' geht es

So, ich glaub ich hab´s
VIELEN DANK an den Großherzigen Helfer aus Großheide
Uwe
da hatte ich es wohl noch nicht verstandenPyramide hat geschrieben: Du kannst natürlich auch einfach $betrag_formatiert = sprintf("%.2f", $betrag) schreiben - das hatte ich dir ja zuerst vorgeschlagen.

Jetzt hab ich´s aber

... und so find ich´s auch besser

Ja, meine ja auch <font size...>Pyramide hat geschrieben: Liegt wohl daran, daß es <fontsize> in HTML nicht gibt

Aber bei
<font size="2"></font> oder
<span style="font-size: 1.5em"></span>
kommt immer:
Parse error: parse error, unexpected T_LNUMBER in ...
OHNE die ' " ' und dafür ' { ' geht es

Mach ich ja normalerweise auch nie; die Kundenmail ist auch "plain". Aber die Mail an mich ist so nun schön formatiert, dass ich sie direkt als Lieferschein ausdrucken kannPyramide hat geschrieben:oder noch besser gar kein HTML in EMails verwenden.

So, ich glaub ich hab´s

VIELEN DANK an den Großherzigen Helfer aus Großheide

Uwe
- jasc
- Ehemaliges Teammitglied
- Beiträge: 2497
- Registriert: 24.05.2001 02:00
- Wohnort: Hergensweiler bei Lindau/B
Also wenn du das ganze innerhalb von PHP-Code schreibst, probier es mal mituwe.hanss hat geschrieben: Ja, meine ja auch <font size...>
Aber bei
<font size="2"></font> oder
<span style="font-size: 1.5em"></span>
kommt immer:
Parse error: parse error, unexpected T_LNUMBER in ...
OHNE die ' " ' und dafür ' { ' geht es
Code: Alles auswählen
<font size="2"></font>