Seite 1 von 1

Logout per Skript?

Verfasst: 26.04.2004 23:20
von langerxxx
Hallo zusammen,

ich logge meine Nutzer automatisch in das PHPBB ein, wenn sie sich für das Portal einloggen.

Beim Logout aus diesem Portal wird folgender Code ausgeführt:

Code: Alles auswählen

session_start();

session_unset();

session_destroy();
Frage:

Wie kann ich die User beim Ausführen des Codes gleichzeitig aus dem Forum ausloggen?

Danke im voraus und viele Grüße
Langer

Verfasst: 26.04.2004 23:23
von Henne
Klärst uns noch auf, was du für ein Portal hast?
Was selbstgebasteltes, ein fertiges, ...

Hast die Anbindung fürs phpBB selber geschrieben?

Verfasst: 26.04.2004 23:28
von langerxxx
Aber gerne doch. :grin:

Das Portal ist selbst gebastelt. Das Login in das Forum funktioniert über einen Hack für das PHPBB. Die User werden über einen Link a la login.php?username=bla&passwort=xxx in das Forum eingeloggt.

Das Cookie wird also direkt vom PHPBB gesetzt...

Danke schonmal!

Verfasst: 27.04.2004 03:56
von itst
includes/sessions.php, ab Zeile 317:

Code: Alles auswählen

//
// session_end closes out a session
// deleting the corresponding entry
// in the sessions table
//
function session_end($session_id, $user_id)
{
	global $db, $lang, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	$current_time = time();

	//
	// Pull cookiedata or grab the URI propagated sid
	//
	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) )
	{
		$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	//
	// Delete existing session
	//
	$sql = "DELETE FROM " . SESSIONS_TABLE . " 
		WHERE session_id = '$session_id' 
			AND session_user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);
	}

	setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
	setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);

	return true;
}

Verfasst: 27.04.2004 11:11
von langerxxx
Servus Sascha,

scheint leider nicht zu funktionieren. Der User wird nach dem Ausführen des Codes immer noch als einloggt angezeigt.

Eine Idee, woran das liegen könnte? Muss ich evtl. noch einen bestimmten Code vorher ausführen?

Danke und viele Grüße
Langer

Verfasst: 27.04.2004 15:02
von itst
Kann eigentlich nicht sein, denn wenn die Session gelöscht wird, ist sie gelöscht, wenn Du verstehst, was ich meine ;)