Beiträge von Cluster87

    Hi,
    habe es jetzt mit einem Codeinsert kurz nach dem Laden eines users in usertable.php gelöst.


    Code
    foreach ( $arr as $kk => $v ) {
                $this->$kk        =    $v;
                if (trim($kk) === 'params' && isset($v) && trim($v) !== '') {
                    $this->$kk = json_decode($this->$kk);
                }
            }


    params ist ja im JSON Format gespeichert. In UserTable wird der user dann geladen, aber es wird nie ein json_decode ausgeführt. Beim Speichern wird dann wieder das noch nicht decodede encoded.
    Warum es nicht decoded wird beim Laden, weiß ich nicht. Eventuell ein Bug oder ein anderer Grund...
    Jedenfalls scheint (bisher) so alles zu funktionieren! Vielen Dank für eure Mühe.

    Ja das habe ich probiert, hat aber leider nichts gebracht.
    Das [0] {"auth_type":"LDAP","auth_domain":"site.net"} sollte wohl eigentlich gar nicht da sein.
    Es gibt nämlich neben 0 index noch auth_type index mit Wert LDAP und auth_domain mit der site (wie es sein sollte)
    Daher kommt beim json encode auch das \\\"0\\\":\\\" raus.
    Ich werde morgen nochmal versuchen herauszufinden, woher es kommt.
    Es passiert aber https://github.com/joomla/volu…ries/joomla/user/user.php zwischen Zeile 665 und 679

    Hallo,
    danke für deine Antwort. Das scheint ein ähnliches Problem zu sein.
    Was ich bisher debuggen konnte:
    In user.php wird in der save Funktion $this->params = (string) $this->_params;
    aufgerufen.
    durch das Umwandeln des Strings wird hier ein json encode in Json.php objectToString aufgerufen.


    _params ist ein Registry Type, [0] hat {"auth_type":"LDAP","auth_domain":"site.net"}

    Hallo zusammen,


    Ich benutze joomla 3.6.5, CommunityBuilder 2.1.2 und JMapMyLDAP. Wenn ein Benuzer sein CB Profil verändert (Frontend) und speichert, funktioniert es zwar zunächst, nach einigen malen jedoch nicht mehr.
    Das Problem ist, dass die _users Tabelle zugemüllt wird. Konkret Spalte params. Nach dem ersten speichern sieht die Spalte so aus:
    {"auth_type":"LDAP","auth_domain":"site.net"}


    Dann so: {"auth_type":"LDAP","auth_domain":"site.net","0":"{\"auth_type\":\"LDAP\",\"auth_domain\":\"site.net\"}"}


    und nach ein paar mal mehr so (stark gekürzt):
    "{"auth_type":"LDAP","auth_domain":"site.net","0":"{\"auth_type\":\"LDAP\",\"auth_domain\":\"site.net\",\"0\":\"{\\\"auth_type\\\":\\\"LDAP\\\",\\\"auth_domain\\\":\\\"site.net\\\",\\\"0\\\":\\\"{\\\\\\\"auth_type\\\\\\\":\\\\\\\"LDAP\\\\\\\",\\\\\\\"auth_domain\\\\\\\":\\\\\\\"site.net\\\\\\\",\\\\\\\"0\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"auth_type\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"LDAP\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"auth_domain\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"site.net\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"auth_type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"


    Und nach einiger Zeit ist der Speicher voll, der Nutzer kann sein Profil nicht mehr editieren und ich muss ihn löschen.
    Hätte jemand eine Idee warum das System die params Spalte zumüllt?