Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Vereinzelt fast leere Datensätze

More
7 years 5 months ago #3683 by Administrator AV
Replied by Administrator AV on topic 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 :-).

More
7 years 5 months ago #3685 by titoso
Replied by titoso on topic 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

More
7 years 5 months ago - 7 years 5 months ago #3686 by Administrator AV
Replied by Administrator AV on topic 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 :-).
Last edit: 7 years 5 months ago by Administrator AV.

More
7 years 5 months ago #3687 by titoso
Replied by titoso on topic 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

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum