Ergebnis 1 bis 7 von 7

Thema: Fehlermeldung nach Installation von fp_setPublicFields

  1. #1
    Contao-Fan Avatar von fusch
    Registriert seit
    25.03.2012.
    Ort
    München
    Beiträge
    498
    Contao-Projekt unterstützen

    Support Contao

    Frage Fehlermeldung nach Installation von fp_setPublicFields

    Liebe Community,

    da ich mit diesem Problem schon länger beschäftigt bin und ich keinen passenden Beitrag gefunden habe, hier meine Frage:

    Ich habe die Erweiterung fp_setPublicFields installiert (Contao 2.11.4), weil ich die Mitgliederliste auf einer Seite ausgeben möchte, ohne zu warten, wann ein Benutzer seine Felder für die Öffentlichkeit freigibt.

    Nach der Installation passe ich noch (wie im ER beschrieben) die config.php an und bekomme dann folgende Fehlermeldungen:

    Warning: Invalid argument supplied for foreach() in /share/MD0_DATA/Qweb/intranet/system/libraries/Database.php on line 729

    #0 /share/MD0_DATA/Qweb/intranet/system/libraries/Database.php(729): __error(2, 'Invalid argumen...', '/share/MD0_DATA...', 729, Array)
    #1 /share/MD0_DATA/Qweb/intranet/system/libraries/Database.php(559): Database_Statement->escapeParams('publicFields')
    #2 /share/MD0_DATA/Qweb/intranet/system/modules/registrationPublicFields/registrationPublicFields.php(41): Database_Statement->set('publicFields', Array)
    #3 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(457): registrationPublicFields->setPublicFields(24, Array, Object(ModuleRegistrationExtended))
    #4 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(290): ModuleRegistration->createNewUser(Array)
    #5 /share/MD0_DATA/Qweb/intranet/system/modules/xtmembers/ModuleRegistrationExtended.php(65): ModuleRegistration->compile()
    #6 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/Module.php(140): ModuleRegistrationExtended->compile()
    #7 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(77): Module->generate()
    #8 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ContentModule.php(72): ModuleRegistration->generate()
    #9 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(511): ContentModule->generate()
    #10 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ModuleArticle.php(194): Controller->getContentElement('192')
    #11 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/Module.php(140): ModuleArticle->compile()
    #12 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ModuleArticle.php(71): Module->generate()
    #13 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(443): ModuleArticle->generate(false)
    #14 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(307): Controller->getArticle('81', false, false, 'main')
    #15 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/PageRegular.php(100): Controller->getFrontendModule('0', 'main')
    #16 /share/MD0_DATA/Qweb/intranet/index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
    #17 /share/MD0_DATA/Qweb/intranet/index.php(401): Index->run()
    #18 {main}


    Warning: Invalid argument supplied for foreach() in /share/MD0_DATA/Qweb/intranet/system/libraries/Database.php on line 574

    #0 /share/MD0_DATA/Qweb/intranet/system/libraries/Database.php(574): __error(2, 'Invalid argumen...', '/share/MD0_DATA...', 574, Array)
    #1 /share/MD0_DATA/Qweb/intranet/system/modules/registrationPublicFields/registrationPublicFields.php(41): Database_Statement->set('publicFields', Array)
    #2 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(457): registrationPublicFields->setPublicFields(24, Array, Object(ModuleRegistrationExtended))
    #3 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(290): ModuleRegistration->createNewUser(Array)
    #4 /share/MD0_DATA/Qweb/intranet/system/modules/xtmembers/ModuleRegistrationExtended.php(65): ModuleRegistration->compile()
    #5 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/Module.php(140): ModuleRegistrationExtended->compile()
    #6 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(77): Module->generate()
    #7 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ContentModule.php(72): ModuleRegistration->generate()
    #8 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(511): ContentModule->generate()
    #9 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ModuleArticle.php(194): Controller->getContentElement('192')
    #10 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/Module.php(140): ModuleArticle->compile()
    #11 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ModuleArticle.php(71): Module->generate()
    #12 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(443): ModuleArticle->generate(false)
    #13 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(307): Controller->getArticle('81', false, false, 'main')
    #14 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/PageRegular.php(100): Controller->getFrontendModule('0', 'main')
    #15 /share/MD0_DATA/Qweb/intranet/index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
    #16 /share/MD0_DATA/Qweb/intranet/index.php(401): Index->run()
    #17 {main}


    Fatal error: Uncaught exception Exception with message Query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=24' at line 1 (UPDATE tl_memeber SET WHERE id=24) thrown in /share/MD0_DATA/Qweb/intranet/system/libraries/Database.php on line 686

    #0 /share/MD0_DATA/Qweb/intranet/system/libraries/Database.php(633): Database_Statement->query()
    #1 /share/MD0_DATA/Qweb/intranet/system/modules/registrationPublicFields/registrationPublicFields.php(41): Database_Statement->execute(24)
    #2 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(457): registrationPublicFields->setPublicFields(24, Array, Object(ModuleRegistrationExtended))
    #3 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(290): ModuleRegistration->createNewUser(Array)
    #4 /share/MD0_DATA/Qweb/intranet/system/modules/xtmembers/ModuleRegistrationExtended.php(65): ModuleRegistration->compile()
    #5 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/Module.php(140): ModuleRegistrationExtended->compile()
    #6 /share/MD0_DATA/Qweb/intranet/system/modules/registration/ModuleRegistration.php(77): Module->generate()
    #7 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ContentModule.php(72): ModuleRegistration->generate()
    #8 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(511): ContentModule->generate()
    #9 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ModuleArticle.php(194): Controller->getContentElement('192')
    #10 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/Module.php(140): ModuleArticle->compile()
    #11 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/ModuleArticle.php(71): Module->generate()
    #12 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(443): ModuleArticle->generate(false)
    #13 /share/MD0_DATA/Qweb/intranet/system/libraries/Controller.php(307): Controller->getArticle('81', false, false, 'main')
    #14 /share/MD0_DATA/Qweb/intranet/system/modules/frontend/PageRegular.php(100): Controller->getFrontendModule('0', 'main')
    #15 /share/MD0_DATA/Qweb/intranet/index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
    #16 /share/MD0_DATA/Qweb/intranet/index.php(401): Index->run()
    #17 {main}

    Da meine PHP/SQL-Kenntnisse nicht erwähnenswert sind, hoffe ich auf einen Tipp aus dem Forum. Darum wäre ich wirklich sehr dankbar!

    Herzliche Grüße,
    fusch

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    hierbei handelt es sich um einen kleinen Fehler in der fp_publicFields Erweiterung.

    http://www.contao-docs.org/docs/fp_s...hp_source.html
    Zeile 41

    statt

    $this->Database->prepare("UPDATE tl_memeber %s WHERE id=?")->set('publicFields',$GLOBALS['registrationPublicFields']['fields'])->execute($intId);

    müsste dort eigentlich stehen

    $this->Database->prepare("UPDATE tl_member %s WHERE id=?")->set('publicFields',$GLOBALS['registrationPublicFields']['fields'])->execute($intId);

    Schreib einfach kurz den Entwickler dieser Erweiterung an und teile ihm diesen Fehler mit. Du kannst ihn zwischenzeitlich auch einfach selbst ändern.

    /TL_ROOT/system/modules/registrationPublicFields/registrationPublicFields.php || Zeile 41

    Müsste sofort funktionieren :-)
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Contao-Fan Avatar von fusch
    Registriert seit
    25.03.2012.
    Ort
    München
    Beiträge
    498
    Contao-Projekt unterstützen

    Support Contao

    Lächelndes Gesicht Tausend Dank

    Hallo the_scrat,

    tausend Dank für Deine Antwort, das werde ich gleich probieren und auch den Entwickler benachrichtigen.

    Einen schönen Tag noch und viele Grüße,
    fusch

  4. #4
    Contao-Fan Avatar von fusch
    Registriert seit
    25.03.2012.
    Ort
    München
    Beiträge
    498
    Contao-Projekt unterstützen

    Support Contao

    Standard ... hat leider mein Problem nicht gelöst

    Falls jemand anderes hier nach der Lösung des Problems suchen sollte: allein der Tippfehler war es nicht, mein Problem ist immer noch nicht gelöst. Ich hab es aufgegeben und die Erweiterung deinstalliert.

    Viele Grüße,
    fusch

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Standard

    Ja, da Teil ist wohl Buggy. Die Set Methode verlangt ein Assoziatives Array, es werden aber 2 Parameter übergeben. Allein das ist schon merkwürdig.
    https://github.com/contao/core/blob/...abase.php#L548

    Da das nun nicht richtig zusammengebaut wird, kommt es zum SQL Fehler
    Code:
    UPDATE tl_member SET WHERE id=24;  // hier fehlt der ganze Inhalt von SET
    wegen:
    Code:
    Database_Statement->set('publicFields', Array) // Fehler in den Parametern
    Database_Statement->escapeParams('publicFields') // publicFields ist kein Array
    ...
     Invalid argument supplied for foreach()  // denn das erwartet ein Array
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    Hallo,

    das Problem sollte mit der jetzt aktuellen Version im Repository behoben sein.

    Sorry für die Unannehmlichkeiten.

    Gruß,
    Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  7. #7
    Contao-Nutzer
    Registriert seit
    08.11.2009.
    Beiträge
    191

    Standard

    Hallo Felix,
    ich weiß, die Erweiterung ist schon älter, aber denkst du wäre eine Anpassung an Contao 3.5 möglich?

    Ich erhalte folgende Fehlermeldung nachdem das Reg.Formular abgesendet wurde.
    Registrierung wird durchgeführt, aber die öffentlichen Felder bleiben deaktiviert.

    PHP-Code:
    Warningin_array() expects parameter 2 to be array, null given in system/modules/core/library/Contao/System.php on line 140 
    #0 [internal function]: __error(2, 'in_array() expe...', '/www/htdocs/v12...', 140, Array) 
    #1 system/modules/core/library/Contao/System.php(140): in_array('getInstance', NULL) 
    #2 system/modules/core/modules/ModuleRegistration.php(457): Contao\System->import('registrationPub...') 
    #3 system/modules/core/modules/ModuleRegistration.php(318): Contao\ModuleRegistration->createNewUser(Array) 
    #4 system/modules/xtmembers/modules/ModuleRegistrationExtended.php(38): Contao\ModuleRegistration->compile() 
    #5 system/modules/core/modules/Module.php(282): Contao\ModuleRegistrationExtended->compile() 
    #6 system/modules/core/modules/ModuleRegistration.php(58): Contao\Module->generate() 
    #7 system/modules/core/elements/ContentModule.php(59): Contao\ModuleRegistration->generate() 
    #8 system/modules/core/library/Contao/Controller.php(476): Contao\ContentModule->generate() 
    #9 system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao\ContentModel), 'main') 
    #10 system/modules/core/modules/Module.php(282): Contao\ModuleArticle->compile() 
    #11 system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate() 
    #12 system/modules/core/library/Contao/Controller.php(409): Contao\ModuleArticle->generate(false) 
    #13 system/modules/core/library/Contao/Controller.php(269): Contao\Controller::getArticle(Object(Contao\ArticleModel), false, false, 'main') 
    #14 system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'main') 
    #15 system/modules/core/controllers/FrontendIndex.php(267): Contao\PageRegular->generate(Object(Contao\PageModel), true) 
    #16 index.php(20): Contao\FrontendIndex->run() 
    #17 {main} 

    Fatal error: Class 'registrationPublicFields' not found in /www/htdocs/v12.../system/modules/core/library/Contao/System.php on line 140 
    Vielen Dank für die Info!

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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