Artikelstammdaten nicht zugänglich und einfach weg! BUG??

Hallo, seit ich vor einiger Zeit einen Sub-Shop eingerichtet habe, mit Lizenz, kann ich in BEIDEN Shops UND im Blog KEINE Artikel mehr bearbeiten! Der Reiter Stammdaten ist LEER… Ebenso kann ich keine Artikel mehr per csv Anlegen… Ein Bild hab ich mit eingefügt. Eine schnelle Hilfe, auch von SHOPWARE wäre ganz toll. Ein Anruf bei Shopware lief wieder ins Leere, da keiner den Fehler kannte und die Techniker mit der Version 4 “Ausgelastet” sind…

Hi, also natürlich sind wir aktuell mit Shopware 4 beschäftigt und gut ausgelastet, trotzdem funktioniert der Support bei Shopware aber ganz sicher weiterhin reibungslos. Hier müssen halt nur die offiziellen Supportwege genutzt werden. :wink: Die Hotline kann hier am Telefon den Supportfall höchstens aufnehmen und in den Account einstellen. Dann ist auch ein Rückruf durch Techniker direkt möglich. Bei einer CE kannst Du diese Möglichkeiten nicht nutzen, aber dafür ist ja hier das Forum gedacht. Du kannst mir ja einmal eine PN schicken und alle Zugangsdaten mitteilen, also FTP, PHPMyAdmin DB Zugriff und Shopware Backend Login. Dann schauen wir uns das gerne einmal an. Außer an Subshop-Einstellungen wurde nichts verändert? Falls doch, wären detaillierte Infos sehr hilfreich. Stefan

Hi, Problem ist gelöst. Die Ursache lag nicht in der Bedienung von Shopware oder an Einstellungen in Shopware. Das Phänomen hing wohl mit PHP 5.4.4 zusammen, die auf dem Server sicherlich kürzlich aktualisiert wurde. Hier gibt es an einer Stelle eine Inkompatibilität mit einer Shopware Klasse. Wahrscheinlich liegt das an der speziellen PHP-Version, von der es mittlerweile auch bereits weitere Releases gibt. Also PHP 5.4.5 oder PHp 5.4.6. Vielen Dank für den Support von Shopware! Ganz toll!! :thumbup: Benny

Hallo, ich hab genau das gleiche Problem auf meinem Testsystem. Allerdings habe ich hier bereits PHP 5.4.6 installiert und trotzdem die leeren Stammdaten. Koenntest du evtl. genauer beschreiben, wie du das Problem geloest hast bzw. bei welcher Klasse das Problem auftritt. Schonmla Danke im vorraus:), Markus [quote=“dlze24”]Hi, Problem ist gelöst. Die Ursache lag nicht in der Bedienung von Shopware oder an Einstellungen in Shopware. Das Phänomen hing wohl mit PHP 5.4.4 zusammen, die auf dem Server sicherlich kürzlich aktualisiert wurde. Hier gibt es an einer Stelle eine Inkompatibilität mit einer Shopware Klasse. Wahrscheinlich liegt das an der speziellen PHP-Version, von der es mittlerweile auch bereits weitere Releases gibt. Also PHP 5.4.5 oder PHp 5.4.6. Vielen Dank für den Support von Shopware! Ganz toll!! :thumbup: Benny[/quote]

Hallo, also ich hab jetzt die Stelle, an der der Fehler auftritt: Fatal error: Cannot re-assign auto-global variable \_POST in SHOPROOT/engine/backend/modules/articles/class\_articles.inc.php on line 6 Und zwar wird dort in der Methode check_prices die Variable $_POST by reference uebergeben. Ja und das mag PHP5.4.4 und hoeher nicht mehr. Da bei mir die Methode check-price nicht verwendet wird und die dazugehoerige Klasse shopware_articles in /engine/backend/modules/articles/class_articles.inc.php zwar zwei mal instanziert wird, jedoch diese Instanzen anscheinend ebenfalls ueberhaupt nicht benutzt werden, habe ich die Klasse selbst und die Instanzierungen auskommentiert. Damit laeuft jetzt augenscheinlich alles:happy: Deshalb die Frage, ob ich hier nur etwas uebersehen habe, oder ob diese Klasse wirklich nicht mehr benutzt wird? Danke, Markus Mirsberger

Hallo, ich habe auch das Problem, dass die Stammdaten nicht mehr angezeigt werden. Dieses ist seitdem der Server umgezogen wurde. @Markus - wie gehe ich da genau vor ? Gerne auch per PM, aber ich denke, es gibt sicher einige, die das Problem auch haben. lg Maik

Hallo Maik, dann hast du wahrscheinlich auch eine PHP 5.4.x Version aktiv. Die einfachste Variante wäre, die stellst dein System auf eine 5.3.x Version um. Dann sind keine manuellen Anpassungen in Shopware notwendig. Unter PHP 5.3 sollte direkt jedes Modul (bzw. die Stammdaten) korrekt angezeigt werden. Sebastian

Hallo, hab eben geschaut in meinem Backend unter Systeminfo PHP steht dieses PHP Version 5.4.9-nmm1 Wie stell ich jetzt wo das PHP um ? In meiner htaccess ? lg Maik

Hallo, ich weis nicht, ob der BUG-Fix alles behebt, aber zumindest geht die Artikelverwaltung dann wieder. Einleitung Mit der PHP-Version 5.4 wurden einige Funktionen die vorher als “deprecated” markiert wurden komplett entfernt. Zudem ist es ab PHP 5.4 nicht mehr erlaubt Funktionsparameter zu nutzen, die im Super-Global-Scope bereits existieren. So ist zum Beispiel “[b]function doSomething(\_POST) { ... }[/b]" nicht mehr erlaubt! Siehe [url=http://www.php.net/manual/en/migration54.incompatible.php]http://www.php.net/manual/en/migration5 ... atible.php[/url] [b]Problem[/b] Genau hier liegt das Problem. Sucht man im Shopware 3.5.x nach nach dem Muster "[i]function\*(\*_POST*[/i]” so kommt die Datei “engine/backend/modules/articles/class_articles.inc.php” zum vorschein. In der Funktion “check_prices” der Klasse “shopware_articles” gibt es den Funktions-Parameter "&\_POST": "[b]function check\_prices (&_POST, &form ){[/b]" [b]Lösung[/b] Ersetzen Sie in der Funktion "check\_prices" alle _POST Variablen durch eine andere. Beispiel: [b]\_fixPOST[/b]. [b]Ergebniss[/b] Bei mir lies sich die Produktverwaltung wieder öffnen und auf den ersten Blick auch wieder nutzen. [b]ACHTUNG Ich kann leider NICHT sagen, das hiermit ALLE Inkompatibilitäten mit PHP 5.4 behoben sind. Wer PHP 5.4 im Einsatz hat, dem empfehle ich trotz allem ein Update auf Shopware4![/b] Meine angepasste Klasse "shopware\_articles" aus Shopware 3.5.6: [code] class shopware\_articles { // Preise auf Gültigkeit prüfen function check\_prices (&_fixPOST, &form ){ foreach (_fixPOST[“priceregulary”] as $group => $content){ foreach ($content as $price => $content2){ # echo "Gruppe:$group, Price: $price, content2: content2 "; // Konvertiere Zahlen _fixPOST[“priceregulary”][$group][price] = str\_replace(",",".",_fixPOST[“priceregulary”][$group][price]); _fixPOST[“priceEK”][$group][price] = str\_replace(",",".",_fixPOST[“priceEK”][$group][price]); _fixPOST[“pricepseudo”][$group][price] = str\_replace(",",".",_fixPOST[“pricepseudo”][$group][price]); _fixPOST[“percent”][$group][price] = str\_replace(",",".",_fixPOST[“percent”][$group][price]); #echo "**{_fixPOST[“priceregulary”][$group][price]}**"; // Prüfe eingegebene Zahlen auf Gültigkeit if (_fixPOST[“priceregulary”][$group][price] && (!is\_numeric(_fixPOST[“priceregulary”][$group][price]) || _fixPOST[“priceregulary”][$group][$price]<0)){ $form->error_handler(printf($sLang[“articles”][“class_articles_invalid_price”],$group,($price+1)),$sLang[“articles”][“class_articles_wrong_price”]); } // Zumindest der Endkunden-VK muss angegeben werden if (group=="EK"){ if (!_fixPOST[“priceregulary”][$group][$price]){ $form->error_handler(printf($sLang[“articles”][“class_articles_invalid_price”],$group,($price+1)),sLang["articles"]["class\_articles\_wrong\_price"]); } } if (_fixPOST[“priceEK”][$group][price] && (!is\_numeric(_fixPOST[“priceEK”][$group][price]) || _fixPOST[“priceEK”][$group][$price]<0)){ $form->error_handler(printf($sLang[“articles”][“class_articles_invalid_price”],$group,($price+1)),sLang["articles"]["class\_articles\_wrong\_price"]); } if (_fixPOST[“pricepseudo”][$group][price] && (!is\_numeric(_fixPOST[“pricepseudo”][$group][price]) || _fixPOST[“pricepseudo”][$group][$price]<0)){ $form->error_handler(printf($sLang[“articles”][“class_articles_invalid_price”],$group,($price+1)),$sLang[“articles”][“class_articles_wrong_price”]); } } // Für jede Staffel } // Für jede Gruppe } } // End Class [/code]