Werde oft als Anonymous eingeloggt
Verfasst: 22.12.2005 17:00
Hi möchte die Login-Routine von phpbb auf dem Rest meiner Seite einsetzen. Das klappt auch recht gut, allerdings werde ich "manchmal" als Anonymous eingeloggt obwohl ich natürlich meinen Usernamen und Passwort eingebe.
Folgendes habe ich festgestellt:
-Bei Eingabe eines nicht vorhandenen Usernamen wird der Login natürlich nicht ausgeführt
-Bei Eingabe eines falschen Passworts scheitert der Login auch, aber an einer anderen Stelle im Script.
-Bei richtiger Eingabe von Usernamen und Passwort werden 2 Sessions angelegt. Einmal für den User und einmal eben für Anonymous....
Hier der Code.
S.
Folgendes habe ich festgestellt:
-Bei Eingabe eines nicht vorhandenen Usernamen wird der Login natürlich nicht ausgeführt
-Bei Eingabe eines falschen Passworts scheitert der Login auch, aber an einer anderen Stelle im Script.
-Bei richtiger Eingabe von Usernamen und Passwort werden 2 Sessions angelegt. Einmal für den User und einmal eben für Anonymous....
Hier der Code.
Code: Alles auswählen
define("IN_LOGIN", true);
define('IN_PHPBB', true);
$phpbb_root_path = 'phpbb/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Set page ID for session management
//
$userdata = session_pagestart($user_ip, PAGE_LOGIN);
init_userprefs($userdata);
//
// End session management
//
// session id check
if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid']))
{
$sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid'];
}
else
{
$sid = '';
}
if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) )
{
if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && (!$userdata['session_logged_in'] || isset($HTTP_POST_VARS['admin'])) )
{
$username = isset($HTTP_POST_VARS['username']) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';
$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';
$sql = "SELECT user_id, username, user_password, user_active, user_level FROM " . USERS_TABLE . " WHERE username = '" . str_replace("\\'", "''", $username) . "'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);
}
if( $row = $db->sql_fetchrow($result) )
{
if( $row['user_level'] != ADMIN && $board_config['board_disable'] )
{
redirect(append_sid("index6.$phpEx", true));
}
else
{
if( md5($password) == $row['user_password'] && $row['user_active'] )
{
$autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;
$admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0;
$session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin);
if( $session_id )
{
$url="index.php";
$sid=$userdata['session_id'];
redirect_login($url."?sid=$sid");
}
else
{
message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__);
}
}
else
{
$url="index.php?kategorie=Community&f2=";
redirect_login($url);
}
}
}
else
{
$url="index.php?kategorie=Community&f1=";
redirect_login($url);
}
}
else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] )
{
if( $userdata['session_logged_in'] )
{
session_end($userdata['session_id'], $userdata['user_id']);
}
$url="index.php";
redirect_login($url);
}
else
{
$url="index.php";
$sid=$userdata['session_id'];
redirect_login($url."?sid=$sid");
}
}
else
{
$url="index.php?kategorie=Communnity";
redirect_login($url);
}
S.