Guten Tag,
in einer aktuellen Studie möchten wir gerne auf der Startseite eines Fragebogens im Hintergrund prüfen, ob jemand (1) bereits eine Einwilligung aus einem vorherigen Testzeitpunkt vorliegen hat und/oder (2) den aktuellen Fragebogen bereits bearbeitet hat (ggf. auch nur zum Teil). Um Ersteres zu erreichen, haben wir in die Datenbank für Inhalte ein csv-Dokument hochgeladen, das zum einen die Referenz aus einem vorherigen Testzeitpunkt als KEY enthält und zum anderen eine 0/1-kodierte Variable, die die Vorlage der Einwilligung angibt.
Um Zweiteres zu erreichen, wird im aktuellen Fragebogen auf jeder Seite unter dem Schlüssel "$key = 'T2PAG-'.reference();" die zuletzt aufgerufene Seite gespeichert - bestenfalls wird der Fragebogen natürlich direkt beendet. Falls dem nicht so ist, soll aber direkt auf die zuletzt bearbeitete Seite weitergeleitet werden, wenn der Fragebogenlink mit derselben Referenz erneut aufgerufen wird.
So viel der Vorrede. Für diese Verteilung auf verschiedene Startseiten nutzen wir aktuell folgenden php-code:
$keyConsent = 'T1CON-'.reference();
$consent = dbGet($keyConsent);
$keyPage = 'T2PAG-'.reference();
$previousPage = dbGet($keyPage);
if ($previousPage == false && $consent[0] == 1) {
goToPage('EinwilligungVorhanden');
} elseif ($previousPage == false && $consent[0] == 0) {
goToPage('EinwilligungEinholen');
} elseif ($previousPage != false && $previousPage[0] != 'end') {
goToPage('Start2'); // Anm.: Erst auf "Start2" findet dann die Weiterleitung auf zuletzt bearbeitete Seite statt
} elseif ($previousPage[0] == 'end') {
goToPage('Start3'); // Anm: hier ist nur ein Hinweis, dass Fragebogen bereits bearbeitet wurde
} else {
goToPage('EinwilligungEinholen');
}
Wenn jemand den Fragebogen aufruft, dessen Referenz tatsächlich in der Datenbank für Inhalte mit 'T1CON-'.reference() bereits vorkommt, funktioniert auch alles wie gewollt. Das Problem entsteht, wenn eine noch "unbekannte" Referenz verwendet wird. Das sollte in unserem Fall eigentlich nicht vorkommen, kann aber nicht ausgeschlossen werden. Es sollte also der "else"-Teil des if-Befehls greifen (Weiterleitung auf die Seite EinwilligungEinholen). Dabei tritt aber jedes mal eine Fehlermeldung auf:
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Trying to access array offset on false
Zeile: 8
Fehler im Fragebogen: Trying to access array offset on false
Zeile: 10
Kann hier jemand weiterhelfen, wo das Problem liegen könnte?
Vielen Dank!