vserver
Goto Top

Session Problem

Hallo,

was kann ich dagegen machen? Ich habe ein Session Problem warum das so ist weiß ich nicht vermute aber das es an den anderen Logins liegt wie z.B. das Forum oder am Paste Script:


im Paste Script hab ich bereits das so, stört aber noch immer etwas:
session_name('session_main_domain');
session_start();

Gruß & Danke

Content-ID: 227095

Url: https://administrator.de/forum/session-problem-227095.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

Arano
Arano 19.01.2014 um 13:37:44 Uhr
Goto Top
Hi vServer

Dein Logout-Script funktioniert wohl nicht richtig ?
Poste das doch bitte mal !


~Arano
vServer
vServer 19.01.2014 um 13:50:28 Uhr
Goto Top
Danke, hier die logout.php:

<?php

/* setup includes */
require_once('includes/master.inc.php');  

$Auth->logout();
redirect(WEB_ROOT);

die master.inc.php
<?php

// Application flag
define('SPF', true);  

// Determine our absolute document root
define('DOC_ROOT', realpath(dirname(__FILE__) . '/../'));  

// Global include files
require DOC_ROOT . '/includes/functions.inc.php'; // __autoload() is contained in this file  
require DOC_ROOT . '/includes/class.dbobject.php';  
require DOC_ROOT . '/includes/class.objects.php';  
require DOC_ROOT . '/includes/email_class/class.phpmailer.php';  
require DOC_ROOT . '/includes/phpqrcode/phpqrcode.php';  
require DOC_ROOT . '/includes/recaptcha/recaptchalib.php';  

// Fix magic quotes
if (get_magic_quotes_gpc())
{
    $_POST    = fix_slashes($_POST);
    $_GET     = fix_slashes($_GET);
    $_REQUEST = fix_slashes($_REQUEST);
    $_COOKIE  = fix_slashes($_COOKIE);
}

// Load our config settings
$Config = Config::getConfig();

/* load db config settings into constants */
$db   = Database::getDatabase();
$rows = $db->getRows("SELECT config_key, config_value FROM site_config ORDER BY config_group, config_key");  
if (COUNT($rows))
{
    foreach ($rows AS $row)
    {
        $constantName = "SITE_CONFIG_" . strtoupper($row['config_key']);  
        define($constantName, $row['config_value']);  
    }
}

// store session info in the database?
if ($Config->useDBSessions === true)
{
    DBSession::register();
}

// Initialize our session
session_name($Config->sessionName);
session_start();

// pick up any requests to change the site language
if (isset($_REQUEST['_t']))  
{
    // make sure the one passed is an active language
    $isValidLanguage = $db->getRow("SELECT languageName, flag FROM language WHERE isActive = 1 AND languageName = '" . $db->escape(trim($_REQUEST['_t'])) . "' LIMIT 1");  
    if ($isValidLanguage)
    {
        $_SESSION['_t'] = trim($_REQUEST['_t']);  
    }
    else
    {
        $_SESSION['_t'] = SITE_CONFIG_SITE_LANGUAGE;  
    }
}
elseif (!isset($_SESSION['_t']))  
{
    $_SESSION['_t'] = SITE_CONFIG_SITE_LANGUAGE;  
}

/* setup translations */
translate::setUpTranslationConstants();

// Initialize current user
$Auth = Auth::getAuth();

// Object for tracking and displaying error messages
$Error = Error::getError();

define("SITE_IMAGE_PATH", WEB_ROOT . "/themes/" . SITE_CONFIG_SITE_THEME . "/images");  
define("SITE_CSS_PATH", WEB_ROOT . "/themes/" . SITE_CONFIG_SITE_THEME . "/styles");  
define("SITE_JS_PATH", WEB_ROOT . "/themes/" . SITE_CONFIG_SITE_THEME . "/js");  

// the root plugin directory
define('PLUGIN_DIRECTORY_NAME', 'plugins');  
define('PLUGIN_DIRECTORY_ROOT', DOC_ROOT . '/' . PLUGIN_DIRECTORY_NAME . '/');  
define('PLUGIN_WEB_ROOT', WEB_ROOT . '/' . PLUGIN_DIRECTORY_NAME);  

// admin paths
define('ADMIN_WEB_ROOT', WEB_ROOT . '/admin');  

/* check for banned ip */
$bannedIP = bannedIP::getBannedType();
if (strtolower($bannedIP) == "whole site")  
{
    header('HTTP/1.1 404 Not Found');  
    die();
}

// setup demo mode
if (_CONFIG_DEMO_MODE == true)
{
    if (isset($_REQUEST['_p']))  
    {
        $_SESSION['_plugins'] = false;  
        if ((int) $_REQUEST['_p'] == 1)  
        {
            $_SESSION['_plugins'] = true;  
        }
        unset($_SESSION['pluginConfigs']);  
    }

    if (!isset($_SESSION['_plugins']))  
    {
        $_SESSION['_plugins'] = true;  
        unset($_SESSION['pluginConfigs']);  
    }
}

// load plugin configuration into the session
if (!isset($_SESSION['pluginConfigs']))  
{
    $_SESSION['pluginConfigs'] = pluginHelper::loadPluginConfigurationFiles();  
}

// append any plugin includes
pluginHelper::includeAppends('master.inc.php');  


Danke face-smile
Arano
Arano 19.01.2014 um 14:23:55 Uhr
Goto Top
Oh, mit soviel hatte ich jetzt nicht gerechnet *g*

Aber leider ist es nicht das benötigte.
In der "logout.php" wird die Methode "logout()" der Klasse "Auth" aufgerufen, kannst du diese bitte noch Posten.
$Auth->logout();

~Arano
vServer
vServer 19.01.2014 um 14:52:20 Uhr
Goto Top
das hätte ich noch :D face-smile

    public function login($un, $pw)
    {
        $pw = $this->createHashedPassword($pw);
        return $this->attemptLogin($un, $pw);
    }

    public function logout()
    {
        $Config = Config::getConfig();

        $this->id = null;
        $this->username = null;
        $this->level = 'guest';  
        $this->user = null;
        $this->loggedIn = false;

        if (class_exists('User') && (is_subclass_of('User', 'DBObject')))  
            $this->user = new User();

        $_SESSION['un'] = '';  
        $_SESSION['pw'] = '';  
        unset($_SESSION['un']);  
        unset($_SESSION['pw']);  

        setcookie('spf', '.', time() - 3600, '/', $Config->authDomain);  
    }
Arano
Lösung Arano 19.01.2014 aktualisiert um 21:43:09 Uhr
Goto Top
Hi,

sorry, konnte nicht früher.
Ich habe mit jetzt noch einmal das Video angesehen und sehe vielleicht das Problem:
setcookie('spf', '.', time() - 3600, '/', $Config->authDomain);  

In deinem Video ist zu sehen, das in deiner Browserzeile die Domain mal mit "www" und mal ohne steht.
Im Zusammenhang mit "setcookies( , , , , $Domain )" könnte es sein, dass das Cookie nicht richtig gelöscht wird weil dein Logoutscript mal im Gültigkeitsbereich für "www.domain.de" arbeitet und mal in "domain.de" und so beim Aufruf immer noch existiert und den Login erzeugt.

Prüfe das doch mal bzw. bringe es in Ordnung den so soll es bestimmt ja auch nicht sein ;)


~Arano
vServer
vServer 19.01.2014 um 21:43:02 Uhr
Goto Top
Einwandfrei, vielen vielen Dank habe nun die Links in der Menu geändert jetzt funktioniert es einwandfrei, lag tatsächlich an dem Problem.

vielen Dank, weiter so face-smile

Gruß Tobi