Seite 1 von 1

Hinzufügen von temporären Session-Variablen

Verfasst: 21.10.2009 12:15
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.

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

Verfasst: 21.10.2009 14:02
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

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

Verfasst: 21.10.2009 17:16
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.

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

Verfasst: 22.10.2009 09:36
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)

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

Verfasst: 22.10.2009 10:37
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.