Kundenlogout per Formular

Das folgende Beispiel zeigt Ihnen, wie Sie einen Kundenlogout über ein Formular realisieren.

Dabei werden im Gegensatz zu einem Standard-Kundenlogout-Link (<we:sessionLogout>) alle per GET und POST an die aktuelle Seite übergebenen Parameter an die Folgeseite (an die das Formular gesendet wird) weitergegeben. Per GET übergebene Parameter werden wieder an den URL angehängt, für jeden per POST übergebenen Parameter wird automatisch ein verstecktes Formularfeld (<input type="hidden"/>) mit dem jeweiligen Wert dem Formular hinzugefügt.

webEdition-Seiten, die auf dieser Vorlage basieren, müssen dynamisch abgespeichert werden.

Quellcode

<we:sessionStart />
<!-- Der we:sessionStart-Tag muss ganz am Anfang der Vorlage in der ersten Zeile stehen! -->

<!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<we:title></we:title>
<we:description/>
<we:keywords/>
<we:charset defined="UTF-8">UTF-8</we:charset>
<we:ifNotEditmode>
<style type="text/css">
html {
font-family: arial;
font-size: .8em;
color: #000000;
}

a {
color: #000000;
}
</style>
</we:ifNotEditmode>
</head>
<body>
<!--
Umschaltung zwischen den Ansichten für
eingeloggte und nicht eingeloggte Kunden
-->
<we:registerSwitch/>

<!-- Ansicht für eingeloggte Kunden -->
<we:ifRegisteredUser>
<p>
Hallo <we:sessionField name="Username" type="print"/>.
</p>

<!-- Standard-Kundenlogout-Link -->
<p>
<we:sessionLogout id="self">Logout</we:sessionLogout>
</p>

<!-- Kundenlogout-Formular -->
<!--
Im Gegensatz zum Standard-Kundenlogout werden bei dem Formular auch alle eventuell
vorliegenden POST- und GET-Parameter auf die nächste Seite weitergegeben.
-->
<?php
// URL der Zielseite in eine PHP-Variable speichern
// Alle per GET an die aktuelle Seite übergebenen Parameter werden an die nächste Seite weitergegeben.
$str_action = (string) 'index.php'.(!empty($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : '');
?>
<we:form action="\$str_action" method="post">
<!-- Parameter für den Logout des Kunden -->
<input type="hidden" name="we_webUser_logout" value="1" />
<?php
// Alle per POST an die aktuelle Seite übergebenen Parameter werden an die nächste Seite weitergegeben.
foreach ($_POST as $str_key => $str_value)
{
if (!is_array($str_value))
{
echo '<input type="hidden" name="'.$str_key.'" value="'.htmlentities($str_value).'" />';
}
}
?>
<p>
<input type="submit" value="Logout" />
</p>
</we:form>

</we:ifRegisteredUser>

<!-- Ansicht für nicht eingeloggte Kunden -->
<we:ifNotRegisteredUser>
<p>
Sie sind nicht eingeloggt.<br />
Bitte loggen Sie sich ein!
</p>

<we:ifLoginFailed>
<p>
<strong>
Ihr Loginversuch ist fehlgeschlagen.<br/>
</strong>
Bitte versuchen Sie es erneut.
</p>
</we:ifLoginFailed>

<!-- Loginformular -->
<we:form id="self" method="post">
<p>
<label for="username">Benutzername:</label>
<we:sessionField name="Username" type="textinput" id="username" value="maxmustermann" />
</p>
<p>
<label for="password">Kennwort:</label>
<we:sessionField name="Password" type="password" id="password" value="maxmustermann" />
</p>
<p>
<input type="submit" value="Login" />
</p>
</we:form>
</we:ifNotRegisteredUser>

</body>
</html>
powered by webEdition CMS