Seite 2 von 2

Verfasst: 07.10.2005 15:55
von Pyramide
Lies dir dochmal die verlinkte PHP-Dokumentation durch.

Verfasst: 07.10.2005 16:30
von uwe.ha
Hi Pyramide,

ist ja gut gemeint, dass ich lesen und lernen soll ;-)
... aber ich hab (noch) zu wenig Ahnung, als dass ich verstehe, was da steht :-?

Gib mir einen Tipp ... vielleicht komm ich ja noch drauf :roll:

Danke!
Uwe

Verfasst: 16.10.2005 01:37
von uwe.ha
bettel, bettel ... bitte, bitte :D
Ich komm nicht drauf :cry:
Bitte sagt mir, wie´s geht :grin:

Uwe

Verfasst: 16.10.2005 03:06
von Pyramide
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);

Verfasst: 16.10.2005 13:04
von uwe.ha
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 :D

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>
  + &nbsp; %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
);
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:
$extheader_ls = "From: ".$_POST["absender"]."\n"
."Content-Type: text/html; charset=\"iso-8859-1\"\n"
."Content-Transfer-Encoding: 8bit\n";
kann ich im $test_lieferschein zwar <br>, <b> und <p> verwenden, aber nicht <fontsize>.
Gibt es dafür ´ne Erklärung oder Lösung? Andere Mailheaderformatierung?

Einen sonnigen Sonntag noch ;-)
Uwe[/code]

Verfasst: 16.10.2005 18:42
von Pyramide
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.
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:

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) . " €."
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?
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.

Verfasst: 16.10.2005 21:15
von uwe.ha
N´abend,
Pyramide hat geschrieben: Du kannst natürlich auch einfach $betrag_formatiert = sprintf("%.2f", $betrag) schreiben - das hatte ich dir ja zuerst vorgeschlagen.
da hatte ich es wohl noch nicht verstanden :oops:
Jetzt hab ich´s aber :D
... und so find ich´s auch besser ;-)
Pyramide hat geschrieben: Liegt wohl daran, daß es <fontsize> in HTML nicht gibt
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 ;-)
Pyramide hat geschrieben:oder noch besser gar kein HTML in EMails verwenden.
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 kann :D

So, ich glaub ich hab´s :D

VIELEN DANK an den Großherzigen Helfer aus Großheide ;-)

Uwe

Verfasst: 17.10.2005 10:12
von jasc
uwe.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 ;-)
Also wenn du das ganze innerhalb von PHP-Code schreibst, probier es mal mit

Code: Alles auswählen

<font size="2"></font>