Joomla 5 Mitteilung

Wir freuen uns mitteilen zu können, dass seit dem 29. Januar 2024 alle unsere Joomla Erweiterungen mit Joomla 5 kompatible sind.

Für alle die gerade noch von Joomla 3 auf 4 aktualisieren: Anleitungen für die Joomla 4 Migration gibt es hier:

Es gibt nun auch eine eigenständige Dokumentation für Visforms für Joomla 4 und für Visforms auf Joomla 5

Forum

Visforms Subscription Inhaber können in unserem Forum Fragen stellen. Bitte mit dem entsprechenden Benutzer anmelden.
Jeder kann lesend auf das Forum zugreifen.

Bitte stellen Sie nur 1 Frage pro Thema.

Vereinzelt fast leere Datensätze

Mehr
7 Jahre 5 Monate her #3683 von Administrator AV
Administrator AV antwortete auf Vereinzelt fast leere Datensätze
Guten Morgen Tobias,

das E-Mail Feld ist in der Datenbank leer und in den anderen sFormularfeldern außer dem Upload steht NULL?
Und du hattest wie besrochen die Codestelle auf $dbfieldvalue = $field->dataSource; umgestellt?

Das ist wirklich eine seltsames Ergebnis. Das macht alles überhaupt keinen Sinn.
Ich hätte erwartet, dass alle Felder in der Datenbank NULL sind (außer dem Upload). Dass das ganze Verhalten durch eine fehlerhafte E-Mail hervorgerufen wird, passt als Erklärung nicht mit dem Code zusammen.

Du hast aber doch nicht in der Datenbankdefinition den Defaultwert für das E-Mail-Feld von NULL auf Leer umgestellt, oder?

Liebe Grüße,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

Mehr
7 Jahre 5 Monate her #3685 von titoso
titoso antwortete auf Vereinzelt fast leere Datensätze
Guten Morgen,
ich versuchs jetzt mal der Reihe nach:
- Ja, Mailfeld ist leer, Rest ist NULL (siehe unten)
- Codestelle ist umgestellt
- Doch, in der Datenbankdefinition hab ich ganz am Anfang mal das Mailfeld auf "Not Null" gestellt (und den Standardwert auf ""). Habe das jetzt wieder zurückgeändert.

Ich habe jetzt eine Bestätigungsmail für die Teilnehmer eingerichtet und einen entsprechenden Hinweis - die Mail dürfte dann ja auch nicht rausgehen, dann melden sich die Leute vielleicht...

Der letzte leere Datensatz hat noch etwas interessantes erbracht - und zwar ist das ein Bild, dass schon einmal als einzelnes Bild eingereicht wurde und zu einem leeren Datensatz geführt hat. Leider kann ich den Einsender (noch) nicht identifizieren. Leider gibt es ja aber auch Einsender, die zwar mehrere Bilder, aber nur einen leeren Datensatz hatten...

Ich bin echt gespannt, wo wir den Fehler finden...
Schönen Start in die Woche wünscht
Tobias

Mehr
7 Jahre 5 Monate her - 7 Jahre 5 Monate her #3686 von Administrator AV
Administrator AV antwortete auf Vereinzelt fast leere Datensätze
Lieber Tobias,

gut, wenn du für das Mail-Feld auf not Null umgestellt hattest, dann ergibt sich jetzt sogar ein ziemlich konsistentes Bild.

Ich habe in Visforms eingebaut, dass, wenn das Formular verschickt wird, dort auch ein Parameter "Postid" mitgeschickt wird, der die Id des Formulars enthält. An der Stelle, an der ich den Wert setze, der später in der Datenbank gespeichert wird, prüfe ich, dass dieser Paramaeter Postid gesetzt ist und den richtigen Wert hat.

Offensichtlich ist dieser Parameter Postid bei den Übertragungen, die leere Datensätze erzeugen aber entweder leer oder hat den falschen Wert. Wie das zustande kommt ist mir nicht ganz klar, aber es ist die Ursache des Problems.

In dem Codeteil, der letztlich insgesamt steuert, was passiert, wenn das Formular abgeschickt wurde, frage ich aber nicht noch einmal ab, ob diese Postid gesetzt ist und den richtigen Wert hat. Deshalb läuft das alles durch und es wird ein leerer Datensatz gespeichert.

D.h. wir bauen jetzt diese Abfrage auch im controller ein und geben ein Fehlermeldung aus, wenn die Postid nicht passt und zeigen das Formular wieder an.

Du musst die Datei components/com_visforms/controllers/visforms.php öffnen.

Zeile 82 - 86 haben folgenden Code
Code:
$fields = $model->getValidatedFields(); if (!(isset($visform->errors))) { $visform->errors = array(); }
Direkt dahinter fügst du folgenden neuen Code ein
Code:
if ((!(count($_POST) > 0)) || (!isset($_POST['postid'])) || ($_POST['postid'] != $visform->id)) { array_push($visform->errors, 'Hier kommt deine Fehlermeldung rein.'); //Show form again, keep values already typed in if ($url != "" ) { $this->setRedirect(JRoute::_($url)); return false; } else { $this->display(); return false; } }
Ersetze

Hier kommt deine Fehlermeldung rein.

Mit einer passenden Fehlermeldung deiner Wahl. Achte darauf, dass du nur den Text austauschst und die Anführungszeichen stehen bleiben. Evtl. kannst du die Benutzer ja bitten, wenn der Fehler bestehen bleibt, mit dir Kontakt aufzunehmen....

Bitte mach vor der Änderung ein Sicherungskopie der Datei und teste nachdem du die Änderungen gamcht hast, dass das Formular noch normal funktioniert!

Die alten Änderungen ($dbfieldvalue = $field->dataSource) an der components/com_visforms/models/visforms.php kannst du dann wieder rückgängig machen ($dbfieldvalue = "") , das war ja nur, um den Fehler genauer eingrenzen zu können.

Zuletzt könntest du noch probieren, ob du mit dem einen Bild, das 2 x einen leeren Datensatz erzeugt hat, den Fehler reproduzieren kannst. Aber eigentlich glaube ich, dass da noch mehr als nur das Bild eine Rolle spielt und es irgendwie eine Kombination aus Device und Benutzerverhalten und evtl. auch Bild ist.

Liebe Grüße,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).
Letzte Änderung: 7 Jahre 5 Monate her von Administrator AV.

Mehr
7 Jahre 5 Monate her #3687 von titoso
titoso antwortete auf Vereinzelt fast leere Datensätze
Hallo Aicha,

- Änderung an der models\visforms.php habe ich zurückgenommen.
- Änderung an der controllers\visforms.php habe ich eingepflegt, Fehlermeldung besagt, dass die Eintragung nicht erfolgreich war und sich die Leute bitte an die Herbstlichter-Mailadresse wenden sollen - dann kann ich ggf. Rückfragen stellen...
- Originaldatei ist gesichert
- Testeintragung funktioniert einwandfrei, Formular läuft also.
- Wie du schon erwartet hast - wenn ich das "magische" Bild eintrage, läuft der Datensatz so durch. Ich habe es zwischenzeitlich noch vom Handy aus probiert, funktioniert auch (vielleicht sollte ich mal Fantasiedaten verwenden.. Nicht, dass Visforms irgendwo eine Abfrage hat "if Name = "Tobias" then Fehler=False" ;) )

Vielleicht nutze ich den Feiertag morgen mal, um es mit allen Geräten und Browsern die ich auftreiben kann zu testen...
Ich melde mich, wenn ich irgendwelche neuen Erkenntnisse habe...

In diesem Sinne: noch einen erfolgreichen Tag wünscht
Tobias

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum