Ist eigendlich gar nicht so schwer zu verstehen:
Zunächst wird erst einmal geprüft ob der betreffende User überhaupt noch eingelogged ist bzw ob die User-ID nicht leer ist:
$this->bbcode_second_pass_code('', 'if ($session[loggedin] && $session[user][acctid]!=""){')
dann werden Felder in $session['user'] welche ein Array beinhalten serialisiert, d.h. es wird aus diesem Array ein String generiert der somit dann auch in ein Feld der Datenbank geschrieben werden kann:
$this->bbcode_second_pass_code('', ' $session[user][allowednavs]=serialize($session[allowednavs]);
$session[user][bufflist]=serialize($session[bufflist]);
if (is_array($session[user][prefs])) $session[user][prefs]=serialize($session[user][prefs]);
if (is_array($session[user][dragonpoints])) $session[user][dragonpoints]=serialize($session[user][dragonpoints]);')
danach wird ein String gebaut der alle Elemente mit den dazugehörigen Werten aus eben diesem $session['user'] Array enthält:
$this->bbcode_second_pass_code('', ' $sql="UPDATE accounts SET ";
reset($session[user]);
while(list($key,$val)=each($session[user])){
if (is_array($val)){
$sql.="$key='".addslashes(serialize($val))."', ";
}else{
$sql.="$key='".addslashes($val)."', ";
}
}
$sql = substr($sql,0,strlen($sql)-2);
$sql.=" WHERE acctid = ".$session[user][acctid];')
Uns dieser String wird dann an die MySQL-Datebank geschickt um alle Felder in der Tabelle accounts zu aktualisieren:
$this->bbcode_second_pass_code('', 'db_query($sql);')
wenn du wirklich eine derartige Funktion selbst schreiben möchtest wirst du dich wohl näher mit der Syntax von PHP und insbesondere mit den SQL-Abfragen auseinander setzen müssen. Also kann ich dir nur Empfehlen einschlägige Dokus zu PHP und MySQL zu studieren denn sonst wird das nichts.
