gelöst Session Problem

Mitglied: vServer

vServer (Level 1)

19.01.2014, aktualisiert 05.02.2014, 1361 Aufrufe, 6 Kommentare, 3 Danke

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



Mitglied: Arano
19.01.2014 um 13:37 Uhr
Hi vServer

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


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

01.
<?php
02.

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

06.
$Auth->logout();
07.
redirect(WEB_ROOT);
die master.inc.php
01.
<?php
02.

03.
// Application flag
04.
define('SPF', true);
05.

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

09.
// Global include files
10.
require DOC_ROOT . '/includes/functions.inc.php'; // __autoload() is contained in this file
11.
require DOC_ROOT . '/includes/class.dbobject.php';
12.
require DOC_ROOT . '/includes/class.objects.php';
13.
require DOC_ROOT . '/includes/email_class/class.phpmailer.php';
14.
require DOC_ROOT . '/includes/phpqrcode/phpqrcode.php';
15.
require DOC_ROOT . '/includes/recaptcha/recaptchalib.php';
16.

17.
// Fix magic quotes
18.
if (get_magic_quotes_gpc())
19.
{
20.
    $_POST    = fix_slashes($_POST);
21.
    $_GET     = fix_slashes($_GET);
22.
    $_REQUEST = fix_slashes($_REQUEST);
23.
    $_COOKIE  = fix_slashes($_COOKIE);
24.
}
25.

26.
// Load our config settings
27.
$Config = Config::getConfig();
28.

29.
/* load db config settings into constants */
30.
$db   = Database::getDatabase();
31.
$rows = $db->getRows("SELECT config_key, config_value FROM site_config ORDER BY config_group, config_key");
32.
if (COUNT($rows))
33.
{
34.
    foreach ($rows AS $row)
35.
    {
36.
        $constantName = "SITE_CONFIG_" . strtoupper($row['config_key']);
37.
        define($constantName, $row['config_value']);
38.
    }
39.
}
40.

41.
// store session info in the database?
42.
if ($Config->useDBSessions === true)
43.
{
44.
    DBSession::register();
45.
}
46.

47.
// Initialize our session
48.
session_name($Config->sessionName);
49.
session_start();
50.

51.
// pick up any requests to change the site language
52.
if (isset($_REQUEST['_t']))
53.
{
54.
    // make sure the one passed is an active language
55.
    $isValidLanguage = $db->getRow("SELECT languageName, flag FROM language WHERE isActive = 1 AND languageName = '" . $db->escape(trim($_REQUEST['_t'])) . "' LIMIT 1");
56.
    if ($isValidLanguage)
57.
    {
58.
        $_SESSION['_t'] = trim($_REQUEST['_t']);
59.
    }
60.
    else
61.
    {
62.
        $_SESSION['_t'] = SITE_CONFIG_SITE_LANGUAGE;
63.
    }
64.
}
65.
elseif (!isset($_SESSION['_t']))
66.
{
67.
    $_SESSION['_t'] = SITE_CONFIG_SITE_LANGUAGE;
68.
}
69.

70.
/* setup translations */
71.
translate::setUpTranslationConstants();
72.

73.
// Initialize current user
74.
$Auth = Auth::getAuth();
75.

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

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

83.
// the root plugin directory
84.
define('PLUGIN_DIRECTORY_NAME', 'plugins');
85.
define('PLUGIN_DIRECTORY_ROOT', DOC_ROOT . '/' . PLUGIN_DIRECTORY_NAME . '/');
86.
define('PLUGIN_WEB_ROOT', WEB_ROOT . '/' . PLUGIN_DIRECTORY_NAME);
87.

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

91.
/* check for banned ip */
92.
$bannedIP = bannedIP::getBannedType();
93.
if (strtolower($bannedIP) == "whole site")
94.
{
95.
    header('HTTP/1.1 404 Not Found');
96.
    die();
97.
}
98.

99.
// setup demo mode
100.
if (_CONFIG_DEMO_MODE == true)
101.
{
102.
    if (isset($_REQUEST['_p']))
103.
    {
104.
        $_SESSION['_plugins'] = false;
105.
        if ((int) $_REQUEST['_p'] == 1)
106.
        {
107.
            $_SESSION['_plugins'] = true;
108.
        }
109.
        unset($_SESSION['pluginConfigs']);
110.
    }
111.

112.
    if (!isset($_SESSION['_plugins']))
113.
    {
114.
        $_SESSION['_plugins'] = true;
115.
        unset($_SESSION['pluginConfigs']);
116.
    }
117.
}
118.

119.
// load plugin configuration into the session
120.
if (!isset($_SESSION['pluginConfigs']))
121.
{
122.
    $_SESSION['pluginConfigs'] = pluginHelper::loadPluginConfigurationFiles();
123.
}
124.

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

Danke
Mitglied: Arano
19.01.2014 um 14:23 Uhr
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
Mitglied: vServer
19.01.2014 um 14:52 Uhr
das hätte ich noch :D

01.
    public function login($un, $pw)
02.
    {
03.
        $pw = $this->createHashedPassword($pw);
04.
        return $this->attemptLogin($un, $pw);
05.
    }
06.

07.
    public function logout()
08.
    {
09.
        $Config = Config::getConfig();
10.

11.
        $this->id = null;
12.
        $this->username = null;
13.
        $this->level = 'guest';
14.
        $this->user = null;
15.
        $this->loggedIn = false;
16.

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

20.
        $_SESSION['un'] = '';
21.
        $_SESSION['pw'] = '';
22.
        unset($_SESSION['un']);
23.
        unset($_SESSION['pw']);
24.

25.
        setcookie('spf', '.', time() - 3600, '/', $Config->authDomain);
26.
    }
Mitglied: Arano
LÖSUNG 19.01.2014, aktualisiert um 21:43 Uhr
Hi,

sorry, konnte nicht früher.
Ich habe mit jetzt noch einmal das Video angesehen und sehe vielleicht das Problem:
01.
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
Mitglied: vServer
19.01.2014 um 21:43 Uhr
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

Gruß Tobi
Titel: Session Problem
Content-ID: 227095
Art des Inhalts: Frage
Ausgedruckt am: 20.09.2019 um 12:19:24 Uhr
URL: https://administrator.de/contentid/227095