es könnte sein, dass ich auf ein neues Problem im Zusammenhang mit AOL-Usern gestossen bin.
Ich nutze phpBB2 im Zusammenhang mit einem Chatserver. User, die sich eingeloggt haben, können mit ihrem Usernamen auch in den Chat wechseln. Bei Wechsel in den Chat wird für den betreffenden User ein Parameter übergeben, der es ermöglicht, aus dem Chat heraus, dessen Profil aufzurufen.
Und jetzt kommts: Das klappt bei allen, nur nicht bei AOL-Usern! Will man deren Profil abrufen, sieht man immer nur sein eigenes. Grund: Die user_id wird für den AOL-User nicht korrekt ermittelt, wohl aber sein Username! Bei allen anderen Mitgliedern klappt alles einwandfrei.
Folgendes Codestück zeigt das Problem auf:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include ($phpbb_root_path . 'digichat_icons.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_SEARCH);
init_userprefs($userdata);
//
// End session management
//
$username = $userdata['username'];
$user_id1 = $userdata['user_id'];
echo "UserID direkt: $user_id1<br>";
$sql = "SELECT user_id
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);
}
$row = $db->sql_fetchrow($result) ;
$user_id2 = $row[user_id];
echo "UserID-DB: $user_id2<br>";
Baut ein script oder ein MOD also auf die fehlerfreie Besetzung von $userdata['user_id'] durch die Standard Session Eröffnung (vgl. // Start session management), kann es zu kuriosen Ergebnissen kommen.
Ich habe rein vorsorglich die Sache mal mit der hier erörterten Lösung getestet, nicht die ganze IP zu checken.
Dies brachte keinen Erfolg, die Fehlbesetzung der user_id bleibt bestehen bei AOL-Usern.
Gruss
Volker