Acroform mit PHP abfangen und weiter senden.

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Acroform mit PHP abfangen und weiter senden.

Beitrag von NicTheQuick »

Hallo Leute,

ich hoffe hier kennt sich jemand ein bisschen mit dem Adobe Acrobat Pro aus. Damit kann man PDF-Forms erstellen, d.h. jemand lädt eine solche PDF herunter, füllt sie aus klickt dann am Ende auf einen "Submit"-Button. Beim Erstellen der PDF-Form (Acroform) kann man auch festlegen, was passieren soll, wenn man den "Submit"-Button klickt. In unserem Fall soll einfach das komplett ausgefüllte PDF an ein PHP-Skript gesendet werden. Dieses PHP-Skript wiederum schickt dann das PDF an eine fest einprogrammierte E-Mail-Adresse.
Das hab ich mir bisher auch schon mit viel Herumgesuche zusammen gebastelt und es funktioniert auch schon soweit bis auf eine Kleinigkeit. Und zwar weiß ich nicht, was das PHP-Skript dem Adobe Reader zurück senden soll, wenn man dort auf "Submit" geklickt hat. Bisher kommt immer eine Fehlermeldung nach dem Abschicken, aber trotzdem wurde das PHP-Skript ja ausgeführt und die Mail korrekt versandt.

Um jetzt mal etwas konkreter zu werden, seht ihr hier die Fehlermeldung vom Adobe Reader:

Bild

Und hier ist der anonymisierte PHP-Code:

Code: Alles auswählen

<?php
$date = (date("d.m.Y"));
$time = (date("H:i:s T"));
$tmpname = (date("d.m.Y-His"));
$form_name = "Anfrage";

$message = '
This is a multi-part message in MIME format.

------=_NextPart_000_0007_01C37EC6.3F062EA0
Content-Type: text/plain;
    charset="utf-8"
Content-Transfer-Encoding: 7bit

Eine Anfrage wurde über das PDF-Formular von www.domain.de um ' . $time . ' Uhr am ' . $date.' abgegeben.

(Anhang: PDF-' . $tmpname . ')

------=_NextPart_000_0007_01C37EC6.3F062EA0
Content-Type: application/pdf;
    name="PDF-' . $tmpname . '.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
    filename="PDF-' . $tmpname . '.pdf"

' . chunk_split(base64_encode($HTTP_RAW_POST_DATA)) . '

------=_NextPart_000_0007_01C37EC6.3F062EA0--

';

$recip = "webmaster@domain.de";
$subject = "Anfrage vom " . $date;
$headers = "From: domain.de <anfrage@domain.de>\n";
$headers .= "Return-Path: <xxxxx@xxxxx.com>\n";
//use the following line for bcc:
//$headers .= "bcc: [email]xxxxx@xxxxx.com[/email]\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"----=_NextPart_000_0007_01C37EC6.3F062EA0\"\n";

$status = mail($recip, $subject, $message, $headers);

Header("Location: http://www.domain.de");
?>
Anscheinend gibt es einfach keine gescheiten Informationen darüber wie das Protokoll für das Senden eines kompletten PDFs zwischen Adobe Reader und Server aussieht. Es gibt allerdings kostenpflichtige Server, die das natürlich alles schon können, aber das ist für unseren Zweck zu übertrieben. Für uns soll dieses kleine PHP-Skript ausreichen. Es muss nur noch das richtige an den Reader zurück senden.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Acroform mit PHP abfangen und weiter senden.

Beitrag von NicTheQuick »

Oha, Danke! Ich dachte ich hätte schon alle Artikel bei stackoverflow durch. :-)
Das werde ich mir später mal anschauen, wenn ich wieder am Laptop bin.
Antworten