Sessionvariable $userdata verwenden

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

Beitrag von Arokh73 »

Noch ein kleiner Tipp für alle, die das Beispiel hier aufgreifen:
Das unserialize() funktioniert in meinem Fall nicht auf Grund irgendwerlcher Sonderzeichen. Lösen lässt sich das Problem, indem man in die Funktion vor dem (un)serialize noch ein base64_encode und base64_decode einbaut:

Code: Alles auswählen

set_svar($varname ='', $value = '')
{
global $userdata, $db;
if(!is_array($userdata['dyn_vars']))
{
$userdata['dyn_vars'] = unserialize(base64_decode($userdata['dyn_vars']));
}
if(!$varname)
{
return;
}
$userdata['dyn_vars'][$varname] = $value;
$sql = 'UPDATE ' . USERS_TABLE . ' SET dyn_vars = ' . addslashes(serialize(base64_encode($userdata['dyn_vars']))) . ' WHERE user_id = ' . $userdata['user_id'];
if(!$db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Dynamische Speicherung fehlgeschlagen', '', __LINE__, __FILE__, $sql);
}
} 
Das eliminiert die Zeichen. über die unserialize stolpert, wirkungsvoll.
error-phpbb
Mitglied
Beiträge: 26
Registriert: 22.03.2006 21:59

Beitrag von error-phpbb »

dann besteht doch aber immer noch das problem für gäste, oder?
für mich wäre es wichtig auch bzw nur für gäste sowas zu nutzen, aber da diese keine user_id haben, geht das ja so nicht.
und ich komm nich auf den trichter, wie das gehen soll.
währe für tipps sehr dankbar
Antworten

Zurück zu „phpBB 2.0: Mod-Bastelstube“