Verfasst: 09.04.2008 14:05
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:
Das eliminiert die Zeichen. über die unserialize stolpert, wirkungsvoll.
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);
}
}