Status Header mit Login auf anderer Seite

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Tset
Mitglied
Beiträge: 11
Registriert: 11.02.2004 07:16

Status Header mit Login auf anderer Seite

Beitrag von Tset »

Ich habe bisher die status_header.php datei dazu verwendet, dass User auch von meiner Hauptseite, die nicht in phpbb integriert ist, direkt einloggen können. jetzt habe ich dies in ein cms integriert und nun passiert folgendes:

wenn ich die Root der datei so setzte ../phpbb/status_hearder.php

erhalte ich eine error-message, die aus dem Attachment, Mod auf einer Zeile mit dem INhalt hinweist.:

$attach_result = $db->sql_query($query);

Füge ich jedoch den ganzen url an die Datei an: http://www.mydomain.de/phpbb/status_header.php funktioniert die integration, jedoch werden die Benutzerdaten nicht erkannt. Ich kann mich also einloggen, aber es steht immer das Login-Fenster.

Hat jemand von euch eine Ahnung, an was dies liegen könnte?

Wäre äusserst Hilfreich.

Tset
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Du meinst schon die page_header.php oder?
Wie, wo hast du denn die Datei eingebunden ?
Tset
Mitglied
Beiträge: 11
Registriert: 11.02.2004 07:16

Beitrag von Tset »

Oh, entschuldige bitte. Es kann sein, dass ich dieses File von jemand anderem habe.

So sieht es aus:

Code: Alles auswählen


define('IN_PHPBB', true);
$phpbb_root_path = '../forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//

$userdata = session_pagestart($user_ip, PAGE_FAQ);
init_userprefs($userdata);

//
// Generate logged in/logged out status
//
if ( $userdata['session_logged_in'] )
{
	if ( $userdata['user_new_privmsg'] )
	{
		$l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms'];
		$l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']);

		if ( $userdata['user_last_privmsg'] > $userdata['user_lastvisit'] )
		{
			$sql = "UPDATE " . USERS_TABLE . "
				SET user_last_privmsg = " . $userdata['user_lastvisit'] . "
				WHERE user_id = " . $userdata['user_id'];
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql);
			}

			$s_privmsg_new = 1;
			$icon_pm = $images['pm_new_msg'];
		}
		else
		{
			$s_privmsg_new = 0;
			$icon_pm = $images['pm_new_msg'];
		}
	}
	else
	{
		$l_privmsgs_text = $lang['No_new_pm'];

		$s_privmsg_new = 0;
		$icon_pm = $images['pm_no_new_msg'];
	}

	if ( $userdata['user_unread_privmsg'] )
	{
		$l_message_unread = ( $userdata['user_unread_privmsg'] == 1 ) ? $lang['Unread_pm'] : $lang['Unread_pms'];
		$l_privmsgs_text_unread = sprintf($l_message_unread, $userdata['user_unread_privmsg']);
	}
	else
	{
		$l_privmsgs_text_unread = $lang['No_unread_pm'];
	}
	$u_login_logout = '../forum/login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
	$l_login_logout = $lang['Logout'];

}
else
{
	$icon_pm = $images['pm_no_new_msg'];
	$l_privmsgs_text = $lang['Login_check_pm'];
	$l_privmsgs_text_unread = '';
	$s_privmsg_new = 0;
	$u_login_logout = '../forum/login.'.$phpEx;
	$l_login_logout = $lang['Login'];

}

$template->set_filenames(array(
	'main' => 'status_header.tpl')
);
//
// Login box?
//
if ( !$userdata['session_logged_in'] )
{	
	$template->assign_block_vars('switch_user_logged_out', array());
	$template->assign_block_vars('switch_user_register',array('U_REGISTER' => append_sid('../forum/profile.'.$phpEx.'?mode=register')));	
}
else
{
	$template->assign_block_vars('switch_user_logged_in', array());

	if ( !empty($userdata['user_popup_pm']) )
	{
		$template->assign_block_vars('switch_enable_pm_popup', array());
	}
	$template->assign_block_vars('switch_user_profile',array('USER_NAME' => $userdata['username'],'U_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=".$userdata['user_id'])));
}

$template->assign_vars(array('SID' => append_sid(''),
							'USER_NAME'=>$userdata['username'],
							'U_PRIVATEMSGS' => append_sid('../forum/privmsg.'.$phpEx.'?folder=inbox'),
							'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text,
							'U_LOGIN_LOGOUT' => append_sid($u_login_logout),
							'L_LOGIN_LOGOUT' => $l_login_logout,
							
							));
$template->pparse('main');

//include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

Das Login auf regulären php Seiten ausserhalb von phpbb funktioniert damit wunderbar. Doch jetzt habe ich das oben erwähnte Problem... Ich bin mir schon bewusst, dass dazu kein Support möglich ist.. vielleicht sollte das eher ins Forum "Mods" oder so.

würde mich jedoch für irgendwelche Hinweise freuen.

Tset
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Es liegt sicherlich daran, das irgend´n Code in den cms-Seiten sich quer stellt. :-?

Wie lautet die Fehlermeldung, wenn du /phpbb/usw. angibst ?
Tset
Mitglied
Beiträge: 11
Registriert: 11.02.2004 07:16

Beitrag von Tset »

Wenn ich ../phpbb/ angebe, kommt folgende Fehlermeldung. Gebe ich http://www.mydomain.de/phpbb/ an, erscheint zwar das php skript, aber der das Login funktioniert nicht und der User wird wenn eingelogt nicht angezeigt.

Fatal error: Call to a member function on a non-object in /home/****/public_html/forum/attach_mod/includes/functions_includes.php on line 44

Auf Line 44 dort steht: $attach_result = $db->sql_query($query);


Acid, vielen Dank für deine Hilfestellung!
Tset
Mitglied
Beiträge: 11
Registriert: 11.02.2004 07:16

Beitrag von Tset »

Das ganze geschieht auch, wenn ich den Mod Recent Topics, Topics Anywhere oder den external Login mod (lb_login.php) verwende.

Verwende ich die ganze URL funktioniert zwar der Zugriff, aber die Identifikation funktioniert nicht. Also es werden z.B. beim Recent Topics Mod die neuen Themen nicht markiert. Arbeite ich aber mit der ../ angabe, funktioniert es nicht.

Soweit, wie ich dies bisher debuggt habe, kann es sich dabei darum handeln, dass die common.php datei nicht richtig integriert wird. Wenn ich diese jedoch direkt include funzts auch nid.

Wenn da jemand bereits Erfahrungen mit einer derartigen Situation hat, würde ich natürlich nur der kleinste Ratschlag sehr willkommen heissen.

freundlichst, Tset
Tset
Mitglied
Beiträge: 11
Registriert: 11.02.2004 07:16

Beitrag von Tset »

Habe das Problem bisher noch nicht lösen können und da hier wahrscheinlich auch nicht bescheid weiss, werde ich wohl weiter suchen müssen.

Falls jemand dennoch irgend ein Anhaltspunkt hat, wäre ich sehr dankbar.

Tset
Tset
Mitglied
Beiträge: 11
Registriert: 11.02.2004 07:16

Problem noch einmal kurz beschrieben:

Beitrag von Tset »

Nun arbeite ich bereits 10 Tage am selben Problem und ich komme einfach nicht weiter - frustrierend.

Ich betreibe ein phpbb Forum neben dem typo3. Ich verwende dabei nicht die extension, da diese noch nicht ausgereift ist.

Mein Vorhaben:
Ich will eine Login-Box für das Forum und den Recent Topics Mod in typo3 integreiren. Tue ich dies in einer normalen Php seite funktioniert dies super.

Sobald ich diese aber in ein Content-Element (php-element) in Typo3 integriere funktioniert folgendes:

1. Variante:
Integriere ich die php skripte so:

<? include("http://www.meindomain.de/forum/loginbox.php"); ?>

Wird das php-Skript schön integriert, aber es erkennt nicht, dass ich eingeloggt bin und bei den recent topics werden die Beiträge, die ich noch nicht gelesen habe nicht markiert.

2. Variante:
Integriere ich die php skripte so:

<? include("../forum/loginbox.php"); ?>

Funktioniert nichts. Dabei kommt folgende Fehlermeldung:

Fatal error: Call to a member function on a non-object in /home/****/public_html/forum/includes/sessions.php on line 60

Auf Linie 60 steht folgendes:
if ( !($result = $db->sql_query($sql)) )

Wenn ich Variante 2 in ein normales php-file integriere, genau wie oben beschrieben, nur ausserhalb von typo3, funktioniert alles wunderbar und es erkennt, wenn ich eingeloggt bin und es erkennt auch die Beiträge, welche ich noch nicht näher betrachtet habe.

Hilfe...
Wenn mir bei diesem Problem jemand nur ansatzweise helfen kann, wäre ich äusserst dankbar, denn ich komme einfach nicht weiter und ich muss dies so integrieren können.

Also für jegliche Art von Hilfe bin ich Dankbar!!!
Antworten

Zurück zu „phpBB 2.0: Mod Support“