Upload bei Bestellvorgang
Benjamin Kühn
- php
Hi,
für meine Seite möchte ich eine Online-Bestellung für Schreibarbeiten anbieten.
Soweit, so gut.
Der Kunde soll nun die Möglichkeit haben, entsprechende Daten (z.B. Texte, die formatiert werden sollen, Scans, usw.) "anzuhängen".
Dafür habe ich 3 file-inputs gebaut. Jedoch weiß ich nicht wirklich, wie ich das ganze dann realisieren soll. Kann ich mehrere Dateien auf den Server ablegen und diese dann als Anlage per eMail (so soll die Bestellung eigentlich am Ende an mich übergeben werden) mitverschicken?
Würde mich über ein paar Denkanstöße freuen.
Ansehen kann man sich das ganze (bis hin zu diesen file-inputs) hier: http://www.bens-homepage.de/typeworx/
Würde mich auch sehr über Meinungen und Kritik das Design betreffend freuen. :)
Viele Grüße
Ben
Hallo Ben,
Würde mich über ein paar Denkanstöße freuen.
Erst einmal: Validiere, was das Zeug hält, ich mußte gar nichts eingeben, um in Deinem Formular weiterzukommen. Außerdem wäre es vielleicht sinnvoll, einige Formulare (z.B. Name und Adressdaten) zusammenzufassen, denn die Anzahl der Schritte, um bei Dir zum Ziel zu kommen, ist enorm...
Zweitens: Warum liest Du die hochgeladenen Dateien nicht einfach ein ($contents = implode ('', file ($_FILES[$name]['tmp_name']));) und kodierst sie dann als Email-Anhang? (Entweder über PEAR::Mail_Mime oder manuell)
Christian
Hi Christian,
Erst einmal: Validiere, was das Zeug hält, ich mußte gar nichts eingeben, um in Deinem Formular weiterzukommen. Außerdem wäre es vielleicht sinnvoll, einige Formulare (z.B. Name und Adressdaten) zusammenzufassen, denn die Anzahl der Schritte, um bei Dir zum Ziel zu kommen, ist enorm...
Natürlich funktionieren die ganzen Überprüfungen noch nicht. Nur bei dem ersten Schritt habe ich bislang eine Prüfung eingestellt (werde es wohl noch auf eine serverseitige Prüfung umstellen). Trotzdem danke für den Hinweis. ;-) Über die Zusammenlegung habe ich mir auch schon Gedanken gemacht. Werde wohl einige Dinge wirklich in einen Schritt zusammenfassen.
Zweitens: Warum liest Du die hochgeladenen Dateien nicht einfach ein ($contents = implode ('', file ($_FILES[$name]['tmp_name']));) und kodierst sie dann als Email-Anhang? (Entweder über PEAR::Mail_Mime oder manuell)
Weil ich nicht wusste, dass das so einfach möglich ist. ;-) Vielen Dank für den Tipp. Werde es dann einmal so probieren.
Vielen Dank und viele Grüße
Ben
Hallo Ben,
Weil ich nicht wusste, dass das so einfach möglich ist. ;-)
Beachte aber, dass file() erst ab PHP 4.3 binary safe ist, daher im Zweifelsfall ein fopen, fread (..., filesize()) ,fclose nehmen.
Christian
Hi Christian,
bin gerade nicht sicher, welche Version auf meinem Server läuft (*schäm*).
Dazu müsste ich die Dateien dann erst hochladen oder?
Viele Grüße
Ben
Hallo Ben,
bin gerade nicht sicher, welche Version auf meinem Server läuft (*schäm*).
Auf Deinem Server läuft PHP 4.2.2, das weiß doch jedes Kind... (http://aktuell.de.selfhtml.org/sonst/serverid.htm <wink/> ;-))
Dazu müsste ich die Dateien dann erst hochladen oder?
Hä?
Christian
Hi Christian,
Dazu müsste ich die Dateien dann erst hochladen oder?
Hä?
Schon gut, hat sich erledigt. ;-)
Viele Grüße
Ben
Hi!
bin gerade nicht sicher, welche Version auf meinem Server läuft (*schäm*).
<?php echo phpversion(); ?>
Dazu müsste ich die Dateien dann erst hochladen oder?
Der User läd die Dateien hoch, dann hast in $_FILES die temporären Pfade zu den hochgeladnenen Dateien, die Dateien bleiben so lange da liegen wie das Script läuft, wenn Du sie bis zum Ende nicht da weg kopierst sind sie weg.
Aber Du kannst ja die temporären Pfade direkt verwenden, indem Du diese direkt an eine Klasse wie PEAR::MAIL übergibst. Lies am besten mal:
http://pear.php.net/manual/en/core.mail.mime.php
Grüße
Andreas
Hi!
Der Kunde soll nun die Möglichkeit haben, entsprechende Daten (z.B. Texte, die formatiert werden sollen, Scans, usw.) "anzuhängen".
Dafür habe ich 3 file-inputs gebaut.
Dann kennst Du hoffentlich: http://www.dclp-faq.de/q/q-formular-mehrfach-upload.html
Jedoch weiß ich nicht wirklich, wie ich das ganze dann realisieren soll. Kann ich mehrere Dateien auf den Server ablegen und diese dann als Anlage per eMail (so soll die Bestellung eigentlich am Ende an mich übergeben werden) mitverschicken?
z.B.
Du weißt wie der Uplodad funktioniert? Dann hast Du 3 Dateien, von mir aus noch temporäre Dateien, die kannst Du dann am einfachsten mit irgendeiner bekannten Mail-KLasse verarbeiten udn an die Datei hängen, ich mache das mit der mail-KLasse von pear.php.net
Der 2., vermutlich erheblich einfachere Weg wäre, die 3 Dateien auf dem Server in einem per basic-authenitifcation gechützen Bereich abzulegen, und in die mail an Dich nur eben die Links dazu einzufügen. Wobei das mit dem anhängen auch nicht wirklch kompliziert ist.
Mußt halt sehen.
Würde mich über ein paar Denkanstöße freuen.
Guck dir ggfs obigen link zum Upload an, und gucke unter http://pear.php.net/ nach PEAR::MAIL
Ansehen kann man sich das ganze (bis hin zu diesen file-inputs) hier: http://www.bens-homepage.de/typeworx/
Würde mich auch sehr über Meinungen und Kritik das Design betreffend freuen. :)
Gefällt mir ehrlich gesagt sehr gut, vielleicht ein wenig Platz verschenkt, aber den brauchst Du ja auch nicht wirklich, nur das 10-seitige Formular ist eine Qual! Fass mal lieber ein paaar Schritte zuammen!
und das mit "nachtarbeit..." ist IMHO ziemlicher Quatsch, und wirkt sehr unprofessionell.
Grüße
Andreas
Hi Andreas,
danke für den Link und die Hinweise. Werde ich mir auf jeden Fall mal sehr genau ansehen. Vielen Dank! :-)
Freut mich, dass dir das Design ganz gut gefällt. Das Formular werde ich wirklich noch kürzen bzw. Schritte zusammenfassen. Was denkst du, wo ich Platz verschenkt habe bzw. welchen gut machen könnte?
Vielen Dank und viele Grüße
Ben