Eigene Cookies nach anmeldung?

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

Re: Eigene Cookies nach anmeldung?

Beitrag von Ninos »

aber fürs ausloggen wollte ich dann in der Tabelle Login/Logout ein Logout drin haben und beim login ein Login, ist das trotzdem noch möglich? :D
Ich glaub, das hast du schon angepasst, gell?

Und wegen dem from_site, das wollte ich dann noch wegmachen, wenn das Skript fertig war, hab selber bemerkt, dass es unlogisch ist^^
Und $hoster, damit meine ich internetanbieter, muss ich wohl dann auch noch ändern :D :D :D ^^

Ach ja, leider ist die includes/constants.php Datei von mir sehr sehr sehr umbearbeitet, wie das ganze Forum eigentlich, wegen dem MOD von dsphpbb.net
Hast vielleicht schonmal was davon gehört ;)
Ich kann dir ja aber mal die Datei zeigen, vielleicht weist ja dann immer noch, wo ich das hinzfügen soll ^^
Hier die Datei zum runterladen

ich sag schonmals danke ;)
kiew
Mitglied
Beiträge: 7
Registriert: 13.04.2009 15:34

Re: Eigene Cookies nach anmeldung?

Beitrag von kiew »

piero hat geschrieben:Pflanzt doch das ganze direkt in die Funktion ein, die den User einloggt...?
Die Funktion heisst auth::login() und ist in der Datei includes/auth.php ;)

@kiew: Dir empfehl ich, wie Ninos mit Session-Variablen zu arbeiten, weil dieses Cookie kann sich jeder selbst setzen und ist dann beim index eingeloggt ;)

Und wie mach ich das dann? Hab ganz normal versucht session variablen zu definieren aber im index stehen sie dann nicht zur verfügung.

Einmal in der ucp.php:

Code: Alles auswählen

case 'login':
		if ($user->data['is_registered'])
		{
       
     
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
      
		}
     $_SESSION['user']=$_POST['username'];
     $_SESSION['login']='true';
		login_box(request_var('redirect', "index.$phpEx"));
    
	break;
und einmal in der funktion selber:

Code: Alles auswählen

// Successful session creation
				if ($result === true)
				{
   $_SESSION['user']=$_POST['username'];
     $_SESSION['login']='true';
        
In der Funktion selbst kann $_POST['username'] wohl nicht klappen, aber keine session variable steht auf dem index zur verfügung... (Man wird nach dem login auf den index weitergeleitet, eine SessionID ist in der url vorhanden.)
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: Eigene Cookies nach anmeldung?

Beitrag von piero »

Ninos hat geschrieben:aber fürs ausloggen wollte ich dann in der Tabelle Login/Logout ein Logout drin haben und beim login ein Login, ist das trotzdem noch möglich? :D
Ich glaub, das hast du schon angepasst, gell?
Ja^^

Beim ausloggen rufst du die Funktion einfach so auf:

Code: Alles auswählen

log_login_logout('logout'); 
Das macht es dir dann auch möglich, andere Aktionen zu protokollieren ;)
Ninos hat geschrieben: Ach ja, leider ist die includes/constants.php Datei von mir sehr sehr sehr umbearbeitet, wie das ganze Forum eigentlich, wegen dem MOD von dsphpbb.net
Hast vielleicht schonmal was davon gehört ;)
Also so arg ists ja nicht^^
einfach mal nach dem hier einfügen:

Code: Alles auswählen

define('NO_ID', -1); 
Ja ich kenn dsphpbb.net ... Aber al ich es das letzte mal besucht hab, hatten die nur ein premodded-Forum, und das wollte ich nicht^^ Aber thx dass du mich wieder drauf aufmerksam gemacht hast :)

@$moderator: kannst du alle Posts die nur Ninos und mich betreffen hierhin verschieben? Sonst herrscht hier ein Durcheinander für den nächsten Suchenden^^
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: Eigene Cookies nach anmeldung?

Beitrag von piero »

kiew hat geschrieben:Und wie mach ich das dann? Hab ganz normal versucht session variablen zu definieren aber im index stehen sie dann nicht zur verfügung.

In der Funktion selbst kann $_POST['username'] wohl nicht klappen, aber keine session variable steht auf dem index zur verfügung... (Man wird nach dem login auf den index weitergeleitet, eine SessionID ist in der url vorhanden.)
OK, ich geb mich geschlagen...^^
phpBB macht das ein wenig anders :/ ^^

Aber wenn du das Cookie setzt, dann verschlüssle den Inhalt, damit man nicht ohne weiteres das Cookie selbst erstellen kann...
Also zum Beispiel so:

Code: Alles auswählen

set_cookie('login', base64_encode('Irgendein...Text^^' . $user->data['username']), time()+60*60*24*70); 
Und dann bei deinen Seiten kannst du das Cookie so auslesen:

Code: Alles auswählen

$hash = 'Irgendein...Text^^';
$username = base64_decode($_COOKIE['login']);
$username = (strpos($username, $hash) === 0) ? substr($username, strlen($hash)) : false; 
Also wenn das Cookie richtig gesetzt wurde hast du den Username in $username und sonst false in $username ;)
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Eigene Cookies nach anmeldung?

Beitrag von Ninos »

solange der Moderator die ned verschiebt, schreib ichs da rein, sonst müssen wir immer rumblättern...
Also, wenn ich will, dass er das beim Logout auch durchführ, muss ich noch was hinzufügen, oder muss ich das alles noch etwas anpassen, wenn ja, wie?

Außerdem hab ich alles mal so geändert, wie dus mir gesagt hast, aber der macht leider keine Datenbankeinträge :(
An was könnte das liegen?

Danke schonmal,
Ninos
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: Eigene Cookies nach anmeldung?

Beitrag von piero »

Ninos hat geschrieben:Also, wenn ich will, dass er das beim Logout auch durchführ, muss ich noch was hinzufügen, oder muss ich das alles noch etwas anpassen, wenn ja, wie?
An der Funktion selbst musst du nichts machen...
Du must einfach in der ucp.php noch was einbauen:
Finde:

Code: Alles auswählen

    case 'logout':
        if ($user->data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user->session_id)
        { 
Danach einfügen:

Code: Alles auswählen

        log_login_logout('logout'); 
Ninos hat geschrieben:Außerdem hab ich alles mal so geändert, wie dus mir gesagt hast, aber der macht leider keine Datenbankeinträge :(
An was könnte das liegen?
Füg mal folgenden Code ans Ende deiner Funktion:

Code: Alles auswählen

print_r($sql);
$db->sql_error(); 
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Eigene Cookies nach anmeldung?

Beitrag von Ninos »

wo soll ich

Code: Alles auswählen

 
   print_r($sql);
    $db->sql_error();
  
einfügen?
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: Eigene Cookies nach anmeldung?

Beitrag von piero »

piero hat geschrieben:Füg mal folgenden Code ans Ende deiner Funktion:
Also in der Datei includes/functions.php
Finde:

Code: Alles auswählen

function log_login_logout($mode)
{
 //...
}
 
Ans Ende dieser Funktion anfügen (Also vor der schliessenden Klammer):

Code: Alles auswählen

    print_r($sql);
    $db->sql_error();  
omg ich seh grad, dass ich die zwei "==" in einer eigenen Zeile, vergessem habe zu löschen.. Die hast du rausgenommen oder?^^
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Eigene Cookies nach anmeldung?

Beitrag von Ninos »

lol, dachte ich mir doch, dass die zwei == da ned dazugehören XDD :D
ich probiers jetzt mal^^
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Eigene Cookies nach anmeldung?

Beitrag von Ninos »

ok, also, wenn ich jetzt dieses print_r und so einfüge, dann bekomme ich beim Logout diese Fehlermeldung:
SQL ERROR [ mysqli ] [DSphpBB-DB: 2.2.18]

[0]

BACKTRACE

FILE: includes/functions.php
LINE: 4100
CALL: dbal->sql_error()

FILE: ucp.php
LINE: 102
CALL: log_login_logout()
und beim login trägt er erst gar nichts in die DB ein, und beim Logout trägt er aber nur logout in der Spalte Login/logout ein...
Antworten

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