Leeres Registrierung Formular führt zu 'fatal error'

Hallo werte Community, folgendes Verhalten ist bei meiner Shopware 4.0.6 (Rev. 7316) (=LIVE) auf einem Hetzner Webhosting Level 9 festzustellen: Der Fehler tritt auf, wenn bei dem Formular zur Registrierung von Neukunden alle (oder noch nicht näher bestimmte einige ausgewählte) Felder leer gelassen werden. (…/register/saveRegister) Fatal error: Cannot use string offset as an array in /usr/www/users/swissmk/swissmobilia-parts.de/engine/Library/Smarty/sysplugins/smarty\_internal\_templatecompilerbase.php on line 306 Unter einer Subdomain test.* habe ich eine native 4.0.6 (Rev. 7316) (=Native) Shopware installiert - selber Fehler. Ferner habe ich eine Spiegelung des LIVE als auch Native Shops lokal auf einer Ubuntu 12.04 Maschine unter apache2 konfiguriert - da ist kein Fehler bei dem o.g. Test. Nun habe ich lokal nicht 1:1 die selben PHP/MySQL/etc… Versionen - diese sehen wie folgt aus: Sw version-live version-local mysql 5.1.66  5.5.29 php 5.3.24  5.3.10 curl 7.21.0  7.22.0 gd 2.0.34  2.0.0 Ferner habe ich lokal keinen IONCUBE Loader installiert … aber ich denke, damit wird der Fehler nichts zu tun haben. Ich habe bereits den Hetzner Support angeschrieben und dieser hat mir nachfolgende Antwort geschrieben: [quote]Fatal error: Cannot use string offset as an array in /usr/www/users/swissmk/swissmobilia-parts.de/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 306 Betroffene Zeile : if (!$this->smarty->registered_plugins[$plugin_type][$tag][1]) { d.h. $this->smarty->registered_plugins[$plugin_type] stellt einen String statt dem erwarteten Array dar, was den Fehler triggert. Ein var_dump() auf $this->smarty->registered_plugins ergibt an der Stelle ‘array(0) { }’ , d.h. die Variable sollte eigtl ein leeres Array darstellen. Allerdings liefert ‘if (isset($this->smarty->registered_plugins[$plugin_type][$tag])) {’ in Zeile 295 darüber offenbar true, was theoretisch nicht sein dürfte, wenn der var_dump stimmt. Laut Backtrace wird gerade der Template Baustein “MinPassword” bearbeitet: #0 Smarty_Internal_TemplateCompilerBase->compileTag(config, Array ([0] => Array ([name] => “MinPassword”))) called at [/usr/www/users/swissmk/swissmobilia-parts.de/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php:2388] #1 Smarty_Internal_Templateparser->yy_r36() called at [/usr/www/users/swissmk/swissmobilia-parts.de/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php:3101] #2 Smarty_Internal_Templateparser->yy_reduce(36) called at [/usr/www/users/swissmk/swissmobilia-parts.de/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php:3201] #3 Smarty_Internal_Templateparser->doParse(10, ) called at [/usr/www/users/swissmk/swissmobilia-parts.de/engine/Library/Smarty/sysplugins/smarty_internal_smartytemplatecompiler.php:105] #4 Smarty_Internal_SmartyTemplateCompiler->doCompile(Bitte wählen Sie ein Passwort welches aus mindestens {config name=“MinPassword”} Zeichen besteht.) called at [/usr/www/users/swissmk/swissmobilia-parts.de/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:192] Unsere Möglichkeiten, den PHP Quellcode weiter zu debuggen sind leider begrenzt, daher können wir hier dem Ganzen nicht weiter nachgehen. Vermutlich wäre eine Anfrage bei Shopware hilfreich, ob dieses Problem mit neueren PHP Versionen bekannt ist - evtl. handelt es sich hier tatsächlich um einen Bug, der sich in die PHP 5.3er Reihe eingeschlichen hat. Falls Ihre Shopware Installation mit PHP 5.2 oder 5.4 läuft, wäre es sicherlich einen Versuch wert, diese Versionen auf den Bug zu testen.[/quote] Tja :wtf: Also Frage lautet: kann mir hier jemand weiterhelfen? Vielen Dank! Mfg AR **** EDIT2: EDIT wurde entfernt

*push* kann denn wirklich niemand helfen? Kann doch nicht sein, dass ich der einizge bin, der Hetzner als Hoster verwendet bzw. dieses Problem habe.

Ich habe den selben Fehler :frowning:

Habe mir dieses PLUGIN installiert, seit dem ist der Fehler weg :slight_smile:

[quote=„kreativ-entspannen-shop“]Habe mir dieses PLUGIN installiert, seit dem ist der Fehler weg :-)[/quote] Danke für diesen wertvollen Hinweis, aber nun kann ich doch tatsächlich das Plugin nicht installieren. Wenn ich es über den Community-Store abwicklen will, erscheint folgende Meldung bei Abschluss: Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'userID' cannot be null in Vendor/Zend/library/Zend/Db/Statement/Pdo.php on line 250 Stack trace: #0 Vendor/Zend/library/Zend/Db/Statement.php(300): Zend\_Db\_Statement\_Pdo-\>\_execute(Array) #1 Vendor/Zend/library/Zend/Db/Adapter/Abstract.php(468): Zend\_Db\_Statement-\>execute(Array) #2 Vendor/Zend/library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend\_Db\_Adapter\_Abstract-\>query('????INSERT INTO...', Array) #3 Enlight/Components/Adodb.php(46): Zend\_Db\_Adapter\_Pdo\_Abstract-\>query('????INSERT INTO...', Array) #4 engine/core/class/sOrder.php(1040): Enlight\_Components\_Adodb-\>Execute('????INSERT INTO...', Array) #5 engine/core/class/sOrder.php(819): sOrder-\>sSaveBillingAddress(Array, '81323') #6 Shopware/Proxies/sOrderProxy.php(6): sOrder-\>sSaveOrder() #7 Enlight/Hook/HookManager.php(104): Shopware\_Proxies\_sOrderProxy-\>excuteParent(Array, Array) #8 Shopware/Proxies/sOrderProxy.php(23): Enlight\_Hook\_HookManager-\>executeHooks('sSaveOrder', Array) #9 Shopware/Controllers/Frontend/Checkout.php(400): Shopware\_Proxies\_sOrderProxy-\>sSaveOrder(Object(Enlight\_Hook\_HookArgs)) #10 Shopware/Controllers/Frontend/Checkout.php(126): Shopware\_Controllers\_Frontend\_Checkout-\>saveOrder() #11 Shopware/Proxies/ShopwareControllersFrontendCheckoutProxy.php(6): Shopware\_Controllers\_Frontend\_Checkout-\>finishAction() #12 Shopware/Plugins/Local/Core/ShopwareIDAdapter/Bootstrap.php(684): Shopware\_Proxies\_ShopwareControllersFrontendCheckoutProxy-\>excuteParent() #13 Enlight/Hook/HookHandler.php(104): Shopware\_Plugins\_Core\_ShopwareIDAdapter\_Bootstrap::onCheckoutFinishAction(Array, Array) #14 Enlight/Hook/HookManager.php(99): Enlight\_Hook\_HookHandler-\>execute('finishAction', Array) #15 Shopware/Proxies/ShopwareControllersFrontendCheckoutProxy.php(47): Enlight\_Hook\_HookManager-\>executeHooks(Object(Enlight\_Hook\_HookArgs)) #16 Enlight/Controller/Action.php(55): Shopware\_Proxies\_ShopwareControllersFrontendCheckoutProxy-\>finishAction('Shopware\_Plugin...', Object(Enlight\_Hook\_HookArgs)) #17 Enlight/Controller/Dispatcher/DispatcherDefault.php(329): Enlight\_Controller\_Action-\>dispatch(Object(Enlight\_Hook\_HookArgs)) #18 Enlight/Controller/Front.php(88): Enlight\_Controller\_Dispatcher\_DispatcherDefault-\>dispatch(Object(Enlight\_Hook\_HookArgs)) #19 Shopware/Bootstrap.php(21): Enlight\_Controller\_Front-\>dispatch() #20 Enlight/Application.php(69): Shopware\_Bootstrap-\>run('finishAction') #21 shopware.php(6): Enlight\_Application-\>run(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #22 {main} Wenn ich es über das Backend installieren will, sagt es nur „Unbekannter Plugin Fehler“ als kleine Meldung oben rechts. Das ist doch wirklich zum Mäuse melken…

Hallo, ich habe das gleiche Problem und nutze auch Hetzner. Habt Ihr eine Lösung gefunden? Mit freundlichen Grüßen Kevin M.

Hallo, leider muss ich sagen: nein. Meine Untersuchungen deuten darauf hin, dass es etwas mit den Versionen der Hetzner Webserver zu tun haben muss, da der selbe Code auf meiner lokalen Ubuntu Maschine keine Probleme verursacht (wollte die „PHP ./config“ lokal nachbauen und dann testen, fehlt leider die Zeit). Möglicherweise hilft es, wenn bei Hetzner eine weitere Support Email eintrifft (mit Hinweis darauf, dass man von meiner ungelösten Supportanfrage weiß) und damit der Handlungsbedarf auf der Seite der Hetzner Admins erhöht wird. Mfg AR p.s. die Plugin „Lösung“ gefällt mir optisch nicht wirklich

Hallo, danke für die Antwort. Ich habe das Plugin installiert es folgt aber dennoch immer eine Fehlermeldung. Werde dann man in den nächsten Tagen eine Support-Anfrage bei Hetzner machen. Viele Grüße Kevin M.

Hallo, der Hetzner-Support war auch keine große Hilfe. Einzige Notlösung die mir einfällt: Form Validation via jQuery mit http://parsleyjs.org/ oder etc. Viele Grüße Kevin M.

Hi, wir konnten dieses Verhalten in manchen php Versionen nachstellen. Wir gehen davon aus, dass es ein Problem mit neueren php Versionen ist und dem ArraObject im Zusammenhang mit der Session. Dieses Verhalten werden wir in der nächsten Version umgehen, sodass hier keine Probleme mehr zu erwarten sind. Hier einmal der komplette Github Changelog: https://github.com/ShopwareAG/shopware- … 551bde9fe7 Vg, Marcel

2 „Gefällt mir“

Hallo, danke für die Rückmeldung. Habe vorübergehend die besagten Dateien ausgetauscht. Funktioniert! Viele Grüße Kevin M.