[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
XForm Tablemanager PHP Fehler - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
nuxx
Beiträge: 164
Registriert: 16. Dez 2005, 18:45
Wohnort: Kaputtgart 21

XForm Tablemanager PHP Fehler

5. Jun 2013, 08:17

Hallole !
Beim Versuch eine Tebell über XForm anzulegen kommt folgender Fehler:

Fatal error: Cannot redeclare class rex_xform_action_db2email in .../redaxo/include/addons/xform/plugins/email/classes/action/class.xform.action_db2email.inc.php on line 90

Die Tabelle wird nicht angelegt. Sie ist zwar im RedaxoBackend sichtbar, aber in PHP MY Admin existiert sie nicht.
Ich hoffe mir kann jemand helfen.
Danke schonmals

REDAXO: 4.5.0
PHP: 5.3.23
MySQL: 5.1.69
XForm Version 4.5
Halbwissen ist schonmal besser als Vollpfosten!

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 10:47

Hi!
nuxx hat geschrieben:Fatal error: Cannot redeclare class rex_xform_action_db2email in .../redaxo/include/addons/xform/plugins/email/classes/action/class.xform.action_db2email.inc.php on line 90
Der Fehler sagt eigentlich schon alles: Die Klasse rex_xform_action_db2email wird irgendwo zweimal definiert. Am leichtesten findest du das raus, indem du alle Dateien nach dem Klassennamen durchsuchst.
nuxx hat geschrieben:XForm Version 4.5
Die Version gibt´s nicht. =)
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
nuxx
Beiträge: 164
Registriert: 16. Dez 2005, 18:45
Wohnort: Kaputtgart 21

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 12:17

Danke für die fixe Antwort.
xformversion.JPG
Die Version wird in der Hilfe angezeigt
xformversion.JPG (13.47 KiB) 12813 mal betrachtet
Die Addon Version steht in der Hilfe des Addons und auch im Downloadbereich.

die Klasse kommt im Addon 2 mal vor:
/classes/action/
/plugins/email/classes/action/

Muss die entsprechende Passage auskommentiert werden, oder bringd das dann anderweitig Probleme?

l.G Nuxx
Halbwissen ist schonmal besser als Vollpfosten!

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 12:23

nuxx hat geschrieben:Muss die entsprechende Passage auskommentiert werden, oder bringd das dann anderweitig Probleme?
Ich würde hier einfach per class_exists prüfen ob die Klasse schon da und wenn nicht, dann halt inkludieren: http://php.net/manual/de/function.class-exists.php

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 12:41

RexDude hat geschrieben:
nuxx hat geschrieben:Muss die entsprechende Passage auskommentiert werden, oder bringd das dann anderweitig Probleme?
Ich würde hier einfach per class_exists prüfen ob die Klasse schon da und wenn nicht, dann halt inkludieren: http://php.net/manual/de/function.class-exists.php
Ne, das ist schlechter Codingstil. Das kann man in Templates oder Modulen machen, wo die Gefahr besteht, dass eine Klasse oder Funktion mehrmals eingebunden werden könnte.

Es reicht, die Datei im Ordner /xform/classes/action zu löschen.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 12:46

Hi nuxx!
nuxx hat geschrieben:
xformversion.JPG
Die Addon Version steht in der Hilfe des Addons und auch im Downloadbereich.
Du hast recht, da hab ich mich wohl geirrt: https://github.com/dergel/redaxo4_xform ... ig.inc.php
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 12:48

Xong hat geschrieben:Ne, das ist schlechter Codingstil.
Das sollte ja auch nur eine temporäre Quick and Dirty Übergangslösung sein. XForm muss sich natürlich drum kümmern, die Klassen richtig einzubinden. Aber auch hier gerade wenn man Plugins nutzt wird man fasst nicht um besagtes Vorgehen drumrumkommen. Deshalb verstehe ich deine Aussage nicht!
Xong hat geschrieben:Es reicht, die Datei im Ordner /xform/classes/action zu löschen.
Ja und dann? Sie wird doch nich weiter im Quellcode eingebunden!?!? Und as würde wieder zu einem neuen Fehler führen!

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 13:48

Hey Rudi!
RexDude hat geschrieben:
Xong hat geschrieben:Ne, das ist schlechter Codingstil.
Das sollte ja auch nur eine temporäre Quick and Dirty Übergangslösung sein.
Das hilft in einem Forum aber nicht weiter, wo Beiträge noch Jahre zu lesen sind. =)
RexDude hat geschrieben:XForm muss sich natürlich drum kümmern, die Klassen richtig einzubinden. Aber auch hier gerade wenn man Plugins nutzt wird man fasst nicht um besagtes Vorgehen drumrumkommen. Deshalb verstehe ich deine Aussage nicht!
Jetzt versteh ich deine Aussage nicht. XForm hat die E-Mail-Funktionalität in ein Plugin ausgelagert. Die Klasse db2email wurde aus dem Ordner xform/classes/action gelöscht.
Generell könnte man sich natürlich überlegen, dass XForm überprüft, ob eine Klasse schon eingebunden wurde, und ggf. eine Warnmeldung ausgeben. Allerdings sehe ich da keine Dringlichkeit. Wenn man das Addon, so wie es ausgeliefert wird, installiert, gibt es das Problem ja nicht.
Ich vermute mal nuxx, hat die neue Version einfach drübergebügelt, weshalb die Datei noch im alten Verzeichnis vorhanden war.
RexDude hat geschrieben:
Xong hat geschrieben:Es reicht, die Datei im Ordner /xform/classes/action zu löschen.
Ja und dann? Sie wird doch nich weiter im Quellcode eingebunden!?!? Und as würde wieder zu einem neuen Fehler führen!
Hö? Natürlich wird sie nicht mehr eingebunden, wenn sie gelöscht ist.
XForm bindet alle Dateien aus den Ordnern ein, die im Array $REX['ADDON']['xform']['classpaths'] registriert werden.

Edit: Grade noch ´nen Geistesblitz gehabt, was du gemeint haben könntest. Die Klasse befindet sich jetzt unter /xform/plugins/email/classes/action. Also kann man die veraltete Datei durchaus einfach löschen.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 14:40

Xong hat geschrieben:Generell könnte man sich natürlich überlegen, dass XForm überprüft, ob eine Klasse schon eingebunden wurde, und ggf. eine Warnmeldung ausgeben. Allerdings sehe ich da keine Dringlichkeit. Wenn man das Addon, so wie es ausgeliefert wird, installiert, gibt es das Problem ja nicht.
Gute Argumentation.. kommt mir bekannt vor.
vg, Jan

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 14:49

Also Xong bevor wir hier weiter diskutieren: Ich habe weder XForm programmiert noch bin ich so bewandert über die internen Begebeheiten wie du. Meine Lösungsvorschlag beruhte sich auf einer sehr simplen Sichtweise und sollte als einfache Variante verstanden werden das Problem was der Autor dieses Threads hatte in den Griff zu bekommen OHNE tiefer in XForm reindiggen zu müssen und z.B. zu verstehen, dass alle Klassen automatisch eingebunden werden.

Was mich persönlich aber echt nervt ist, dass du mir unterstellst ich hätte einen schlechten Codingstil wegen diesem Muckenschiss jetzt. Übrigens eine Aussage die Jahrzehnte hier verewigt sein wird. Also schau auf deinen eigenen Kot und schreib dir deinen eigenen Satz hinter die Ohren: "Das hilft in einem Forum aber nicht weiter, wo Beiträge noch Jahre zu lesen sind."

Und hier noch was: Wenn dieser "Autoload" Mechanismus bei einem Update versagt, sollte man ihn ggf. halt verbessern oder abändern ;)

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 15:16

RexDude hat geschrieben:Was mich persönlich aber echt nervt ist, dass du mir unterstellst ich hätte einen schlechten Codingstil wegen diesem Muckenschiss jetzt.
Das hab ich nirgendwo geschrieben. Ich hab dich auch nicht persönlich angreifen wollen. Warum du jetzt so angepisst reagierst, versteh ich nicht.

Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss. Wozu also die Mühe?
Und von dieser Meinung wirst du mich auch nicht abbringen können. =)
RexDude hat geschrieben:Und hier noch was: Wenn dieser "Autoload" Mechanismus bei einem Update versagt, sollte man ihn ggf. halt verbessern oder abändern ;)
Jo, darüber könnte man nachdenken. Aber das wird dann sicher erst mit der neuen Version für Redaxo 5 kommen.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 16:21

Xong hat geschrieben:Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss. Wozu also die Mühe?
Da gebe ich dir zu 100% Recht. Aber wie ich schon sagte, wollte ich als XForm Laie halt zu einer schnellen Lösung kommen ohne mich in XForm zu vertiefen oder gar mit der Absicht XForm zu verbessern. Es war also nicht als Pull Request gedacht!

Der Rest wird ja per PM geklärt :)

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 22:43

Xong hat geschrieben:Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss.
Schon mal erwogen das es evtl. keine Absicht ist das eine Klasse doppelt vorkommt, sondern dummer Zufall? Xform hat ja eben die geschmeidige Möglichkeit eigene Klassen einfach per path dazuzupacken.. eine Kollision weil man zufällig nochmal eine gleichnamige Klasse über irgendein (weiteres/älteres) Plugin o.ä. reinholt sind sicher nicht etwas das in dem Kontext auszuschließen wäre. Unerwartetes, das zu einem fatal führen kann nicht abzufangen ist alles mögliche.. nur sicher kein "schlechter Codingstil". Das dies eigentlich in den Xform core gehörte dürfte ausser Frage stehn..
vg, Jan

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: XForm Tablemanager PHP Fehler

5. Jun 2013, 23:43

jdlx hat geschrieben:
Xong hat geschrieben:Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss.
Schon mal erwogen das es evtl. keine Absicht ist das eine Klasse doppelt vorkommt, sondern dummer Zufall?
Jo, ist es. Hab ich aber auch geschrieben:
Xong hat geschrieben:Ich vermute mal nuxx, hat die neue Version einfach drübergebügelt, weshalb die Datei noch im alten Verzeichnis vorhanden war.
jdlx hat geschrieben:Unerwartetes, das zu einem fatal führen kann nicht abzufangen ist alles mögliche.. nur sicher kein "schlechter Codingstil".
Bitte versuch mir nicht weiß zu machen, dass du lieber zwei, womöglich unterschiedliche Klassen hättest, als einen Fatal-Error, der dich darauf hinweist, dass da was nicht stimmt.
jdlx hat geschrieben:Das dies eigentlich in den Xform core gehörte dürfte ausser Frage stehn..
Auch das hab ich geschrieben. Aber ich finde nicht, dass das unbedingt außer Frage steht. Alles was XForm machen könnte, wäre eine benutzerfreundlichere Fehlerausgabe. Aber auch dann müsste die Formularverarbeitung abgebrochen werden, weil XForm nicht wissen kann, welche Klasse die richtige ist.

Ich habe nur darauf hingewiesen, dass es nicht gut ist, zwei Klassen, die den gleichen Namen haben, über class_exists eine Koexistenz zu gewähren. Und auch wenn ich mich wiederhole: Das ist schlechter Codingstil, weil er zu unerwarteten Fehlern führen kann.

Und damit das auch noch aus der Welt geschafft wird: Ich finde nicht, dass Rudi schlechten Code schreibt. Darf man denn nichtmal mehr auf ´nen Fehler hinweisen?
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: XForm Tablemanager PHP Fehler

6. Jun 2013, 00:31

Xong hat geschrieben:Bitte versuch mir nicht weiß zu machen, dass du lieber zwei, womöglich unterschiedliche Klassen hättest, ..
Wo sprach ich davon?
Xong hat geschrieben:..als einen Fatal-Error, der dich darauf hinweist, dass da was nicht stimmt.
Ein fatal error als best practice des error handlings? Wohl kaum.. und schon garnicht im diesem Kontext.
jdlx hat geschrieben:Alles was XForm machen könnte, wäre eine benutzerfreundlichere Fehlerausgabe.
Eben..
jdlx hat geschrieben:Aber auch dann müsste die Formularverarbeitung abgebrochen werden, weil XForm nicht wissen kann, welche Klasse die richtige ist.
Natürlich nicht, das ist ja auch nicht das Problem.
jdlx hat geschrieben:Und auch wenn ich mich wiederhole: Das ist schlechter Codingstil, weil er zu unerwarteten Fehlern führen kann.
S.o.
vg, Jan

Benutzeravatar
nuxx
Beiträge: 164
Registriert: 16. Dez 2005, 18:45
Wohnort: Kaputtgart 21

Re: XForm Tablemanager PHP Fehler

6. Jun 2013, 08:31

Hallo Euch allen,
Xong hat geschrieben: Ich vermute mal nuxx, hat die neue Version einfach drübergebügelt, weshalb die Datei noch im alten Verzeichnis vorhanden war.
Möglich, bin mir nicht ganz sicher. Könnte das Update auch über den Installer gemacht haben.
Jedenfalls ist das die Ursache und ich bedanke mich herzlich für Eure Hilfe. :P
Und nun geniesst liebe ne Tasse Kaffee, anstatt Euch zu streiten!
Schönen Tag Euch!
Nuxx
Halbwissen ist schonmal besser als Vollpfosten!

Zurück zu „Allgemeines [R4]“