Eine Ecke weiter bin ich gekommen.
Diese zusammengebastelte Datei lasse ich an oben genannter Stelle in der
auth.php includen:
Code: Alles auswählen
<?
// Login phpBB2 - START
function encode_ip($dotquad_ip)
{
$ip_sep = explode('.', $dotquad_ip);
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}
//generate session id
$query = "SELECT config_value FROM phpbb_config WHERE config_name='rand_seed'";
$return_seed = mysql_query($query) or die(mysql_error());
$seed = mysql_result($return_seed,0);
$val = $seed. microtime();
$val = md5($val);
$seed = md5($seed . $val . 'a');
// put it back in the table..werid
$sql = "UPDATE phpbb_config SET config_value='$seed' WHERE config_name='rand_seed'";
$return = mysql_query($sql) or die(mysql_error());
$session_id = md5(substr($val, 4, 16));
//get IP
$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
$user_ip = encode_ip($client_ip);
//current time
$current_time = time();
//create entry in sessions table
$sql = "INSERT INTO phpbb_sessions
(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin, SearchBot)
VALUES ('$session_id', '$user_id', $current_time, $current_time, '$user_ip', '0', '1', '0', '0')";
$return = mysql_query($sql) or die(mysql_error());
// create sessiondata
$sessiondata['userid'] = $user_id;
$sessiondata['autologinid'] = false;
setcookie('phpbb2mysql_data', serialize($sessiondata), $current_time + 31536000, "/", "www.xyz.de");
setcookie('phpbb2mysql_sid', $session_id, 0, "/", "www.xyz.de");
// Login phpBB2 - ENDE
?>
(
www.xyz.de ist natürlich durch die Cookie Domain ersetzt)
Es wird jetzt auch erfolgreich ein Cookie gesetzt und eine Session erzeugt.
Man ist aber trotzdem nicht eingeloggt. Offensichtlich wird nicht die richtige
session_user_id in der Tabelle
phpbb_sessions eingetragen, sondern immer der Wert -1, also als Gast.
Eigentlich müsste doch die richtige user_id aus Olympus übernommen werden, oder? Die Variable $user_id müsste ja schon von Olympus richtig erzeugt worden sein.
Hat jemand eine Idee was krumm läuft?
Gruß
Saint