Ninos hat geschrieben:Ach ja, und schon beim ersten
Also bei mir gibts die Stelle nur einmal...^^
Ninos hat geschrieben:und wo mach ich dann den start sesson managment?
Ich muss ja die Variable $user wie abfragen.
Hab die ganz an den Anfang eingebaut, dann kommt aber ne Fehlermeldung:
Stimmt, da ist dann ja immernoch der Gast-Account geladen... und an dieser Stelle nochmals alles neuzuladen bringts irgendwie nicht...^^
Vergiss, die Stelle^^
Sattdessen kannst du deinen Code in eine Funktion packen und diese Funktion bei erfolgreichem einloggen aufrufen.
Und zwar folgendermassen: (Habs zwar nicht getestet, sollte aber so funktionieren)
öffne: common.php
finde:
Davor einfügen:
Code: Alles auswählen
$logio = request_var('logio', '');
if ($logio)
{
log_login_logout($logio);
}
öffne: includes/constants.php
finde:
Danach einfügen:
Code: Alles auswählen
define('LOGIN_LOGOUT_TABLE', $table_prefix . 'login_logouthistory');
öffne: includes/functions.php
finde:
Code: Alles auswählen
if ($result['status'] == LOGIN_SUCCESS)
{
$redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");
$message = ($l_success) ? $l_success : $user->lang['LOGIN_REDIRECT'];
$l_redirect = ($admin) ? $user->lang['PROCEED_TO_ACP'] : (($redirect === "{$phpbb_root_path}index.$phpEx" || $redirect === "index.$phpEx") ? $user->lang['RETURN_INDEX'] : $user->lang['RETURN_PAGE']);
// append/replace SID (may change during the session for AOL users)
$redirect = reapply_sid($redirect);
Danach einfügen:
Code: Alles auswählen
// set special cookie on the next page
$redirect = $redirect . '&logio=login';
Finde:
Davor einfügen:
Code: Alles auswählen
function log_login_logout($mode)
{
if ($mode != 'login' AND $mode != 'logout')
// evtl Sicherheitsmassnahmen gegen Missbrauch?
{
return false;
}
==
global $db, $user;
$username; // was ist, wenn der Username sich ändert?
$userid; // Mit der Userid kanst du den Usernamen immer finden ;)
$timestamp;
$logindatum; // dasselbe wie $timestamp
$ip;
$from_site; // das wird immer ucp.php?mode=login sein
$browser;
$hoster; // <<---- Was ist das?^^
$sql = 'INSERT INTO ' . LOGIN_LOGOUT_TABLE .
"(username, user_id, timestamp, datum, ip, from_site, browser, hoster, login_logout)
VALUES
('$username', '$userid', '$timestamp', '$logindatum', '$ip', '$from_site', '$browser', '$hoster', '$mode')";
$db->sql_query($sql);
}
Du solltest noch deine Tabellenstruktur etwas überdenken, aber ansonsten sollte das ganze so funktionieren...
An der Funktion selbst musst du nicht mehr gross was verändern... Sie ist auch schon gerüstet fürs protokollieren des ausloggens
