0 votes
in SoSci Survey (dt.) by s109993 (10.2k points)

Hallo,

ich habe wieder einen php-Fehler entdeckt, nach dem Update auf 8.2.1:

$key = caseSerial(); 
$inhalt = dbGet($key);
$inhalt2 = $inhalt[5];

registerVariable($inhalt2);

Questionnaire Error: Trying to access array offset on value of type bool
line: 5

Nach der Fehlermeldung zu Urteilen, ist der Fehler in Zeile 5, registerVariable($inhalt2);
Oder aber schon vorher, aber der Fehler wird erst durch Zeile 5 getriggert. Auch hier läuft der Code eigentlich wunderbar und die Fehlermeldung tritt erst auf dem Test-Server mit der neuen PHP-Version auf.

EIn Hinweis, was für den Fehler verantwortlich ist, wäre super!

1 Answer

0 votes
by SoSci Survey (305k points)
selected by s109993
 
Best answer

Ich denke, das Problem liegt an anderer Stelle. Und zwar liefert dbGet() vermutlich false zurück, weil es keinen passenden Eintrag gibt. Der korrekt Code müsste lauten wie folgt:

$key = caseSerial(); 
$inhalt = dbGet($key);
if ($inhalt) {
    $inhalt2 = $inhalt[5];
} else {
    $inhalte = '';
}
registerVariable($inhalt2);

Ältere Versionen von PHP ignorieren diesen Fehler, aber die korrekte Behandlung des Falls, dass dbGet() nichts findet, wäre auch da sinnvoll.

by s109993 (10.2k points)
Danke für die Information- das hilft mir weiter. Normalerweise kann es bei keiner unserer Umfragen sein, das es kein passenden Eintrag gibt. Deswegen programmiere ich auch kein else-Bedingung. Jetzt habe ich aber spontan eine neue Seriennummer importiert, die nicht in der Datenbank hinterlegt war. Das heißt, auch meine sehr sporadische Programmierung funktioniert noch- ich werde mir aber ihre elegantere Lösung für das nächste Mal notieren- just in case.

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

...