Fragen zu einem eigenen Loginhistorymod

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.
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Fragen zu einem eigenen Loginhistorymod

Beitrag von Ninos »

sers,
ich verwende die boardversion phpbb 3.04 und hätte da paar Fragen, die ich gerne geklärt hätte^^

1. ich will ein Loginhistoryskript basteln, dass er zum Biespiel die Userid und Username gleich nach dem Login in der Datenbank speichert.
Das mit dem speichern ist kein Problem, habe aber 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?

2.
Ich möchte dieses Skript gerne auch ins Adminbereich einbauen, wüsste vielleicht jemand, wie das geht, wenn ja, könnte es mir vielleicht jemand erklären?
Habe es schon versucht, indem ich in adm/style/ eine Datei reingetan hab, includes/acp auch eine und in includes/acp/infos auch eine, konnte aber im Adminbereich dann diese Datei ned auswählen, wenn ich dann ein neues Mod ins Adminbereich da einbauen wollte...

3.
ich will, dass eine Datei nur ausgeführt werden kann, wenn der User ein Admin ist, habe einfach diese paar Zeilen vor einem Skript hinzugefügt, aber nachdem das Skript ausgeführt wird, werde ich einfach so ausgeloggt, weis vielleicht diesbezüglich jemand die Lösung?
Hier die Zeilen:

Code: Alles auswählen

//Definition
define('IN_PHPBB', true);
define('ADMIN_START', true);
define('NEED_SID', true);


// Include files
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);


// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('acp/common');
$administrator=$user->data['session_admin'];


//Admincheck
if ($administrator == 0)
    {
    echo "Sie sind nicht berechtigt auf diese Datei zuzugreifen.";
    exit;
    }
else if ($administrator == 1)
    {
    hier dann mein Hauptskript
    }
 

Wäre echt super, wenn mir jemand helfen könnte :)

lg. und danke schonmals,
Ninos
Zuletzt geändert von Ninos am 05.04.2009 17:58, insgesamt 3-mal geändert.
Benutzeravatar
test_nick
Mitglied
Beiträge: 447
Registriert: 24.08.2008 18:07
Wohnort: Neuss
Kontaktdaten:

Re: hätte gerne paar Fragen geklärt :)

Beitrag von test_nick »

Ninos hat geschrieben:sers,
ich verwende die boardversion phpbb 3.04 und hätte da paar Fragen, die ich gerne geklärt hätte^^

1. ich will ein Loginhistoryskript basteln, dass er zum Biespiel die Userid und Username gleich nach dem Login in der Datenbank speichert.
Das mit dem speichern ist kein Problem, habe aber 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?

2.
Ich möchte dieses Skript gerne auch ins Adminbereich einbauen, wüsste vielleicht jemand, wie das geht, wenn ja, könnte es mir vielleicht jemand erklären?
Habe es schon versucht, indem ich in adm/style/ eine Datei reingetan hab, includes/acp auch eine und in includes/acp/infos auch eine, konnte aber im Adminbereich dann diese Datei ned auswählen, wenn ich dann ein neues Mod ins Adminbereich da einbauen wollte...

3.
ich will, dass eine Datei nur ausgeführt werden kann, wenn der User ein Admin ist, habe einfach diese paar Zeilen vor einem Skript hinzugefügt, aber nachdem das Skript ausgeführt wird, werde ich einfach so ausgeloggt, weis vielleicht diesbezüglich jemand die Lösung?
Hier die Zeilen:

Code: Alles auswählen

//Definition
define('IN_PHPBB', true);
define('ADMIN_START', true);
define('NEED_SID', true);


// Include files
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);


// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('acp/common');
$administrator=$user->data['session_admin'];


//Admincheck
if ($administrator == 0)
    {
    echo "Sie sind nicht berechtigt auf diese Datei zuzugreifen.";
    exit;
    }
else if ($administrator == 1)
    {
    hier dann mein Hauptskript
    }
  

Wäre echt super, wenn mir jemand helfen könnte :)

lg. und danke schonmals,
Ninos
Meinst du dies, Code dafür:

Code: Alles auswählen

[quote="Ninos"]sers,
ich verwende die boardversion phpbb 3.04 und hätte da paar Fragen, die ich gerne geklärt hätte^^

1. ich will ein Loginhistoryskript basteln, dass er zum Biespiel die Userid und Username gleich nach dem Login in der Datenbank speichert.
Das mit dem speichern ist kein Problem, habe aber in der Datei ucp.php nach den Zeilen
[code=PHP]	
	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?

2.
Ich möchte dieses Skript gerne auch ins Adminbereich einbauen, wüsste vielleicht jemand, wie das geht, wenn ja, könnte es mir vielleicht jemand erklären?
Habe es schon versucht, indem ich in adm/style/ eine Datei reingetan hab, includes/acp auch eine und in includes/acp/infos auch eine, konnte aber im Adminbereich dann diese Datei ned auswählen, wenn ich dann ein neues Mod ins Adminbereich da einbauen wollte...

3.
ich will, dass eine Datei nur ausgeführt werden kann, wenn der User ein Admin ist, habe einfach diese paar Zeilen vor einem Skript hinzugefügt, aber nachdem das Skript ausgeführt wird, werde ich einfach so ausgeloggt, weis vielleicht diesbezüglich jemand die Lösung?
Hier die Zeilen:

Code: Alles auswählen

//Definition
define('IN_PHPBB', true);
define('ADMIN_START', true);
define('NEED_SID', true);


// Include files
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);


// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('acp/common');
$administrator=$user->data['session_admin'];


//Admincheck
if ($administrator == 0)
	{
	echo "Sie sind nicht berechtigt auf diese Datei zuzugreifen.";
	exit;
	}
else if ($administrator == 1)
	{
	hier dann mein Hauptskript
	}

Wäre echt super, wenn mir jemand helfen könnte :)

lg. und danke schonmals,
Ninos[/quote][/code]

mfG:

test_nick
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: hätte gerne paar Fragen geklärt :)

Beitrag von Ninos »

sry, hab ausversehen php statt code als BB-Code verwendet, da ich es von nem anderen Forum so gewohnt bin^^
Hab meinen Beitrag geändert und hoffe jetzt auf bissle Hilfe :)

lg. und danke schonmals,
Ninos
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: hätte gerne paar Fragen geklärt :)

Beitrag von gn#36 »

Muss ich jetzt verstehen warum test_nick den Beitrag gleich zwei mal identisch in seinem Beitrag stehen hat?

In jedem Fall: Es gibt eine Vorlage für ACP Module: http://wiki.phpbb.com/Creating_modules

Ob ein User Admin ist kannst du auch testen mit $auth->acl_get('a_'), das ist allerdings grundsätzlich immer true wenn der User Admin ist, selbst wenn er seine Anmeldung für das ACP nicht bestätigt hat. Das würdest du mit der Einbettung in ein Modul für das ACP aber erledigen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: hätte gerne paar Fragen geklärt :)

Beitrag von Ninos »

k, hab jetzt
die vorherige $administrator variable durch $administrator=$auth->acl_get('a_'); geändert.
Leider bekomme ich immernoch die Meldung, dann ich nicht berechtigt bin, diese Datei zu verwenden, obwohl ich in der if-anweisung 0,"0" und false, oder bei der else if-anweisung 1,"1" und true verwendet hab.
wieso klappts immernoch ned, weisch des? :(
Aber danke shconmals für den Ansatz ;)
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: hätte gerne paar Fragen geklärt :)

Beitrag von Mahony »

Hallo
Dein Code sollte etwas so aussehen

Code: Alles auswählen

    // Benötigte Dateien und Variablen von phpBB 
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);


// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup();          // Sprachvariablen laden
if ($user->data['user_id'] == ANONYMOUS)
{
    login_box();
}

if ($auth->acl_get('a_') || $auth->acl_getf_global('m_'))
{
}

else
    {
    trigger_error('Sie sind nicht berechtigt, diese Seite aufzurufen!');
    die;
    } 
Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: hätte gerne paar Fragen geklärt :)

Beitrag von Ninos »

super, es klappt.
Jetzt müsste mir nur noch jemand Frage 1 beantworten, dann wäre ich glücklich^^

Super wäre es noch, wenn mir vielleicht jemand helfen könnte, den Mod ins Adminbereich einzubauen, weil ich damit iwii Probs hab und ned weis, an was das liegt :(

Aber schonmal vielen Dank :)

lg. Ninos
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: hätte gerne paar Fragen geklärt :)

Beitrag von nickvergessen »

Code: Alles auswählen

$user->setup('ucp');
$user->setup('staemme');
geht übrigens nicht.

Code: Alles auswählen

$user->setup('ucp');
$user->add_lang('staemme');
Zu dem Code von Mahony:

Code: Alles auswählen

    trigger_error('Sie sind nicht berechtigt, diese Seite aufzurufen!');
    die;
Nach trigger_error ist Ende, das die; also überflüssig
kein Support per PN
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: hätte gerne paar Fragen geklärt :)

Beitrag von Mahony »

Hallo
nickvergessen hat geschrieben:Nach trigger_error ist Ende, das die; also überflüssig
Ja, das ist richtig. :oops:
Man könnte übrigens anstelle von

Code: Alles auswählen

{
    trigger_error('Sie sind nicht berechtigt, diese Seite aufzurufen!');
}
auch

Code: Alles auswählen

{
    trigger_error('NOT_AUTHORIZED');
}
verwenden


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: hätte gerne paar Fragen geklärt :)

Beitrag von Ninos »

nickvergessen hat geschrieben:

Code: Alles auswählen

$user->setup('ucp');
$user->setup('staemme');
geht übrigens nicht.

Code: Alles auswählen

$user->setup('ucp');
$user->add_lang('staemme');
Zu dem Code von Mahony:

Code: Alles auswählen

    trigger_error('Sie sind nicht berechtigt, diese Seite aufzurufen!');
    die;
Nach trigger_error ist Ende, das die; also überflüssig
Die Variablen stimmen schon, aber der aktualisiert ned die Sesson-id.
Oder wie kann ich gleich nach dem Login die Sesson aktualisieren lassen, damit wie Variablen wieder gehen?
Weil beim Logout mach ich das genauso, also ein DB Eintrag und die Sessonabfrage, und da nimmt er die richtige Sesson...
Vielleicht hab ich ja den DB Eintrag ect. an der falschen Stelle platziert, kann das sein? :(

lg. Ninos
Antworten

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