#1

Praxismichel

Neuling  (2 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden
 https://www.osteopathie-in-reichenhall.de

Das mit SiquandoWeb10 erstellte Kontaktformular liefert, nach Umstellung auf php 8.0, nach Eingabe der Formulardaten nur noch die Meldung "HTTP Error 500".

Da das Kontaktformular das einzige ist, was anscheinend nicht mehr unter php 8.0 funktioniert, möchte ich echt nicht extra Geld für ein Upgrade von SiquandoWeb10 auf 12 ausgeben. Das muß doch auch so gehen!

Mit 'einfachen Bordmitteln' hat mir ein Kollege die Rückmeldung gegeben: "each() gibt's in php 8.0 nicht mehr. Ich habe dir mal ein patch dafür gemacht."

Das half aber nur bedingt - denn jetzt gibt es als Rückmeldung: "Error. Illegal Return-email-adress-uid" :-(( Das gab es zwar schon mal hier im forum als thread - ich habe zumindest versucht ein Thema zu finden welches mir weiterhilft - daher nehme ich auch gerne Hinweise an, wenn das Thema schon mal in ähnlicher Form behandelt wurde - hat sich aber irgendwie von selber gelöst und war mir von daher keine Hilfe. 

Habt ihr eine Idee zu diesem Problem? 

#2

MuggelClan

Forum-Sponsor  (808 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Das Problem lässt sich nicht einfach mit einem Patch, das nur each in foreach (oder ähnliches) ändert, beheben. Hab mir alle Dateien (Die Änderungen sind nicht nur in einer Datei, sondern in mehrere Dateien), für das Formular angesehen und auch natürlich die Änderungen zwischen web10 und web12 verglichen. Eines der Hauptgründe warum es mit web10 (und auch web11) Probleme gibt, ist nicht nur die Schreibweise mit each, sondern auch dass noch Codes verwendet werden, die nicht mehr in PHP8 unterstützt werden und/oder auch gar nicht mehr mit der neuen Schreibweise benötigt werden. Ein ganzer überflüssiger Code-Block (Wenn ich es so nennen darf, ...magic...) herausgeflogen, also einiges, das eigentlich schon beim Übergang von php5 zu php7 geändert hätte werden können. Weiter hat sich bei PHP8 die Schreibweise/ -Anordnung/ -Reihenfolge bei den Parameter geändert, so dass auch die Parameter-Ausgabe zwischen den php-Versionen unterschiedlich sein können.

Selbst wenn du jetzt das Kontaktformular (web10) jetzt mit PHP8.0 zum laufen bringst, dann wirst du vermutlich beim Wechsel zu PHP8.1 (ab November dies Jahr) auf die nächsten Probleme stoßen.

Nächste Problem: Wenn du die Änderung nur auf dem Server vornimmst, was machst Du dann wenn beim Aktualisieren der Homepage über die Software die Dateien überschreibst?

Schon aus diesem Grund gibt es meiner Meinung nach nur folgende Möglichkeiten:
- auf Web12 upgraden
- auf ein Kontaktformular verzichten
- oder einen anderen funktionierenden Code im großen weitem Internet suchen


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 8, Web Client 

#3

Praxismichel

Neuling  (2 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden
 https://www.osteopathie-in-reichenhall.de

Grüß' dich, MuggelClan

Lieben Dank für deine Antwort. Mittlerweile denke ich auch. daß es nur die Varianten 1 oder 3 gibt 😉 . Kein Kontaktformular ist hier keine Option. Ich denke ich werde heute Nachmittag erst einmal nach einem Skript-Updater in den Weiten des www schauen. Das war noch der Tipp eines Bekannten von uns (IT-ler) von gestern Abend. Und wenn da nix geht, muß es halt ein Programm-Update werden. Seufz ... 

#4

Thomas

Moderator  (2298 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden
 https://siquando-designs.de

So viel Änderungen zwischen den Versionen von Web 10 und Web 12 in der Datei /common/formgateway.ccml gibt es nicht. Es sehe daher keinen Grund warum man die Datei nicht entsprechend, auch für die Nutzung mit PHP 8.1 anpassen könnte.


Viele Grüße
Thomas

siquando-designs.de (NEU: KARO Flex Layout, Santa Cruz Pro für Pro Shop und Apollon 11 für Siquando Shop, Templateübersicht & Support für Shop 11 + Pro Web 8)

#5

MuggelClan

Forum-Sponsor  (808 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Hallo Thomas,

ich habe nicht nur die eine Datei verglichen, auch wenn es nicht viel ist, aber trotzdem stell ich mir die Frage, ob die Hilfe zur Anpassung für Web10 dann auch mit der Lizenzvereinbarung §4 Absatz (1) dann auch vereinbar wäre. Würde ja auch gerne helfen wollen, aber Lizenzvereinbarung möchte dabei nicht verletzen. Oder wie ist dieser Absatz zu verstehen?
Ich bin trotzdem der Meinung, das eben ein Upgrade von Web10 auf Web12 nicht nur wegen dem Kontaktformular schon Sinn macht. 


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 8, Web Client 

#6

Thomas

Moderator  (2298 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden
 https://siquando-designs.de

Wenn eine *.ccml-Datei angepasst wird, um das Formular zu bestimmten PHP-Versionen kompatibel zum machen, erfolgt in keinster Weise eine Dekompilierung oder ein Reverse-Engineering. Praxismichel hat von einem Kollegen bereits einen Patch erhalten, den er einfach auf die Datei /common/formgateway.ccml anwenden muss und wenn ich "PHP each() deprecated" google finde ich direkt gute Alternativen.


Viele Grüße
Thomas

siquando-designs.de (NEU: KARO Flex Layout, Santa Cruz Pro für Pro Shop und Apollon 11 für Siquando Shop, Templateübersicht & Support für Shop 11 + Pro Web 8)

#7

MuggelClan

Forum-Sponsor  (808 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Das Patch, nehme ich an, würde vermutlich auch ausreichen, wenn es beim /common/formgateway.ccml von Web11 angewendet wird, jedoch nicht bei /common/formgateway.ccml von Web10. Bei Web10 ist noch die alte Post-Variable (...unabhängig von den Magic Quotes) vorhanden, das jedoch bei Web11 bereits bereinigt wurde. D.h. es muss zusätzlich die Post-Variablen (function postvars ($key)....) geändert werden. Bei Web11 hingegen müssten nur die Zeilen mit "while...= each..." in "foreach..." geändert werden, das wie bereits erwähnt das Patch von Praxismichel eventuell beheben würde. Ob relevant oder nicht, sind alle Zeilen mit "...\n" in "...\r\n" geändert worden. Würde ja schon fast sagen, am besten wäre gleich die ganze Datei "/common/formgateway.ccml" von Web10 mit der von Web12 zu ersetzen, wenn man die Zeit zu dieser Umsetzung nicht aufbringen will. Also ich sehe es immer noch für Sinnvoll auf Web12 upgraden. Ist nur meine persönliche Meinung.


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 8, Web Client 

#8

MuggelClan

Forum-Sponsor  (808 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Hallo Praxismichel,

lösche mal die folgenden Zeilen:

	// Liefert die POST-Variablen unabhängig von den Magic Quotes

...
		
		if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
			return (stripslashes($_POST[$key]));
		} else {
...

und eine geschweifte Klammer } nach "return ($_POST[$key]);"

"return ($_POST[$key]);" muss bleiben.

Wende mal nochmal Dein Patch für each an. 

Mal sehen, ob die Anpassung reicht.


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 8, Web Client 

#9

MuggelClan

Forum-Sponsor  (808 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Hallo Praxismichel,

da wir von Dir noch keine Rückmeldung erhalten haben, ob Dein Patch für "each"-Änderung jetzt mit der Löschung der Codes aus meinem letzten Beitrag funktioniert hat, meine Frage.

Hat es funktioniert oder bist du noch auf der Suche nach einer Lösung?

Hier mal noch bzgl. "each"-Änderung in "foreach" was (als Code-Auszug) geändert werden muss, bzw. wie das mit "foreach" geschrieben wird:
- alles was mit "while...= each..." geschrieben ist ändern in:

...
	foreach($_POST as $key => $val) {
		switch ($key)
		{
...

 

Hoffe hab jetzt auf die schnelle nichts übersehen und es hilft dir weiter.


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 8, Web Client 

1912 Aufrufe | 9 Beiträge