Hallo zusammen,
vielleicht kann mir jemand weiterhelfen zu einem sehr speziellen Anliegen.
Für einen Kunden haben wir ein Formular erstellt, bei dem Nutzer ein Video hochladen können und noch weitere Felder ausfüllen können.
Nach Absenden wird das Video hochgeladen und im Webspace gespeichert und per sendMail-Tag eine Mail mit Download-Link an den Websitebetreiber geschickt.
Nun möchte unser Kunde, dass vor dem Speichern der eingegeben Daten sowie des hochgelandenen Videos ein Double-opt-in durchlaufen wird.
Eine erste Idee wäre, dass der Nutzer sich zunächst registrieren muss (Kundenverwaltung mit Double-opt-in sollte ja gehen?) und dann nach Bestätigung der Mail sein Video hochladen kann.
Hat schonmal jemand etwas in dieser Richtung gemacht und könnte helfen?
Vielen Dank vorab!
Double-opt-in mit sendMail und Datei-Upload
-
- Member
- Beiträge: 38
- Registriert: Mi 27. Jun 2018, 16:53
-
- webEdition Partner
- Beiträge: 1825
- Registriert: Di 7. Mär 2006, 16:50
- Wohnort: Wien
- Kontaktdaten:
Re: Double-opt-in mit sendMail und Datei-Upload
Hallo,
Wenn du die Daten nicht zwingend in der Kundenverwaltung brauchst, stelle mir das in der Art vor:
HTH,
Sascha
PS: Nachdem der Upload großer Dateien durchaus problematisch sein kein, würde ich hier unbedingt Lösungen empfehlen, die den Upload schon im Formular erlauben (z.B. Uploadify).
Wenn du die Daten nicht zwingend in der Kundenverwaltung brauchst, stelle mir das in der Art vor:
- Formular bei dem die E-Mailadresse anzugeben ist.
- Mail mit LInk zum Upload-Formular wird per E-Mail geschickt. Im Idealfall mit einem Token, das eine bestimmte Gültigkeitsdauer hat. Damit wird zumindest gewährleistet, dass die angegebene E-Mailadresse existiert.
- Das Upload-Formular erlaubt die Eingabe ev. notwendiger weiterer Daten sowie den Video Upload.
HTH,
Sascha
PS: Nachdem der Upload großer Dateien durchaus problematisch sein kein, würde ich hier unbedingt Lösungen empfehlen, die den Upload schon im Formular erlauben (z.B. Uploadify).
-
- Member
- Beiträge: 38
- Registriert: Mi 27. Jun 2018, 16:53
Re: Double-opt-in mit sendMail und Datei-Upload
Hallo Sascha,
danke dir für deine Rückmeldung und den Input.
Klingt sehr gut, auch wenn wir bzgl. dem Token wohl noch etwas überlegen müssten, haben wir bislang so individuell noch nicht umgesetzt.
Unser Kunde wollte es möglichst einfach für den Nutzer haben, aber um eine zweistufige Lösung kommt man wohl nicht drum herum. Mal schauen, was er zu dem Vorschlag sagt.
Aktuell wird der Upload bim Absenden gestartet. Ursprünglich war die Anforderung auch ein ganz kleines Formular, schnell umgesetzt und ohne Ansprüche. Das mit dem DOI kam auch danach und wenn das nun gemacht wird, dann würden wir wohl auch gleich die professionelle Lösung mit Upload innerhalb des Formulars machen.
Danke dir und viele Grüße
danke dir für deine Rückmeldung und den Input.
Klingt sehr gut, auch wenn wir bzgl. dem Token wohl noch etwas überlegen müssten, haben wir bislang so individuell noch nicht umgesetzt.
Unser Kunde wollte es möglichst einfach für den Nutzer haben, aber um eine zweistufige Lösung kommt man wohl nicht drum herum. Mal schauen, was er zu dem Vorschlag sagt.
Aktuell wird der Upload bim Absenden gestartet. Ursprünglich war die Anforderung auch ein ganz kleines Formular, schnell umgesetzt und ohne Ansprüche. Das mit dem DOI kam auch danach und wenn das nun gemacht wird, dann würden wir wohl auch gleich die professionelle Lösung mit Upload innerhalb des Formulars machen.
Danke dir und viele Grüße
-
- Member
- Beiträge: 38
- Registriert: Mi 27. Jun 2018, 16:53
Re: Double-opt-in mit sendMail und Datei-Upload
Hallo zusammen,
hier eine mögliche Lösung, falls jemand vor dem gleichen Problem steht und Input braucht.
Das mit dem Token ist vielleicht etwas ungewöhnlich gelöst, sollte aber gut funktionieren
1. Formular für DOI-Verfahren und Success-Meldung (mit GET-Parameter, siehe Punkt 2) auf Website
2. Mail (Template für Seite ID 99, für Action von DOI-Formular)
3. Mail (Template für Seite ID 999, für sendMail aus Punkt 2)
4. Eigentliches Upload-Formular
5. Löschen der Tokens vom Webspace, die älter als 24 Stunden sind, mit Cronjob (z.B. jede Stunde ausführen)
hier eine mögliche Lösung, falls jemand vor dem gleichen Problem steht und Input braucht.
Das mit dem Token ist vielleicht etwas ungewöhnlich gelöst, sollte aber gut funktionieren
1. Formular für DOI-Verfahren und Success-Meldung (mit GET-Parameter, siehe Punkt 2) auf Website
Code: Alles auswählen
<?php if(!isset($_GET['success'])){ ?>
<form action="<we:url id="99"/>" method="post">
<input type="email" name="email" required>
<input type="text" name="Name" required>
<input type="checkbox" name="Datenschutz" required>
<input type="hidden" value="<we:url id="self"/>" name="Seite">
<input type="submit" value="Absenden"/>
</form>
<?php }else{ ?>
Hinweis: DOI-Formular erfolgreich verschickt. Weitere Anweisungen stehen in der Mail.
<?php } ?>
2. Mail (Template für Seite ID 99, für Action von DOI-Formular)
Code: Alles auswählen
<?php
$token = bin2hex(random_bytes(16)); // Random Zeichenfolge mit 32 Stellen als Dateinamen
$file = fopen('pfad/zum/token/'.$token, "w"); // Datei in Pfad speichern
fclose($file); // Datei schließen
$url = "https://www.domain.de".$_POST['Seite']."&mail=".$_POST['email']."&name=".$_POST['Name']."&token=".$token;
$content = "<p>Hallo ".$_POST['Name'].",</p><p>vielen Dank für Ihr Interesse an XY".<br>
Bitte bestätigen Sie innerhalb von 24 Stunden über folgenden Link Ihre E-Mail-Adresse. Mit diesem Link gelangen Sie auch direkt zum Upload-Formular für das Video.</p>
<p><a href='".$url."'>".$url."</a></p>
<hr><p>Daten vom Impressum</p>";
$_SESSION['form']['content'] = $content;
$subject = 'Bestätigung Ihrer E-Mail-Adresse für XY';
$recipient = $_POST['email'];
?>
<we:sendMail id="999" mimetype="text/html" subject="$subject" from="mail@domain.de" recipient="$recipient" useformmailblock="true" useformmaillog="true"/>
<?php
header("Location: ".$_POST['Seite']."?success");
exit();
}
?>
3. Mail (Template für Seite ID 999, für sendMail aus Punkt 2)
Code: Alles auswählen
<?php echo $_SESSION['form']['content']; // Hier wird nur der Mail-Inhalt zusammengefasst und dann per Dokument versendet ?>
4. Eigentliches Upload-Formular
Code: Alles auswählen
<?php
$token = 'https://www.domain.de/pfad/zum/token/'.$_GET['token']; // GET-Token auf Webspace suchen
$check = fopen($token, 'r'); // Prüfen, ob Token gelesen werden kann
if($check && isset($_GET['mail'])){ // Wenn Token passt und Mail in GET gesetzt ist
?>
<form action="<we:url id="9999"/>" method="post" enctype="multipart/form-data">
Hier das eigentliches Upload-Formular mit weitere Angaben
</form>
<?php }else{ ?>
Hinweis: Token abgelaufen oder hier direkt nochmal das DOI-Formular anzeigen lassen
<?php } ?>
5. Löschen der Tokens vom Webspace, die älter als 24 Stunden sind, mit Cronjob (z.B. jede Stunde ausführen)
Code: Alles auswählen
find /absoluter/pfad/zum/token -type f -mmin +1440 -delete
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 42 Gäste