0 votes
ago in SoSci Survey (dt.) by u291421 (110 points)
edited ago by SoSci Survey

Als zahlender Kunde führen wir aktuell eine Befragung durch, die einer Frist unterliegt. Deshalb bitten wir um Hilfe bei folgender neu aufgetretener Fehlermeldung, die die Bearbeitung in Teilen verhindert.

Details:
Im Projekt haben wir einen Erhebungsbogen programmiert, der über den Server s2survey.net läuft.

Die Erhebung ist bereits gestartet und es sind auch schon gültige Daten übermittelt/ Interviews abgeschlossen worden.

Seit heute taucht folgender Fehlercode auf: "Fehler im Fragebogen. Beim Erstellen der Fragebogen-Seite ist ein Fehler aufgetreten. Fehlermeldung: Im PHP-Code trat ein Fehler auf".

Wir haben seit gestern (da tauchte die Fehlermeldung noch nicht auf) auf den entsprechenden Seiten allerdings nichts mehr im PHP Code geändert.

Die Fehlermeldung wird uns seitens der Befragten zurückgemeldet und mit einem Pretest konnten wir ihn an gleicher Stelle rekonstruieren. (Details / Code siehe unten).

Zugleich erscheint die Fehlermeldung heute bei dem Versuch, Daten als PDF zu drucken (bei einzelnen Cases, je mit der gleichen Fehlermeldung), bei denen dies vorher unproblematisch funktionierte. Es handelt sich dabei um bereits abgeschlossene Cases.

Wir nutzen einen ähnlichen Code auf zwei unterschiedlichen Seiten. Auf der einen Seite funktioniert er und auf einigen anderen Seiten nicht.

Hier der Code der funktionierenden Seite:

function speziAufgabenJ($kennung, $anzahlPlatzhalter, $kennung_next) {
   $frage = $kennung;
   $items = array();
   for ($i=1; $i<=$anzahlPlatzhalter; $i++) {
         $itemID = id($frage, $i);
         $antwort = value($itemID);
      
         if (trim($antwort) != '') {
            replace('%'.$kennung.$i.'%', $antwort);
            $items[] = $i;
         }
   }
   if (count($items) > 0) {
   question($kennung_next, $items);
   }
}
speziAufgabenJ('J304', 25, 'J802');
speziAufgabenJ('J305', 25, 'J803');
speziAufgabenJ('J306', 25, 'J804');
speziAufgabenJ('J307', 25, 'J805');
speziAufgabenJ('J308', 25, 'J806');
speziAufgabenJ('J309', 25, 'J807');
speziAufgabenJ('J310', 25, 'J808');
speziAufgabenJ('J311', 25, 'J809');
speziAufgabenJ('J312', 25, 'J810');
speziAufgabenJ('J313', 25, 'J811');
speziAufgabenJ('J314', 25, 'J812');
speziAufgabenJ('J315', 25, 'J813');
speziAufgabenJ('J316', 25, 'J814');
speziAufgabenJ('J319', 25, 'J820');
speziAufgabenJ('J320', 25, 'J821');
speziAufgabenJ('J317', 25, 'J815');
speziAufgabenJ('J318', 25, 'J816');
speziAufgabenJ('A501', 25, 'J819');

Und hier der Code bei dem die Fehlermeldung erscheint:

function speziAufgabenW($kennung, $anzahlPlatzhalter, $kennung_next) {
   $frage = $kennung;
   $items = array();
   for ($i=1; $i<=$anzahlPlatzhalter; $i++) {
         $itemID = id($frage, $i);
         $antwort = value($itemID);
      
         if (trim($antwort) != '') {
            replace('%'.$kennung.$i.'%', $antwort);
            $items[] = $i;
         }
   }
   if (count($items) > 0) {
   question($kennung_next, $items);
   }
}
speziAufgabenW('W304', 25, 'W802');
speziAufgabenW('W305', 25, 'W803');
speziAufgabenW('W306', 25, 'W804');
speziAufgabenW('W307', 25, 'W805');
speziAufgabenW('W308', 25, 'W806');
speziAufgabenW('W309', 25, 'W807');
speziAufgabenW('W310', 25, 'W808');
speziAufgabenW('W311', 25, 'W809');
speziAufgabenW('W312', 25, 'W810');
speziAufgabenW('W313', 25, 'W811');
speziAufgabenW('W314', 25, 'W812');
speziAufgabenW('W315', 25, 'W813');
speziAufgabenW('W316', 25, 'W814');
speziAufgabenW('W317', 25, 'W815');
speziAufgabenW('W318', 25, 'W816');
speziAufgabenW('W319', 25, 'W817');
speziAufgabenW('W320', 25, 'W818');
speziAufgabenW('W321', 25, 'W819');
speziAufgabenW('W322', 25, 'W820');
speziAufgabenW('W323', 25, 'W821');
speziAufgabenW('W324', 25, 'W822');
speziAufgabenW('W325', 25, 'W823');
speziAufgabenW('W326', 25, 'W824');
speziAufgabenW('W327', 25, 'W825');
speziAufgabenW('W328', 25, 'W826');
speziAufgabenW('W329', 25, 'W827');
speziAufgabenW('W330', 25, 'W828');
speziAufgabenW('W331', 25, 'W829');
speziAufgabenW('W332', 25, 'W830');
speziAufgabenW('W333', 25, 'W831');
speziAufgabenW('W334', 25, 'W832');
speziAufgabenW('W335', 25, 'W833');
speziAufgabenW('W340', 25, 'W841');
speziAufgabenW('W341', 25, 'W842');
speziAufgabenW('W342', 25, 'W843');
speziAufgabenW('W345', 25, 'W846');
speziAufgabenW('W346', 25, 'W847');
speziAufgabenW('W347', 25, 'W848');
speziAufgabenW('W348', 25, 'W849');
speziAufgabenW('W349', 25, 'W850');
speziAufgabenW('W350', 25, 'W851');
speziAufgabenW('W351', 25, 'W852');
speziAufgabenW('W352', 25, 'W853');
speziAufgabenW('W337', 25, 'W835');
speziAufgabenW('W338', 25, 'W836');
speziAufgabenW('A501', 25, 'W839');
ago by SoSci Survey (326k points)
Danke für die Beschreibung. Ich vermute, dass das Problem durch das kürzlich erfolgte Update des Servers auftritt - bis ca. 22 Uhr sollten wir das eingrenzen und (wenn es am Update liegt) beheben können.

1 Answer

0 votes
ago by SoSci Survey (326k points)
edited ago by SoSci Survey

Danke für Ihre Geduld und Entschuldigung für die Unannehmlichkeiten. Das Problem war durch die Kombination aus Update, dem PHP-Code und dem Fragetyp der Mehfachauswahl-Matrix entstanden.

Wir haben soeben ein Update auf s2survey.net eingespielt, um das Problem zu beheben. Bitte überprüfen sie kurz, ob der Code wieder korrekt funktioniert.

Im Rahmen der Fehlerbehebung sah' ich, dass Sie für einige Funktionen Umlaute verwenden. Laut Spezifikation sind nur ASCII-Buchstaben (A-Z), Ziffern und Unterstriche für die Namen von Funktionen erlaubt. Wenn die Funktionen mit Umlauten aktuell funktionieren, brauchen Sie nicht direkt etwas ändern - aber für die Zukunft empfehle ich, Funktionsnamen ohne Umlaute zu verwenden, weil sonst nicht sichergestellt ist, dass das nicht irgendwann mit PHP-Updates kollidiert.

ago by u291421 (110 points)
Vielen Dank für die Bearbeitung und Problemlösung.
Jetzt funktioniert der Code/Fragebogen wie vorher.
Danke auch für den Hinweis zu den Umlauten.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...