Ergebnis 1 bis 7 von 7

Thema: Fehlermeldungen durch MetaModels bei der Registrierung

  1. #1
    Contao-Nutzer
    Registriert seit
    27.01.2013.
    Beiträge
    32

    Standard Fehlermeldungen durch MetaModels bei der Registrierung

    Verwendete Komponenten:

    Contao 3.2.19 mit Composer
    metamodels/core / dev-tng / Referenz 1f4fd69b / 2015-05-05 21:56
    metamodels/bundle_all / 1.0.1
    metamodels/attribute_rating / dev-tng / Referenz 7413817a / 2015-01-30 00:22


    Hallo,

    durch Ausschlussverfahren habe ich die folgenden Fehlermeldungen auf MetaModels zurückführen können.
    Sie treten auf, wenn ein neues Mitglied über seinen E-Mail-Link seine Registrierung abschließt.

    error.log:
    Code:
    [07-May-2015 18:16:12 Europe/Berlin]
    PHP Warning: mysqli::real_escape_string(): Couldn't fetch mysqli in /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 44
    #0 [internal function]: __error(2, 'mysqli::real_es...', '/var/www/html/c...', 44, Array)
    #1 /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php(44): mysqli->real_escape_string('a:1:{s:7:"refer...')
    #2 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(331): Contao\Database\Mysqli\Statement->string_escape('a:1:{s:7:"refer...')
    #3 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(306): Contao\Database\Statement->escapeParams(Array)
    #4 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(249): Contao\Database\Statement->replaceWildcards(Array)
    #5 /var/www/html/cms/system/modules/core/classes/FrontendUser.php(95): Contao\Database\Statement->execute('a:1:{s:7:"refer...', '22')
    #6 [internal function]: Contao\FrontendUser->__destruct()
    #7 {main}
    
    [07-May-2015 18:16:12 Europe/Berlin]
    PHP Warning: mysqli::real_escape_string(): Couldn't fetch mysqli in /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 44
    #0 [internal function]: __error(2, 'mysqli::real_es...', '/var/www/html/c...', 44, Array)
    #1 /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php(44): mysqli->real_escape_string('22')
    #2 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(331): Contao\Database\Mysqli\Statement->string_escape('22')
    #3 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(306): Contao\Database\Statement->escapeParams(Array)
    #4 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(249): Contao\Database\Statement->replaceWildcards(Array)
    #5 /var/www/html/cms/system/modules/core/classes/FrontendUser.php(95): Contao\Database\Statement->execute('a:1:{s:7:"refer...', '22')
    #6 [internal function]: Contao\FrontendUser->__destruct()
    #7 {main}
    
    [07-May-2015 18:16:12 Europe/Berlin]
    PHP Warning: mysqli::query(): Couldn't fetch mysqli in /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 74
    #0 [internal function]: __error(2, 'mysqli::query()...', '/var/www/html/c...', 74, Array)
    #1 /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php(74): mysqli->query('UPDATE tl_membe...')
    #2 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(277): Contao\Database\Mysqli\Statement->execute_query()
    #3 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(250): Contao\Database\Statement->query()
    #4 /var/www/html/cms/system/modules/core/classes/FrontendUser.php(95): Contao\Database\Statement->execute('a:1:{s:7:"refer...', '22')
    #5 [internal function]: Contao\FrontendUser->__destruct()
    #6 {main}
    
    [07-May-2015 18:16:12 Europe/Berlin]
    PHP Warning: Contao\Database\Mysqli\Statement::get_error(): Couldn't fetch mysqli in /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 85
    #0 /var/www/html/cms/system/modules/core/library/Contao/Database/Mysqli/Statement.php(85): __error(2, 'Contao\Database...', '/var/www/html/c...', 85, Array)
    #1 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(106): Contao\Database\Mysqli\Statement->get_error()
    #2 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(279): Contao\Database\Statement->__get('error')
    #3 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(250): Contao\Database\Statement->query()
    #4 /var/www/html/cms/system/modules/core/classes/FrontendUser.php(95): Contao\Database\Statement->execute('a:1:{s:7:"refer...', '22')
    #5 [internal function]: Contao\FrontendUser->__destruct()
    #6 {main}
    
    [07-May-2015 18:16:12 Europe/Berlin] PHP Fatal error:  Uncaught exception 'Exception' with message 'Query error:  (UPDATE tl_member SET session='' WHERE id='')' in /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php:279
    Stack trace:
    #0 /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php(250): Contao\Database\Statement->query()
    #1 /var/www/html/cms/system/modules/core/classes/FrontendUser.php(95): Contao\Database\Statement->execute('a:1:{s:7:"refer...', '22')
    #2 [internal function]: Contao\FrontendUser->__destruct()
    #3 {main}
      thrown in /var/www/html/cms/system/modules/core/library/Contao/Database/Statement.php on line 279
    Die Bestätigungsseite der Registrierung, sowie alle Seiten die am Registrierungsverfahren beteiligt sind, verwenden keine Bestandteile von Metamodels. Eigentlich sollte MetaModels überhaupt keine Verbindung dazu haben.

    Ich habe MetaModels als Ursache dadurch ermittelt, indem ich meine Webseite zuerst im abgesicherten Modus getestet habe und dann alle verwendeten Erweiterungen in den Einstellungen deaktiviert und danach wieder einzeln aktiviert habe.
    Der Fehler tritt nur auf wenn die MetaModels-Erweiterung aktiviert ist. Das ist auch der Fall, wenn ich von allen MetaModels-Erweiterungen nur den Eintrag "[metamodels] MetaModels" aktiv lasse.

    Gibt es eine Möglichkeit, diesen Fehler zu vermeiden?

    Danke für die Hilfe.

    Martin

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Versuch mal folgendes:
    • Aus dem Backend ausloggen
    • Alle Sessions und Cookies im Browser löschen (oder zumindest für die betroffene Domain)
    • Manuell in der Datenbank folgendes ausführen:
      Code:
      UPDATE tl_member SET session=''
    (Backup nicht vergessen vorher)

  3. #3
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Die Fehlermeldung ist symptomatisch dafür, dass irgendwo der Stack der Contao Instanzen von Datenbank und Nutzer nicht in der richtigen Reihenfolge geladen werden. Wenn dann der Benutzer mit __destruct beendet wird, hat sich dann die Datenbank bereits verabschiedet.

    Eigentlich initialisiert imho MetaModels diese in der richtigen Reihenfolge (erst FrontendUser dann die Datenbank, https://github.com/MetaModels/core/b...actory.php#L81). Ob es irgendwo im MM-System noch anders aufgerufen wird, weiß ich nicht. Der Fehler ist jedenfalls eklig zu debuggen....

  4. #4
    Contao-Nutzer
    Registriert seit
    27.01.2013.
    Beiträge
    32

    Standard

    Hallo Spooky,

    das hat leider nichts gebracht. Ich nehme an, dass das Problem mit der session-Variable auch mehr ein Symptom als die Ursache darstellt.


    Hallo Webstar,

    gibt es da irgend etwas, was ich machen kann?
    Wäre ein Workaround denkbar?

  5. #5
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von mrtn Beitrag anzeigen
    Hallo Webstar,

    gibt es da irgend etwas, was ich machen kann?
    Wäre ein Workaround denkbar?
    Wenn es wirklich der Fehler ist, müsste man mal debuggen wo er verursacht wird. Ohne dies zu wissen, ist es schwierig dies einzugrenzen.

  6. #6
    Contao-Nutzer
    Registriert seit
    27.01.2013.
    Beiträge
    32

    Standard

    Angeregt durch die mögliche Ursachenbeschreibung habe ich noch einmal alle Extensions bis auf MetaModels deaktiviert und sie dann einzeln wieder aktiviert. Dadurch war die Reihenfolge der Reaktivierung diesmal anders.
    Es zeigte sich, dass der Fehler nicht mehr auftritt, wenn SyncCto deaktiviert ist. Also scheint das Zusammenspiel von SyncCto und MetaModels ein Problem zu sein.

    Ich hatte beide Extensions über den Composer installiert und verwende bei beiden die TNG-Versionen (SyncCto dev-tng / Referenz: a3996b33 / 2015-02-03 10:06). Dementsprechend hatte ich die Ratschläge über das Kombinieren der beiden Extensions beachtet, insbesondere:
    https://community.contao.org/de/show...543#post349543

    Kann mir damit jemand helfen?
    Ist das ein SyncCto- oder ein MetaModels-Problem?

  7. #7
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Auch wenn der Fehler durch MM oder Synccto ausgelöst wird, müssen diese nicht zwingend die Ursache sein. Ohne da Zugriff auf das System zu haben, ist es quasi unmöglich dies zu evaluieren.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •