Seite 1 von 1

Problem mit Statusabfrage login

Verfasst: 05.02.2008 22:13
von Helmut
Hallo,

ich habe ein kleines Problem mit der Abfrage ob ein User eingeloggt ist oder nicht.

Ich brauche diese Abfrage in meiner navigation.php welche über

Code: Alles auswählen

include($phpbb_root_path . 'svisuite/navigation.' . $phpEx);

in die jeweiligen Themenseiten eingebunden ist. Hier ist der Anfang der navigation.php:

Code: Alles auswählen

<?php
/**
*
* @author Original Author webmaster@selbsthilfeverband-inkontinenz.org
* 
*
* @package svi
* @version $Id: navigation.php,v 0.0.1 2007/09/01 Exp $
* @copyright (c) 2007 Helmut ****
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true); // we tell the page that it's going to be using phpBB, this is important.
$phpEx = substr(strrchr(__FILE__, '.'), 1); // Set the File extension for page-wide usage.


//Start session management -- This will begin the session for the user browsing this page.
$user->session_begin();
$auth->acl($user->data);

//prüfen ob User eingeloggt ist
if($userdata['session_logged_in'] && $userdata['user_id'] != ANONYMOUS)
{
	$status = 'tab_logout'; //eingeloggt
}
else
{	
	$status = 'tab_login'; //nicht eingeloggt
}


// Language file (see documentation related to language files)
$user->setup('svi/svi_navigation');

[...]
Leider bekomme ich immer $status = 'tab_login'; ausgegeben, egal ob ich eingeloggt bin oder nicht.

Wenn ich diese Zeile

Code: Alles auswählen

include($phpbb_root_path . 'common.' . $phpEx); // include the common.php file, this is important, especially for database connects.
in die navigatin.php einbinde, dann bekomme ich diese Fehlermeldung:
Fatal error: Cannot redeclare deregister_globals() (previously declared in I:\xampp\htdocs\phpBB3\common.php:32) in I:\xampp\htdocs\phpBB3\common.php on line 94

Wie bekomme ich nun den Status heraus ob ein User eingeloggt ist oder nicht?

Gruß Helmut

Verfasst: 05.02.2008 23:04
von Schumi
Das alte $userdata-Array aus phpBB2 existiert nicht mehr, die Daten sind nun in dem Objekt $user->data gespeichert.
Ob ein Benutzer registriert ist, kann über

Code: Alles auswählen

$user->data['is_registered']
geprüft werden. Zusätzlich kann/sollte man noch (je nach Anwendungsfall) auf

Code: Alles auswählen

!$user->data['is_bot']
prüfen, da dem Board bekannte Bots ebenfalls als registrierte Benutzer gelten.

Verfasst: 05.02.2008 23:18
von Helmut
Hallo Schumi,

danke dir für die schnelle Hilfe, eigentlich hätte es mir ja auffallen müssen dass die Abfrage für phpBB2 war.... :wink:

Ich habe es jetzt so geändert

Code: Alles auswählen

if($user->data['is_registered'] && !$user->data['is_bot'] && $user->data['user_id'] != ANONYMOUS)
damit klappt es wunderbar.

Gruß Helmut