Sesson nach Login gleich aktualisieren und verwenden

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Ninos »

sers,
ich verwende die Boardversion phpbb 3.04 und hätte da gerne ne Frage geklärt :)^^

Ich will ein Loginhistoryskript basteln, das zum Biespiel die Userid und Username gleich nach dem Login in der Datenbank speichert.
Das mit dem speichern ist kein Problem, habe einfach in der Datei ucp.php nach den Zeilen

Code: Alles auswählen

    
    case 'login':
        if ($user->data['is_registered'])
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }
  
paar Befehle hinzugefügt.
Am Anfang des Skriptes steht noch das dran:

Code: Alles auswählen

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');
$user->setup('staemme');
$userid=$user->data['user_id'];
$username=$user->data['username'];
  
Und in der DB will ich §userid und §username speichern.
Das Problem aber ist, dass er die als Anomymous und 1, also die Gastwerte speichert.
Was kann ich tun?
Hab auch schon versucht die Sessonabfrage kurz vor dem Eintragen der Daten in die Datenbank einzubauen, brachte aber leider auch nichts :(
Könnte mir diesbezüglich vielleicht jemand helfen?

Wäre sehr nett, wenn mir jemand helfen könnte.

lg. und danke schonmals,
Ninos
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Pyramide »

Ninos hat geschrieben:habe einfach in der Datei ucp.php nach den Zeilen [...] paar Befehle hinzugefügt.
Interessant wäre jetzt zu wissen, wie diese "paar Befehle" aussehen, ansonsten kann man schlecht feststellen, wo du den Fehler gemacht hast.
KB:knigge
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Ninos »

mom^^

Code: Alles auswählen

    case 'login':
        if ($user->data['is_registered'])
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        //Verbindung zur Datenbank
        include ('config.php');
        $verbindung = mysql_connect("$dbhost","$dbuser","$dbpasswd")
            or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
        mysql_select_db("$dbname")
            or die ("Die Datenbank existiert nicht.");
            
        //Hinzufügen der Daten in die Datenbank
        $eintrag = "INSERT INTO ".$table_prefix."login_logouthistory(username, user_id, timestamp, datum, ip, from_site, browser, hoster, login_logout)
        VALUES
        ('$username', '$userid', '$timestamp', '$logindatum', '$ip', '$from_site', '$browser', '$hoster', 'Login')";
        $eintragen = mysql_query($eintrag);
        
        //Verbindung schließen
        mysql_close($verbindung);
        
        login_box(request_var('redirect', "index.$phpEx"));
    break;
 
Da ist alles richtig, zumindest beim eintragen in die DB, nur werden in der $userid und $username die Gastdaten gespeichert...
coolsoft
Mitglied
Beiträge: 433
Registriert: 29.08.2005 21:14
Wohnort: Irgendwo im Nirgendwo

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von coolsoft »

das in der ucp.php????
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Ninos »

jepp
per include hatte es Probleme, da hat der die nie iengetragen, außer ich hab die Seite dann wieder aktualisiert...
Wieso?
gibt es auch noch ne ander Möglichkeit das gleich nach dem Login zu machen in ner anderen Datei?
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Ninos »

weis niemand, woran das liegtoder wie ich das Problem beheben kann? :(
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Dr.Death »

Hi,

da ist ein logischer Fehler drin....

Code: Alles auswählen

        if ($user->data['is_registered'])
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }
Übersetzt:

Wenn der User registriert ( also eingeloggt ist ), führe ihn auf die index.php

Du hast nach dieser IF Abfrage Deinen Code eingebaut..... aber bis dahin kam der eingloggte User ja nie....
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Ninos »

wenn ich mein DB Eintrag aber in die ifanweisung mit einbaue kurz vor

Code: Alles auswählen

redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
 
dann trägt er das erst gar ned in die Datenbank ein, also fürt meine Abfrage erst gar ned durch :(

hast du noch ne Idee parat? :)

und wenn ich mich nicht irre, ist diese Irranweisung nur eine Abfrage, ob der User schon angemeldet ist, wenn ja, dann wird er zum Index weitergeleitet, ansonsten wird das Skript durchgeführt, oder irre ich mich da etwa?

lg. und danke schonmal,
Ninos
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von djchrisnet »

functions.php function login_box() (ab zeile 2456)

nach der zeile

Code: Alles auswählen

// The result parameter is always an array, holding the relevant information...
		if ($result['status'] == LOGIN_SUCCESS)
		{
ist der user eingeloggt.

$username beinhaltet den usernamen

du kannst aber auch $user->data nutzen, da die session durch $auth->login() bereits erstellt ist

und dann bitte den vorhandenen db-link nutzen $db->query();
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Sesson nach Login gleich aktualisieren und verwenden

Beitrag von Ninos »

klappt super, danke :)

lg. Ninos
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“