Seite 1 von 1

Authentifizierungsproblem

Verfasst: 28.02.2006 10:21
von sparkly
Hallo,

habe ein Authentifizierungsproblem in meinem Forum.

Zum Hintergrund: Ich habe einen Mod "(WoW Charakterliste)" ins Forum eingebaut. Die Funktionen dieses Mods stehen voll zur Verfügung und können genutzt werden.

Folgendes Problem tritt aber auf:
Nach dem Login auf der Hauptseite wird oben rechts "Logout [ Benutzername ]" angezeigt und auch in jede Unterseite mitgenommen. Nur in die Unterseite des Mods nicht. Nach Klick auf den Link: "Charakterliste (WoW)" im Forumskopf, verliert der Browser die Authentifizierung. Habe verschiedene Browser ausprobiert. Mit Mozilla und IE5 funktioniert alles. Nur der IE6 macht diese Probleme. Ich glaube aber nicht das es am Browser liegt, sondern an der PHP-Seite des Mods, welcher die Anmeldedaten nicht auslesen und übernehmen kann. Denn bei den anderen Unterseiten (z.B. Profil oder Benutzergruppen) funktioniert es ja.

Weiß jemand, wo die Übernahme der Anmeldeinformationen von der Hauptseite auf eine Unterseite bestimmt sind?

Vielen Dank für jede Hilfe

Verfasst: 02.03.2006 11:39
von sparkly
Habe hier mal den Code der Mod Seite. Gibt es irgend etwas, was auf den oben genannten Fehler (vielleicht ein Sicherheitsproblem) hinweist und zum sofortigen Logout aus dem Forum führt?

Code: Alles auswählen

<?php

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

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_VIEWMEMBERS);
init_userprefs($userdata);
//
// End session management
//

$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
	$mode = ( isset($HTTP_POST_VARS['mode']) ) ? htmlspecialchars($HTTP_POST_VARS['mode']) : htmlspecialchars($HTTP_GET_VARS['mode']);
}
else
{
	$mode = 'joined';
}

if(isset($HTTP_POST_VARS['order']))
{
	$sort_order = ($HTTP_POST_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
}
else if(isset($HTTP_GET_VARS['order']))
{
	$sort_order = ($HTTP_GET_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
}
else
{
	$sort_order = 'ASC';
}

//
// Memberlist sorting
//
$mode_types_text = array("Charaktername", "PVP-Rang", "Level", "Klasse", "Erster Hauptberuf (Level)",  "Zweiter Hauptberuf (Level)");
$mode_types = array('name', 'rank', 'level', 'class', 'prof1lvl', 'prof2lvl');

$select_sort_mode = '<select name="mode">';
for($i = 0; $i < count($mode_types_text); $i++)
{
	$selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : '';
	$select_sort_mode .= '<option value="' . $mode_types[$i] . '"' . $selected . '>' . $mode_types_text[$i] . '</option>';
}
$select_sort_mode .= '</select>';

$select_sort_order = '<select name="order">';
if($sort_order == 'ASC')
{
	$select_sort_order .= '<option value="ASC" selected="selected">' . $lang['Sort_Ascending'] . '</option><option value="DESC">' . $lang['Sort_Descending'] . '</option>';
}
else
{
	$select_sort_order .= '<option value="ASC">' . $lang['Sort_Ascending'] . '</option><option value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option>';
}
$select_sort_order .= '</select>';

//
// Generate page
//
$page_title = "Charakterliste";
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
	'body' => 'characters_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx);

$button = ($userdata['username'] != "Anonymous") ? "<form method=\"POST\" action=\"char_edit.php\"><input type=\"submit\" value=\"Charakterverwaltung\" class=\"liteoption\"></form>" : "";

$template->assign_vars(array(
	'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
	'L_UNAME' => "Benutzername",
	'L_CNAME' => "Charaktername",
	'L_RANK' => "PVP-Rang",
	'L_LEVEL' => "Level",
	'L_CLASS' => "Klasse",
	'L_RACE' => "Rasse",
	'L_PROF' => "Hauptberufe",
	
	'BUTTON' => $button,

	'S_MODE_SELECT' => $select_sort_mode,
	'S_ORDER_SELECT' => $select_sort_order,
	'S_MODE_ACTION' => append_sid("characters.$phpEx"))
);

switch( $mode )
{
	case 'name':
		$order_by = "name $sort_order";
		break;
	case 'rank':
		$order_by = "rank $sort_order";
		break;
	case 'level':
		$order_by = "lvl $sort_order";
		break;
	case 'class':
		$order_by = "class $sort_order";
		break;
	case 'prof1lvl':
		$order_by = "prof1lvl $sort_order";
		break;
	case 'prof2lvl':
		$order_by = "prof2lvl $sort_order";
		break;
	default:
		$order_by = "name $sort_order";
		break;
}

$sql = "SELECT ID, user_ID, name, rank, lvl, class, race, prof1, prof1lvl, prof2, prof2lvl 
	FROM phpbb_characters
	ORDER BY $order_by";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}

if ( $row = $db->sql_fetchrow($result) )
{
	$i = 0;
	do
	{
		// Start retreiving information
		$user_ID_ = $row['user_ID'];
		$roflcopter = $db->sql_fetchrow($db->sql_query("SELECT username FROM " . USERS_TABLE . " WHERE user_id = $user_ID_ LIMIT 1"));
		$username = $roflcopter['username'];
		
		$charname = $row['name'];
		$rank = $row['rank'];
		$level = $row['lvl'];
		$class = $row['class'];
		$race = $row['race'];
		$prof1 = $row['prof1'];
		$prof1lvl = $row['prof1lvl'];
		$prof2 = $row['prof2'];
		$prof2lvl = $row['prof2lvl'];
		

		$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

		$template->assign_block_vars('memberrow', array(
			'ROW_NUMBER' => $i + ( $start + 1 ),
			'ROW_COLOR' => '#' . $row_color,
			'ROW_CLASS' => $row_class,
			
			'USERNAME' => $username,
			'USERNAME_LINK' => "profile.php?mode=viewprofile&u=" . $user_ID_,
			'CHARACTER' => $charname,
			'RANK' => $rank,
			'LVL' => $level,
			'CLASS' => $class,
			'RACE' => $race, 
			'PROFS' => $prof1 . ' ' . $prof1lvl . ', ' . $prof2 . ' ' . $prof2lvl)
		);

		$i++;
	}
	while ( $row = $db->sql_fetchrow($result) );
	$db->sql_freeresult($result);
}

$template->pparse('body');

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

?>
Vielen Dank für jede Hilfe

Verfasst: 02.03.2006 13:44
von Dr.Death
Ich glaube eher es liegt am IE6 :-)

Hast du beim IE6 auch brav die Annahme von Cookies erlaubt ? ( das kleine Einbahnstrassen Symbol ... )