Weiterleitung nur zur index.php?

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Weiterleitung nur zur index.php?

Beitrag von Dungeonwatcher »

'n Abend! :cool:

Ich bin mal wieder auf der suche nach Bugs in meinem Forum um sie zu beheben. Hierbei kam mir gerade Folgender unter:

Wenn ich als als Gast bei einer Message auf die Button PN, eMail bzw. Profil klicke, öffnet sich korrekterweise das Fenster zum einloggen. Nach dem einloggen lande ich dann jedoch immer auf dem Index und nicht bei PN, eMail bzw. dem Profil. Was muss ich in der viewtopic.php ändern damit es entsprechend funktioniert?

Bye/2
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dort gar nichts, sondern eher in der profile.php, bzw. login.php.
In einer der beiden Dateien (meist in der login.php) scheint die redirect-Information nicht zu passen.
Erstellt wird die in diesem Fall wohl in der profile.php oder der Datei, die die Funktion bereitstellt...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Dann fange ich mal mit der profile.php an. Dort gibt es 3x ein redirect:

Code: Alles auswählen

		if ( !$userdata['session_logged_in'] && $mode == 'editprofile' )
		{
			redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true));
		}

Code: Alles auswählen

	else if (!$userdata['session_logged_in'] )
	{
		redirect(append_sid("login.$phpEx?redirect=profile.$phpEx", true));
		exit;
	}
und

Code: Alles auswählen

redirect(append_sid("index.$phpEx", true));
?>
Im Vanilla gibt es den mittleren Eintrag jedoch nicht?

In der login.php gibt es gar kein redirect, sondern nur:

Code: Alles auswählen

'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"),
Nun fehlt mir wieder die Idee? :!:
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Oh doch!
In der login gibts eine ganze Menge redirects:

Code: Alles auswählen

redirect(append_sid($url, true));
und $url wird immer unmittelbar davor definiert...

Auch müsste das redirect in der Browser Adressleiste stehen, wenn es korrekt gesetzt wäre, also beim Anzeigen des Login.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi! :cool:

[quote="oxpus";p="68997"]Oh doch!
In der login gibts eine ganze Menge redirects:

Code: Alles auswählen

redirect(append_sid($url, true));
und $url wird immer unmittelbar davor definiert...[/quote]

Ähm, ja, stimmt. Da war ich wohl mal wieder blind auf die Augen... ^6
Auch müsste das redirect in der Browser Adressleiste stehen, wenn es korrekt gesetzt wäre, also beim Anzeigen des Login.
Hmm, es steht dann dort z.B. .../login.php?redirect=profile.php

Es müsste dort doch eigentlich z.B. dies stehen: .../login.php?redirect=profile.php?mode=viewprofile&u=6, oder sehe das falsch?

Wo fehlt bzw. trage ich dann das fehlende "?mode=viewprofile&u=6" ein?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, der Kette nach angefangen von dem Script, wo der User das Profil aufrufen will, über die profile.php (dort wird es nur "durchgereicht") bis hin zur usercp_viewprofile.php.
Irgendwo muss das redirect vorhanden sein, ist die Frage, wo genau (habe ich etzt nicht im Kopf) und welcher Link da eben nicht mehr korrekt ist.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Das Profil ist Standardmäßig für Gäste erlaubt!
Wenn das bei dir nicht der Fall ist, dann hast du einen MOD installiert der den Zugriff verbietet und zum Login leitet. Schau dir also das redirekt an, das von diesem MOD eingefügt wurde (entweder in der profile.php oder in der usercp_viewprofile.php) und du bist am Ziel. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi! :cool:

Ich denke die richtige Stelle gefunden zu haben. In der login.php müsste diese Stelle angepasst werden:

Code: Alles auswählen

	else if (!$userdata['session_logged_in'] )
	{
		redirect(append_sid("login.$phpEx?redirect=profile.$phpEx", true));
		exit;
	}
Meine bisherige Änderung sieht so aus:

Code: Alles auswählen

		redirect(append_sid("login.$phpEx?redirect=" . 'profile.php?mode=viewprofile&u=' . 'user_id', true));
Das ergibt zumindest schonmal diesen Link:

http://www.dungeon-bbs.de/forum/login.p ... &u=user_id

Anstelle von user_id sollte jedoch die korrekte ID stehen. Wie müsste es korrekterweise aussehen?

Hmmm, selbst wenn ich dort eine gültige ID eintrage, lande ich jedoch im Index. :(
Zuletzt geändert von Dungeonwatcher am Mi 24.Jan, 2007 17:18, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Woher hast Du denn diesen Code in der login.php?
Der ist nicht original...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hmmm, frag mich mal was leichteres. ^6

Nachtrag:

Jetzt fällt's mir wieder ein und die Lösung für die Weiterleitung zur Profilansicht gleich mit. Vor laaaaanger Zeit hatte ich mal das Profil, die Mitgliederliste etc. vor Gästen versteckt. Hierfür baute ich diese Ergänzung ein. Allerdings gab es da noch nicht den Fix für die Weiterleitung. Nun tut's mit dem Profil schon mal super funktionieren.
Zuletzt geändert von Dungeonwatcher am Mi 24.Jan, 2007 18:21, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Na wer sagt es denn? ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Nunja, ich brauche des öfteren immer so einen Knüppel auf den Hinterkopf um mich wieder zu erinnern. ;)

Egal, bleibt jetzt noch gleiches Problem mit persönl. Gallerie, PN, eMail und dem Vorschaubild (Album) auf dem Portal.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Gleiches Problem = gleiche Lösung. :D
Such das entsprechende redirekt und pass es an. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi! :cool:

Bei der PN bin ich jetzt soweit, das nach dem Einloggen gleich mit dem schreiben der Nachricht begonnen werden kann. Dazu habe ich dies in der privmsg.php hinzugefügt:

Code: Alles auswählen

suche:

//
// End session management
//

und füge danach ein

if (!empty($HTTP_POST_VARS['u']) || !empty($HTTP_GET_VARS['u']))
{
	$user_id = (!empty($HTTP_POST_VARS['u'])) ? $HTTP_POST_VARS['u'] : $HTTP_GET_VARS['u'];
}
else
{
	$user_id = '';
}
if (!$userdata['session_logged_in'] )
{
	redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx?mode=post&u=$user_id", true));
}
Nun fehlt noch der Name des Empfängers, welcher gleich eingetragen werden soll?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Code: Alles auswählen

suche:

//
// End session management
//

und füge danach ein

if (!empty($HTTP_POST_VARS[POST_USERS_URL]) || !empty($HTTP_GET_VARS[POST_USERS_URL]))
{
	$user_id = (!empty($HTTP_POST_VARS[POST_USERS_URL])) ? intval($HTTP_POST_VARS[POST_USERS_URL]) : intval($HTTP_GET_VARS[POST_USERS_URL]);
	$pm_user = get_userdata($user_id);
	$username = $pm_user['username'];
}
else
{
	$user_id = '';
	$username = '';
}

if (!$userdata['session_logged_in'] )
{
	redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx?mode=post&u=$user_id", true));
}
Mit Username und "Standard"-Sicherheit im Code ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hmmm, ich verstehe jetzt nur Bahnhof?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Den Snippet nur eben um den Usernamen und die phpBB-Sicherheitsvorgabe erweitert.
User-ID ist doch der User, an den die PN gehen soll und $username trägst Du das Value in das Textfeld ein, damit das Script den eben schon gleich hat...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Aaahja. Das übersteigt allerdings mein Wissen um PHP bzw. den "Innerein" von phpBB. ^6

Wie müsste denn das ganze denn aussehen?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich dachte, Du hättest die User-ID bereits eingebunden.
War also nur die erste Idee, oder wie?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Nöö. Mit dem Snippet oben sieht der Link jetzt so aus:

http://www.dungeon-bbs.de/forum/privmsg ... e=post&u=6

Was ich nicht auf die Reihe bekomme, ist gleichzeitig den entsprechenden Usernamen in das Feld Benutzername: zu bringen.

Abgesehen davon, bringt dieses Snippet irgendein Sicherheitsrisiko mit sich?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also:
Ich habe das Script ja umgebaut, um es auch sicherer zu machen.
Mit $username steht der Username des ausgewählten Users zur Verfügung, aber das ist eigentlich auch nicht nötig, denn mit dieser Funktion wird im "Original" bereits der Username korrekt eingetragen.
Wenn nicht, ist bei Dir etwas nicht mehr korrekt...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

'n Abend! :cool:

Was lange währt wird gut. Ich denke die Lösung gefunden zu haben. Ich habe in der privmsg.php folgendes:

Code: Alles auswählen

else if ( $submit || $encrypt || $refresh || $mode != '' )
{
	if ( !$userdata['session_logged_in'] )
	{
		$user_id = ( isset($HTTP_GET_VARS[POST_USERS_URL]) ) ? '&' . POST_USERS_URL . '=' . intval($HTTP_GET_VARS[POST_USERS_URL]) : '';
		redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=$folder&mode=$mode" . $user_id, true));
true));
	}
	
	//
	// Toggles
	//
hierdurch ersetzt:

Code: Alles auswählen

else if ( $submit || $encrypt || $refresh || $mode != '' )
{
	if ( !$userdata['session_logged_in'] )
	{
		$user_id = ( isset($HTTP_GET_VARS[POST_USERS_URL]) ) ? '&' . POST_USERS_URL . '=' . intval($HTTP_GET_VARS[POST_USERS_URL]) : '';
		redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&mode=post$user_id", true));
	}
	
	//
	// Toggles
	//
Bisher sind mir keine Nebenwirkungen aufgefallen.
Zuletzt geändert von Dungeonwatcher am Fr 02.Feb, 2007 01:09, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

privmsg.$phpEx&mode=post$user_id
Sicher?
So geschrieben fehlt da aber noch was...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Moin! :cool:

[quote="oxpus";p="69405"]
privmsg.$phpEx&mode=post$user_id
Sicher?[/quote]

Bisher ja.
So geschrieben fehlt da aber noch was...
Meinst du evtl. dies:

Code: Alles auswählen

redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&mode=". $mode . $user_id, true));
Beide Varianten bringen das gleiche ergebnis.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Was würde denn da rauskommen?
Richtig:

Code: Alles auswählen

login.php?redirect=privmsg.php&mode=newpost2
Da fehlt doch noch zwischen "newpost" und "2" noch, was die 2 bedeutet ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten