mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 13:30 Benutzername: Passwort: Auto-Login

Thema: MODX Session beenden vom 25.03.2014

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> MODX Session beenden
Autor Nachricht
OliH
Threadersteller

Dabei seit: 20.10.2005
Ort: Baden-Württemberg
Alter: 52
Geschlecht: Männlich
Verfasst Di 25.03.2014 12:34
Titel

MODX Session beenden

Antworten mit Zitat Zum Seitenanfang

Ich habe bei MODX Seiten, die mit dem Plugin PageLocker passwortgeschützt sind. Der Kunde meint jetzt nach einiger Zeit, dass er einen Logout-Button benötigen würde.
Ich schaffe es nicht, dass diese Session beendet wird.
PHP ist nicht gerade meine Stärke…

Das Plugin hat folgenden Quelltext, die die Session erzeugt.
Code:
<?php
/**
 * PLUGIN PROPERTIES
 * &tvPassword - (Required) The TV for the password (default: 'pagePassword')
 * &tvPasswordGroup - The TV for the password group (default: 'pagePasswordGroup'). Not required, but a good idea, unless you want all password-protected pages to be accessible with the same password.
 * &formResourceID - (Required) The ID of the password form page (no default set, but absolutely necessary -- the plugin will not work without it)
 *
**/
 
/* @var $modx modX */
/* @var $scriptProperties array */
 
if (!function_exists("toForm")) {
    /* Show Login form */
    function toForm($resourceId) {
        global $modx;
        unset($_SESSION['password']);  // make sure password is not still set
        if ($modx->resource->get('id') != $resourceId) { // prevent infinite loop
            $modx->sendForward($resourceId);
        }
    }
}
 
// Get the default plugin properties
$tvPassword = $modx->getOption('tvPassword',$scriptProperties,'pagePassword');
$tvPasswordGroup = $modx->getOption('tvPasswordGroup',$scriptProperties,'pagePasswordGroup');
$formResourceID = $modx->getOption('formResourceID', $scriptProperties);
 
// Get the password and password group values from the page's template variables
$resourcePW = $modx->resource->getTVValue($tvPassword);
$resourceGroup = $modx->resource->getTVValue($tvPasswordGroup);
 
/* Do nothing if page is not password-protected, or the form page is not set in the properties */
if ((empty($resourcePW)) || (empty($formResourceID))) {
    return;
}
 
 // Set additional defaults
$resourceGroup = empty($resourceGroup) ? 0 : $resourceGroup;
$groups = isset($_SESSION['groups'])? $modx->fromJSON($_SESSION['groups']) : array();
/* Get and sanitize the password submitted by the user (if any) */
$userPW = isset($_POST['password'])? filter_var($_POST['password'], FILTER_SANITIZE_STRING) : '';
 
if (!empty($userPW)) { /* Form was submitted */
 
    if ($userPW == $resourcePW) { /* password matches the page's password */
        /* Set the logged in and groups session */
        $_SESSION['loggedin'] = 1;
        if (! in_array($resourceGroup, $groups)) {
            $groups[] = $resourceGroup;
            $groupsJSON = $modx->toJSON($groups);
            $_SESSION['groups'] = $groupsJSON;
        }
        return;
    } else { // Doesn't match. Back to the form!
        toForm($formResourceID);     
    }
}  else { // Form wasn't submitted, so check for logged in and groups sessions
     
    if ( empty($groups) || ! isset($_SESSION['loggedin']) || (! $_SESSION['loggedin'] === 1) || (! in_array($resourceGroup, $groups))) {
        toForm($formResourceID);
  }
}


Auf der Seite habe ich einen Button angelegt, der folgendermaßen aussieht:
Code:
<a href="../logout.php">abmelden</a>


In der logout.php steht folgendes:
Code:
<?php
     session_start();
     unset($_SESSION['password']);
     session_destroy();
     session_write_close();
     header("Location: /");
     die;
     exit;
?>
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Ähnliche Themen User- und Session-ID per Cookie, Session oder in URL durchre
pop-up automatisch beenden
MODx - Darstellungsprobleme?
Aktion beenden in Photoshop
Movieclip erst beenden, wie?
[MODx CMS] Newssystem mit dem FDM Snippet?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.