In Abhängigkeit von der gewünschten Funktion muß sd:start eine geeignete Anzahl von sd:input-identifier -Elementen mit geeignetem Typ enthalten. Die sinnvollen Werte ergeben sich aus der folgenden Tabelle:
Typ | Zahl der sd:input-identifier-Elemente | sd:input-type-Werte |
---|---|---|
new-anonym | 1 | |
new-nick | 2 | mail + nick |
new-pwd | 1 | both |
change-pwd | 3 | pwd + pwd_i + pwd_ii |
change-mail | 2 | mail + pwd |
login | 2 | both + pwd |
tell-a-friend | 3 | recipient + own_name + own_mail |
newsletter-subscribe | 1 | |
newsletter-confirm | 1 | identifier |
newsletter-unsubscribe | 1 | identifier |
Fehlende Elemente verhindern nicht das Erstellen der Ausgabeseite, diese Logik läßt sich nicht mit XmlSchema-Definitionen erzwingen. Solche Fehler bei der Erstellung der Ausgabeseite führen dazu, daß die vom Benutzer eingegebenen Daten nicht ausgewertet werden, da die korrekten Namen der Formularelemente im POST-Datenstrom fehlen.
Es ist nicht möglich, ein Loginformular nur für einen Nutzertyp zu erstellen bzw. für andere Nutzertypen zu sperren. Falls Seiten nur einem gewissen Nutzerkreis zugänglich sein sollen, so müssen die Seiten selbst gesperrt werden.
'tell-a-friend' ermöglicht die Erstellung einer Ausgabeseite, die drei Eingabefelder (Mail des Empfängers, eigene Mail, eigener Name) enthält. Zusätzlich muß das sd:url-Attribut angegeben werden. Wird die Seite anschließend mit
Seitenname.html?url=http://www.example.com/dateiname.htmlaufgerufen und ist das sd:url-Attribut mit dem Wert 'http://www.example.com/' belegt, dann wird eine Mail mit dem gewünschten Ziel
http://www.example.com/dateiname.htmlan den Empfänger versandt.
new-anonym new-nick new-pwd change-pwd change-mail login tell-a-friend newsletter-subscribe newsletter-confirm newsletter-unsubscribeDie beiden ersten Werte ermöglichen die Neuregistrierung eines anonymen Nutzers (nur Mail) oder eines neuen Nutzers mit Mail und Nick-Namen. Der dritte Wert (new-pwd) sendet an die einzugebende Mailadresse bzw. an die dem Nick zugeordnete Mailadresse ein neues Passwort und stellt eine 'Forgot-Password' - Funktionalität bereit. 'change-pwd' interpretiert die Eingaben als Aufforderung, das Passwort zu ändern, 'login' interpretiert die Daten als Login. 'tell-a-friend' ermöglicht das Versenden einer Mail, welche eine per Url übergebene Adresse an den gewünschten Empfänger verschickt.
Die drei Newsletter-Werte stellen die Elemente für die Selbstanmeldung eines Nutzers, den Eintrag des Bestätigungsschlüssels als Double-Opt-In-Verfahren und eine Möglichkeit zur Abmeldung bereit. Für diese Werte muß zusätzlich das sd:newsletter-table - Attribut angegeben werden, um den Namen der Tabelle vom Sondertyp Newsletter-Mail festzulegen.
Wenn der Wert 'newsletter-subscribe' gewählt ist, also eine Maske zum Eintragen der Mailadresse ausgegeben wird, muß zusätzlich ein sd:mail -Element erstellt und das sd:mail-name -Attribut mit dessen Namen belegt werden. Diese Mail wird nach dem erfolgreichen Speichern der Mailadresse dem Nutzer zugesandt und sollte das Kürzel '{4}' sowie einen Link auf eine Seite mit der 'newsletter-confirm' - Funktionalität enthalten. Das Kürzel '{4}' kennzeichnet die vierte Spalte und wird mit dem Bestätigungsschlüssel gefüllt. Erst die Bestätigung mit diesem Schlüssel (Double Opt-In)schaltet die Mail für den Newsletter frei und vermeidet damit den Mißbrauch fremder Mailadressen.
<sd:system-interaction sd:name="login" sd:with-error="1" sd:interaction-type="new-nick"> <sd:start> <table> <tr> <td>Ihre Mailadresse</td> <td> <sd:input-identifier size="60px" sd:input-type="mail" /> </td> </tr> <tr> <td>Ihr Nickname</td> <td> <sd:input-identifier size="60px" sd:input-type="nick" /> </td> </tr> </table> <sd:button sd:name="myButton"> <sd:label-standard>Absenden</sd:label-standard> </sd:button> <p /> <sd:err-message /> </sd:start> <sd:success> Ihre Anmeldung war erfolgreich. Ihr Passwort wird Ihnen in Kürze per Mail zugesandt. </sd:success> </sd:system-interaction>
Hier wird zusätzlich ein sd:param -Element mit Namen 'url' deklariert. Da die Url dieser Seite um den Ausdruck
?url=Zu empfehlende Seiteergänzt wird, wird der Wert dieser Pfadangabe auf das sd:param-Element abgebildet und kann mit dem sd:value -Element ausgegeben und mit dem sd:attribute -Element als Attributwert eines gewöhnlichen a-Elements eingesetzt werden. Als Ergebnis entsteht ein gewöhnlicher Link, so daß der Nutzer das Versenden abbrechen und zurück zur Ausgangsseite wechseln kann.
<sd:param sd:name="url" /> <div> <div style="width:200px;float:left;height:500px; background-color:#003C78;">   </div> <div style="float:left;left:250px;margin:0; padding:18px;"> <p /> <sd:system-interaction sd:with-error="1" sd:interaction-type="tell-a-friend" sd:name="tell-this" sd:url="http://www.sql-und-xml.de/"> <sd:start> <h3>Empfehlen Sie diese Url weiter</h3> <p /> <table> <tr> <td style="width:250px">Url:</td> <td style="width:450px"> <a> <sd:attribute sd:attribute-name="href"> <sd:value sd:param-name="url" /> </sd:attribute> <sd:value sd:param-name="url" /> </a> </td> </tr> <tr> <td><br /></td> <td><br /></td> </tr> <tr> <td>Mail des Empfängers:</td> <td> <sd:input-identifier sd:input-type="recipient" /> </td> </tr> <tr> <td>Ihre Mail:</td> <td> <sd:input-identifier sd:input-type="own_mail" /> </td> </tr> <tr> <td>Ihr Name:</td> <td> <sd:input-identifier sd:input-type="own_name" /> </td> </tr> </table> <p /> <sd:button> <sd:label-standard>Empfehlung absenden</sd:label-standard> </sd:button> <p /> <span class="sd-error"><sd:err-message /></span> </sd:start> <sd:success> <sd:err-message /> </sd:success> </sd:system-interaction> </div> </div>Man sieht: Das meiste sind Html-Elemente für die Anordnung und Formatierung, dazwischen eingestreut die sd-Elemente für die Ausgabe.