Hinzufügen von temporären Session-Variablen

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
Fantasyelf
Mitglied
Beiträge: 5
Registriert: 21.10.2009 11:39

Hinzufügen von temporären Session-Variablen

Beitrag von Fantasyelf »

Hallo,

ich verwende das PHPBB3 3.0.5. Da das aber für meine Zwecke nicht ausreicht, habe ich noch ein paar Seiten dazu programmiert, wo ich mit folgendem Code auf die Sessiondaten zugreife.

Code: Alles auswählen

define('IN_PHPBB', true);
define('IN_CRON', true);
define('PHPBB_ROOT_PATH', '../forum/');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(PHPBB_ROOT_PATH.'common.'.$phpEx);

$user->session_begin();
$auth->acl($user->data); //Userdaten holen
$user->setup(); //Uservariablen initialisieren
Nun würde ich gerne ein paar Sessionvariablen hinzufügen, die nicht immer benötigt werden. Das habe ich erstmal so gelöst.

Code: Alles auswählen

$user->data['filter1']=$_POST['filter1'];
Aber nach einem Reload sind die Variablen nicht mehr verfügbar. Das liegt wahrscheinlich an dem Code ganz oben.
Ich möchte nun aber nicht für jede temporäre Variable eine Spalte in der USER-Tabelle anlegen. Gibt es noch eine andere Möglichkeit?

Die Suche habe ich auch schon bemüht, aber nur was für's PHPBB2 gefunden.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Hinzufügen von temporären Session-Variablen

Beitrag von Dr.Death »

Hallo,

direkt ist dies nicht möglich, da bei jedem Reload die DAten aus der Datenbank gezogen werden.

Versuche es doch mit "Cookies" --> http://www.phpbb.com/community/viewtopi ... #p10136815
Fantasyelf
Mitglied
Beiträge: 5
Registriert: 21.10.2009 11:39

Re: Hinzufügen von temporären Session-Variablen

Beitrag von Fantasyelf »

Ok, danke für Deine Antwort.

Ich habe das jetzt mal probiert, aber der Cookie wird nicht erstellt.

Code: Alles auswählen

if ($_POST['button'] == "Filtern") // feststellen, ob Formular abgeschickt
{
	$user->set_cookie('filter',$_POST['filter1'],time()+3600); // Cookie erstellen
	...
}
Ich habe das mit dem "Web Developer" überprüft, der Cookie existiert nicht. Welche Codezeile fehlt noch?

Edit: Auf einmal existiert der Cookie. Jetzt muß ich bloß noch rausbekommen, wie ich auf ihn zugreife. Da wird es bestimmt auch eine "$user->FUNKTION" geben.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Hinzufügen von temporären Session-Variablen

Beitrag von Dr.Death »

Vielleicht so:

$filter = request_var($config['cookie_name'] . '_filter', 0, false, true);


Die genaue Funktion von request_var(); findest du in der Datei includes/functions.php

Code: Alles auswählen

/**
* request_var
*
* Used to get passed variable
*/
function request_var($var_name, $default, $multibyte = false, $cookie = false)
Fantasyelf
Mitglied
Beiträge: 5
Registriert: 21.10.2009 11:39

Re: Hinzufügen von temporären Session-Variablen

Beitrag von Fantasyelf »

Ok, danke. Ich hatte erstmal folgendes genommen:

Code: Alles auswählen

$filter=$_COOKIE[$config['cookie_name'].'_filter'];
Aber Deine vorgeschlagene Variante ist wahrscheinlich professioneller. Ich werde es mal damit probieren.

Edit: Habe es mal getestet, aber bei Deiner Variante wird immer der default-Wert zurückgegeben. Ich werde es wohl bei der ersten Variante lassen.
Antworten

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