Bestellformular für EINZEL-Artikel mit Antwortmail

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Bestellformular für EINZEL-Artikel mit Antwortmail

Beitrag von uwe.ha »

Hallo zusammen,

ich suche für einen EINZELNEN Artikel ein Bestellformular, das nach Klick auf "Absenden" - im Optimalfall - folgendes macht:

- Prüfung, ob alle Pflichtfelder ausgefüllt sind
- Bestätigungsseite (Danke für Ihre Bestellung, die Einzelheiten erhalten Sie per Mail an die angegebene Email-Adresse)
- 1 x Mail an Kunden mit allen eingegebenen Daten und Gesamtpreis (berechnet aus Menge des Artikels x Preis + Versandkosten für D oder Europaweit) und weiterem Texthinweis auf Vorkasse
- 1 x Mail an mich, die - im Optimalfall - gleich als Lieferschein/Rechnung im PDF-Format ankommt.

Gibt es sowas, bzw. wie könnte das - vor allem die Erstellung des Lieferschein als PDF - gemacht werden?

DANKE!
Uwe
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

unter http://www.hotscripts.com/PHP/index.html findest du schon mal 'ne Menge ...

Wenn es in ein phpBB integriert sein soll, dann solltest du mal hier suchen:
http://phpbbstuff.ddblog.org/projects/mdd/mdd.php

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Beitrag von uwe.ha »

Hi,

nein, es soll nicht in phpBb intergriert sein.

Das Problem ist ja nicht, ein Formular aufzubauen und per PHP zu versenden; dazu gibt es ja eine Menge Scripte.

Das Problem - zumindest für mich - ist für die Bestätigungsmail BERECHNUNGEN durchzuführen und das Erstellen eines PDF.

Vielleicht hat ja jemand einen konkreten Tipp!?

;-)
Uwe
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Also mit PDF kenn' ich mich nicht aus .. aber als Startpunkt vielleicht das hier?!

Nun zu den Berechnungen:

Nehmen wir mal an, du hast folgende Variablen $einzelpreis und $menge ...
Dann geht das einfach so:

Code: Alles auswählen

<?php
// dein sonstiger Code hier ...
$gesamtpreis = $einzelpreis * $menge;
$gesamtpreis = round($gesamtpreis,2);
?>
Gruss,
Manne.

P.S: Info zur Funktion round() gibt's hier!
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Beitrag von uwe.ha »

Hi Manne,

bisher klappt alles soweit ...vom PDF habe ich mich gedanklich veranschiedet, da ich absoluter php-Anfänger bin ;-)

Rechnen klappt auch, nur werden volle Zahlen ohne Nachkommastellen ausgegeben und statt des "Kommas" steht ein "Punkt" da.

Wie kann ich es formatieren als:
Zahl mit 2 Nachkommastellen und dem Komma (statt Punkt)?

Noch eine letzte Frage: Ich würde gerne das aktuelle Datum + Uhrzeit des Formularversandes übernehmen, um z.B. im Bestätigungsmail-Text schreiben zu können: "Sie haben soeben, am tt.mm.yy, um hh:mm Uhr folgendes bestellt ..."

Wenn ich im $mailtext schreibe: "Ihre Bestellung vom $date() ..." wird nur "()" übermittelt. Wie geht es richtig?

... ach wenn ich schon dabei bin (langsam fängt php an Spaß zu machen ;-) ):
Der Versand kann gehen nach:
- Deutschland
- Schweiz
- Niederlande
(Ist im Formular-Listmenü so als dropdown auswählbar)

Die Versandkosten nach D sind z.B. 2,00 EUR, andere Länder z.B. 4,00 EUR.

So, wie krieg ich das nun im Mailtext "gebacken"?

$versandkosten =
if ($land == "Deutschland" ... dann nehme bitte "2", ansonsten "4" ... so ähnlich geht das mit der IF-Funktion in Excel ... aber hier?

DANKE :D

Uwe
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

uwe.hanss hat geschrieben:Wie kann ich es formatieren als:
Zahl mit 2 Nachkommastellen und dem Komma (statt Punkt)?

Code: Alles auswählen

setlocale(LC_ALL, "de_DE", "german");
printf("%.2f", $zahl);
Der [php:setlocale] Aufruf muss nur einmal z.B. am Anfang der Datei stehen und gilt dann für die ganze Seite.
uwe.hanss hat geschrieben:Noch eine letzte Frage: Ich würde gerne das aktuelle Datum + Uhrzeit des Formularversandes übernehmen, um z.B. im Bestätigungsmail-Text schreiben zu können: "Sie haben soeben, am tt.mm.yy, um hh:mm Uhr folgendes bestellt ..."
Das geht mit [php:date] (oder mit deutschen Monats- und Wochentagnamen: setlocale (s.o.) + [php:strftime]).
uwe.hanss hat geschrieben:$versandkosten =
if ($land == "Deutschland" ... dann nehme bitte "2", ansonsten "4" ... so ähnlich geht das mit der IF-Funktion in Excel ... aber hier?
http://de.php.net/manual/de/language.co ... uctures.if
KB:knigge
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Beitrag von uwe.ha »

Danke Cheffe :D

... ich geh jetzt trotzdem mal ins Bett ... sonst finde ich kein Ende mehr :D :D :D

DANKE!
Uwe
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Beitrag von uwe.ha »

Moin,

so, weiter geht´s ;-)

Mit den verschiedenen Versandkosten und dem Datum + Uhrzeit klappt :D


Aber das mit dem Zahlenformat "will nicht" :(

Wenn ich ganz am Anfang der Seite eingebe:

Code: Alles auswählen

<?php

setlocale(LC_ALL, "de_DE", "german");
printf("%.2f", $summe);
wird mir beim Aufruf der Seite in der 1. Zeile ein "0,00" angezeigt.

Ich will aber NICHT, dass die verschiedenen Zahlen ($betrag, $summe, $versandkosten, etc.) auf der Seite angezeigt werden, sondern in der Bestätigungsmail angezeigt und entsprechend formatiert werden.

Beispiel (auszugsweise):

Code: Alles auswählen

if (isset($_POST["submit"]))
{
$betreff = "Ihre Bestellung ";
$preis = 19.50;
$betrag = $anzahl * $preis;
$summe = $betrag + $versandkosten;
$mwst = $summe * 0.1379;
$text = "Bitte zahlen Sie $betrag + $versandkosten = $summe"
Wie bekomme ich die Zahlen im Mailtext formatiert?


Nochwas ;-) :
Nach Absenden der Bestellung kommt ein:

Code: Alles auswählen

echo "Vielen Dank für ..."
Kann, bzw. wie bekomme ich dieses Meldung - anstatt auf die Seite selbst - in ein pop-up-Fenster?

DANKE!
Uwe
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

uwe.hanss hat geschrieben:Wenn ich ganz am Anfang der Seite eingebe:

Code: Alles auswählen

<?php

setlocale(LC_ALL, "de_DE", "german");
printf("%.2f", $summe);
wird mir beim Aufruf der Seite in der 1. Zeile ein "0,00" angezeigt.

Ich will aber NICHT, dass die verschiedenen Zahlen ($betrag, $summe, $versandkosten, etc.) auf der Seite angezeigt werden, sondern in der Bestätigungsmail angezeigt und entsprechend formatiert werden.
Das sind zwei Teile. Der [php:setlocale] Aufruf stellt die Sprache um und [php:printf] sorgt für die Ausgabe (steht auch so in der Doku). Wenn du das ganze nicht direkt ausgeben willst, nimm [php:sprintf].
KB:knigge
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Beitrag von uwe.ha »

Hi Pyramide,

sorry, et will nit :(

Hier mal der Quelltext (auszugsweise):

Code: Alles auswählen

<?php

setlocale(LC_ALL, "de_DE", "german");
sprintf("%.2f", $betrag); 

if (isset($_POST["submit"]))
{
$betreff = "Ihre Bestellung";
$preis = 19.50;
$betrag = $anzahl * $preis;


$text_kunde = "Vielen Dank für Ihre Bestellung von $anzahl Artikel

Zu zahlen:
$anzahl x $preis EUR = $betrag EUR
";


while(list($name,$value)=each($_POST))
{$text.="$name: $value\n\n";}


if(empty ($_POST["anzahl"]) OR empty ($_POST["vorname"]) OR empty($_POST["nachname"]) OR empty ($_POST["strasse"]) OR empty ($_POST["plz"]) OR empty ($_POST["ort"]) OR empty ($_POST["email"]))
{echo "<h1>Bitte füllen Sie alle Felder aus!</h1><br><a href='javascript:history.back()'>zur&uuml;ck zu Ihren Eingaben<br></a>";}
else
{
mail(
$email,
$betreff,
$text_kunde,
);
}
?>
:(
Uwe
Antworten

Zurück zu „Coding & Technik“