Seite 3 von 3

Verfasst: 14.10.2007 22:55
von gn#36
Hm, anscheinend ist der Redirect beim Logout nicht vorgesehen.

Code: Alles auswählen

case 'logout':
		if ($user->data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user->session_id)
		{
			$user->session_kill();
			$user->session_begin();
			$message = $user->lang['LOGOUT_REDIRECT'];
		}
		else
		{
			$message = ($user->data['user_id'] == ANONYMOUS) ? $user->lang['LOGOUT_REDIRECT'] : $user->lang['LOGOUT_FAILED'];
		}
		meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
	
		$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a> ');
		trigger_error($message);

	break;
(Auszug der ucp.php)

Hier müsstest du wohl die Zeile

Code: Alles auswählen

meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
ändern. Oder du baust dieses Segment leicht verändert an anderer Stelle ein und verweist mit deinem Logout Link dann hierauf, ebenfalls mit geänderter Stelle.

Verfasst: 18.10.2007 12:23
von Helmut
Hallo gn#36,

danke dir für die Info. Ich habe noch ein wenig rumgespielt, bin aber nicht Wirklich auf eine Lösung gekommen. Egal wie ich es mache, er nimmt den redirect nicht an. Hänge ich den Redirect am Ende an die sid an, dann wird die Redirect ignoriert, und wenn ich dien Redirect vor die sid setze, dann fliegt die sid raus und es kommt zu einer Fehlermeldung wegen falscher sid.

Ich kann mich erinnern dass es mal was für eine alter Version vom phpBB2 gab, habs aber noch nicht gefunden. Das könnte vielleicht einen Anhaltspunkt liefern, wie man es für phpBB3 realisieren könnte, ich bleibe aber dran.

Das mit der Zeile ändern klappt ohne Probleme, bringt mir aber nichts wenn sich jemand vom Forum aus ausloggen will, der würde dann auf der Startseite landen.

Gruß Helmut

Verfasst: 18.10.2007 12:34
von gn#36
Du kannst das ja so lösen wenn du das nur an dieser Stelle brauchst:

Code: Alles auswählen

if(request_var('redirect','') == 'startseite.php')
{
meta_refresh(3, append_sid("{$phpbb_root_path}startseite.$phpEx"));
}
else
{
meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
}
Da müsstest du dann den Link anpassen und dann würde der Redirect eben nur für diesen einen Fall mit &redirect=startseite.php in der URL eine Weiterleitung auf die Startseite machen. Den Link müsstest du natürlich entsprechend oben anpassen, ob du da startseite.php oder 1 reinschreibst ist egal sofern du es oben anpasst. Du könntest da natürlich für andere Seiten auch mehr Fallunterscheidungen einbauen. Oder du schaust dir an wie der Redirect in den anderen Fällen implementiert ist und übernimmst den an dieser Stelle, allerdings ist das wenn du nur die eine Seite an eine andere Stelle schicken willst zu aufwändig.

Verfasst: 18.10.2007 12:45
von Helmut
Hallo gn#36,

ok, werde ich mal ausprobieren, ich habe den Login ja eh nur im Forum und auf der Startseite drinnen. Das wäre wirklich die einfachste und kürzeste Lösung für meinen Fall.

Gruß Helmut