Erstellung einer Mehrfachanmeldung und -Nachprofilierungsseite

Aus Melin DokuWiki

Wechseln zu: Navigation, Suche

In diesem Tutorial wird auf einen Spezialfall einer Anmeldeseite eingegangen: eine Anmeldeseite auf der man sich für mehrere Newsletter auf einmal registrieren kann. Zusätzlich wird hierfür eine Nachprofilierungsseite erstellt auf der sich ein Anwender um- oder auch abmelden kann.

Allgemeine Informationen zu An- und Abmeldeseiten finden sich in den Kapiteln zu [An_Abmeldeseiten|An- und Abmeldungen]]

Grundsätzlich gibt es in Melin zwei unterschiedliche Wege eine Anmeldeseite zu realisieren:

  • Das "Kickback"-Verfahren: hierbei wird eine Anmeldeseite auf einem beliebigen Server generiert, das Absendformular zeigt auf den Melin-Server. Melin verarbeitet die Daten, und leitet anschließend den Benutzer wieder auf eine Seite zurück (Landing-Page). Die Landing-Page wird als versteckter Parameter in der Seite mitgegeben.
  • Anmeldeseite über den Anmeldeseiten-Wizard: hier werden alle für den Anmeldeprozess erforderlichen Daten in Melin erfasst und anschließend ein Paket mit allen Daten freigeschaltet.

Inhaltsverzeichnis

[bearbeiten] Vorbereitung für die Anmeldeseite

In einem ersten Schritt benötigt man diverse HTML-Seiten die für den Benutzer dargestellt werden solllen. Diese Seiten müssen als vollständige HTML-Seiten vorliegen.

  • Anmeldeseite
  • Fehlerseite "ungültige Email"
  • Fehlerseite "bereits angemeldet"

Zusätzlich wird ein PHP-fähiger Webserver benötigt auf den das Paket freigeschaltet wird.

Die Anmeldeseite kann beispielsweise wie folgt aussehen:

Beispielseite für Anmeldung
Beispielseite für Anmeldung



Als weitere Vorbereitung kann es erforderlich sein, den Datenbankzugriff auf die MMDB im Verwaltungsscript (melin_usv.php) anzupassen. Das Verwaltungsscript liegt unter htdocs/home/samples/melinusv_php/melin_usv.php. Zwei Einstellungen darin sind relevant:

Der erste Eintrag ist nur relevant wenn die Anmeldungen auf einem separaten Server erfolgen und per FTP zurückübertragen werden sollen. In diesem Fall müssen hier die Zugangsdaten des Melin-Servers eingetragen werden.

       $phpftp_host = "localhost";                                         // Put server name or IP here
       $phpftp_user = "serverlogin";                                      // FTP user
       $phpftp_pass = "serverpasswort";
       $phpftp_rdir = "/home/melin/msite/usv/web";           // remote dir (MUST EXIST)

Das Verzeichnis "msite/usv/web" ist das Verzeichnis in dem der Standard-An/Abmeldeworkflow von Melin nach neuen An/Abmeldungen sucht.

Der zweite Konfigurationsabschnitt bezeichnet die Zugangsdaten zur MMDB:

       $MMDB_SERVER       = "127.0.0.1";   // Datenbankserver
       $MMDB_LOGIN         = "melin";
       $MMDB_PASSWORD  = "password";
       $MMDB_DB               = "melin_system";

Die weiteren Parameter werden automatisch durch Melin angepasst und sollten belassen werden.

[bearbeiten] Anlegen der Anmeldeseite

Um nun die Anmeldeeseite zu generieren ruft man das Menü AN/Abmeldeseiten vom Hauptmenü aus auf und wählt "Neue Seite hinzu".

Das Fomular teilt sich in mehrere Abschnitte:

[bearbeiten] GENERAL SETTINGS

Der erste Abschnitt definiert Name und Typ der Seite. In diesem Beispiel arbeiten wir mit folgenden Werten:

  • BEZEICHNER: Mehrfach "Ich will alles"
  • ID: Wird automatisch vergeben
  • TYP: Anmeldeseite
  • GENERATOR: PHP
  • NEWSLETTER_ID: wird leer gelassen, da die Anmeldung für mehrere Newsletter gilt
  • MANDANT: Superuser
  • AFFILIATE: jiwa (Affiliate wird beim Nutzer hinterlegt und bezeichnet die Quelle der Anmeldung, hier kann ein sinnvolles Wort hinterlegt werden, wir wählen "jiwa" - ja ich will alles.
  • "Affiliate kann durch Seitenaufruf überschrieben werden." wird angeklickt, auf diese Weise kann man bei externen Links mit "?affiliate=google" neue Parameter übergeben um eine Anmeldung mit einer Promo-Aktion zu verbinden.
  • LIVECHECK: wird auch angeklickt
  • FTP BACKLINK: wird nicht angeklickt, die PHP-Seite soll auf demselben Server bleiben so daß eine FTP-Rückübertragung nicht erforderlich ist.

Es ergibt sich das folgende Bild:


Formular oberer Abschnitt
Formular oberer Abschnitt


[bearbeiten] CONTENT

Im Abschnitt "CONTENT" wird der HTML-Code der Anmeldeseite hinterlegt. Bei eineer Mehrfachanmeldung findet man - wie oben gezeigt - eine Reihe von Checkboxen für die verschiedenen Newsletter. Damit Melin diese einem Verteiler zuordnen kann, muß die NEWSLETTER_ID eincodiert werden.

Newsletter-Liste mit NEWSLETTER_ID
Newsletter-Liste mit NEWSLETTER_ID


Aus den Eingabefeldern im HTML-Code wird damit zum Beispiel:

E-Mail: <input type="text" name="EMAIL" value=""> 
Cards: <input type="checkbox" name="NEWSLETTER_ID5" value="5">
Office: <input type="checkbox" name="NEWSLETTER_ID6" value="6">
Aktuell: <input type="checkbox" name="NEWSLETTER_ID7" value="7">

Wichtig für die Erkennung durch das AddSubscriber-PlugIn ist, daß der FeldNAME mit "NEWSLETTER_ID" beginnt, und der Wert die ID des jeweiligen Newsletter-Verteilers ist.

Die weiteren Felder des Formulars sind wie üblich EMAIL, LAST_NAME, FIRST_NAME, ANREDE, AD_PERMISSION etc...

[bearbeiten] Fehlerfall

Eine Besonderheit sind die Felder für die Fehlerfälle: Adresse bereits bekannt oder Fehler im Formular.

Auch hier wird HTML-Code eingefüllt, jedoch müsssen zusätzlich die Formularwerte mit eingesetzt werden:

E-Mail: <input type="text" name="EMAIL" value="%EMAIL%"> 
Cards: <input type="checkbox" name="NEWSLETTER_ID5" value="5" %NEWSLETTER_ID5_CHECKED%>
Office: <input type="checkbox" name="NEWSLETTER_ID6" value="6" %NEWSLETTER_ID6_CHECKED%>
Aktuell: <input type="checkbox" name="NEWSLETTER_ID7" value="7" %NEWSLETTER_ID7_CHECKED%>

Die Formularwerte können mit %KEY% verwendet werden. Bei Checkboxen interessiert nur, ob ein Häkchen gesetzt wurde, hier kann man mit %KEY_CHECKED% den String "checked" erhalten um eine Checkbox wieder anzuhaken. Für Select-Boxen steht %KEY_SELECTED% zur verfügung, um die gewählte Option eines DropDown-Felder wieder zu aktivieren. Für Array-Felder (Multiselect) bei dem es mehrere Werte gibt die alle denselben Key haben kann man %KEY_SELECTED_VALUE% verwenden.

Zum Ende der CONTENT-Sektion kann noch ein oder mehere Felder angegeben werden die vorhanden sein müssen wenn das Formular abgeschickt wird. Mehrere Felder werden duch Kommata getrennt. Die Idee hinter diesem Feld ist, daß JavaScript zur Sicherung der Formulare meistens ausreichend ist; um ganz sicher zu gehen, daß ein (rechtlich) notwendiges Feld ausgefüllt ist macht es Sinn dies serverseitig abzuprüfen.

[bearbeiten] Nachprofilierung

Die Nachprofilierungsseite funktioniert ähnlich wie eine Anmeldeseite, jedoch muss diese Seite mit Parametern aufgerufen werden, z.B:

http://www.vr-mailservice.de/popup/infobrief/tune/melin_usv.php?reedit=1&SID=1000170&pw=hsbcg

Diesen Link verschickt man der Einfachheit halber mit dem Newsletter, dort lässt er sich leicht mit folgender Zeile generieren:

http://www.vr-mailservice.de/popup/infobrief/tune/melin_usv.php?reedit=1&SID=$UD[SYSTEM_CUSTOMER_ID]&pw=$UD[PASSWORD]

Das Passwort muss der User nicht wissen, da es im Link der Email enthalten ist, es öffnet sich also direkt die Nachprofilierungsseite. Jeder Benutzer erhält in Melin bei der Anmeldung automatisch ein fünfstelliges Passwort.

In der Nachprofilierungsseite müssen natürlich auch die Werte des Nutzers eingefüllt werden. Hierbei stehen wieder die bekannten Variablen %EMAIL%, %LAST_NAME%, etc. zur Vefügung. Um die Checkboxen richtig zu setzen verwendet man zum Beispiel wenn man den Newsletter 27 darstellen will %NEWSLETTER_ID27_CHECKED% in der Checkbox.

Generell gilt: Die Formularwerte können mit %KEY% verwendet werden. Bei Checkboxen interessiert nur, ob ein Häkchen gesetzt wurde. Hier kann man mit %KEY_CHECKED% den String "checked" erhalten um eine Checkbox wieder anzuhaken. Für Select-Boxen steht %KEY_SELECTED% zur Verfügung, um die gewählte Option eines DropDown-Feldes wieder zu aktivieren. Für Array-Felder (Multiselect) bei denen es mehrere Werte gibt die alle denselben Key haben kann man %KEY_SELECTED_VALUE% verwenden.

[bearbeiten] Der Workflow

Damit die Daten auch bearbeitet werden können, muss der Workflow "An/Abmeldungen Universal" aktiviert sein. Dieser überwacht das Verzeichnis SITE-DIR/msite/usv/web auf dem Server. Dort werden vom Script melin_usv.php die Anmelde-Daten abgelegt.

Die XML-Datei muss mindestens die Felder NEWSLETTER_ID und EMAIL enthalten, damit sie verarbeitet werden kann.

[bearbeiten] Löschen von Feldwerten

Eine Aufgabe der Nachprofilierung kann auch sein, daß Feldwerte gelöscht werden müssen. Da diese im abgeschickten Formular nicht mehr enthalten sind, muß durch eine versteckte Variable mitgeteilt werden daß dieses Feld auch gelöscht werden kann. Dazu schreibt man

<INPUT NAME="REMOVE_LAST_NAME" VALUE="1" TYPE="HIDDEN">

um Beispielsweise das Feld LAST_NAME zu löschen.