Hallo,
hier mal zur Sicherheit die If-Abfrage, so wie ich sie jetzt habe (Z 615-622):
Code:
if (!empty($message))
{
throw new RuntimeException(JText::_('COM_VISFORMS_SAVING_DATA_FAILED'). ' ' . $message);
}
else
{
throw New RuntimeException('FEHLER');
}
Ich hab das Gefühl, dass ich hier aber an der falschen Stelle bin?!
Leider hatten wir gestern mittag wieder einen leeren Datensatz - ohne, dass FEHLER in den leeren Datenfeldern steht
Leider tritt das Problem nicht immer auf, wenn derselbe Nutzer mehrere Datensätze eingibt - denn in diesem und einem der vorhergehenden Fälle hat der Nutzer nur genau einen (den leeren) Datensatz eingereicht.
Umgekehrt haben wir diverse Fälle, in denen ein Nutzer mehrere Datensätze einstellt, ohne das es dabei zu leeren Datensätzen kommt. Meist unterscheiden sich die Datensätze nur an zwei Stellen - es ist jeweils ein anderes Bild (oft aber mit identischen Eigenschaften, also Bilder von der selben Kamera, die sich nur in Dateigröße und Bildnamen/-nummer unterscheiden) und darüberhinaus dürfen die User nur ein Bild für den Wettbewerb einreichen, die weiteren Datensätze haben daher meist einen Haken im Feld "Außer Konkurrenz". Es gibt aber auch Fälle, in denen ein Nutzer mehrere Datensätze einstellt, die sich mehr unterscheiden (etwa, wenn mehrere Personen eines Haushaltes Bilder für den Wettbewerb einreichen).
Der erste Fall hatte eine IPv4-Adresse, der erste DS war leer, der zweite DS kam 11 Minuten später und war OK.
Der zweite Fall war zwei Tage später und sonst wie der erste, da kam der zweite DS 5 Minuten später.
Der dritte Fall war nur 13 Minuten später, sonst wie der erste, der zweite DS kam 14 Minuten später.
Der vierte Fall war 10 Stunden später, hier kam nur ein DS und zwar von einer IPv6-Adresse.
Dann war zwei Tage lang alles OK, dann wieder ein Fall wie der erste, diesmal nur knapp 4 Minuten auseinander.
Dann wieder ein Tag alles OK, dann ein Fall wie der vierte, allerdings mit IPv4-Adresse.
Fazit: bis jetzt kann ich nur eine Regelmässigkeit bei den Fehlern entdecken: wenn der Fehler auftritt, dann bei dem oder dem ersten Datensatz des Users - aber eben nicht immer.
Glücklicherweise endet die Einsendefrist am Dienstag und ich hoffe, dass der Fehler bis dahin möglichst nur noch sehr selten auftritt. Leider hilft uns das bei der Lösung nicht weiter, im Gegenteil, ab Dienstag Abend gibt es keine neuen Daten mehr und ich kann den Fehler nach wie vor nicht reproduzieren. Spätestens beim nächsten Wettbewerb habe ich das Problem also wieder (es sei denn, ich suche mir eine neue Formularkomponente - was ich eigentlich nicht will...)
Was haben wir noch für Möglichkeiten?
Mit besten Grüßen für die neue Woche
Tobias