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

0 votes

Hallo ihr Lieben,

ich habe ein relativ großes Problem:

Mein Fragebogen ist seit knapp zwei Wochen problemlos online und nun heute bekam ich die Rückmeldung, dass nach der dritten Seite folgende Meldung erscheint:

Parse error: Invalid numeric literal in /var/www/soscisurvey/html/inc/QuestionnairePHP.php(563) : eval()'d code on line 19

Was kann das sein und woher kommt das? Der Fragebogen lief wie gesagt die letzten zwei Wochen optimal...bin sehr verunsichert :(

Liebe Grüße und danke für Eure Zeit, Arbeit und Hilfe.

Theo Maurer

in SoSci Survey (dt.) by s085398 (120 points)
edited by s085398
Hallo nochmal,

ich will überhaupt nicht nerven und wahrscheinlich hört Ihr das sehr oft, aber ich bräuchte wirklich dringend eine Hilfe um den Fragebogen wieder zum laufen zu bringen. Mir gehen gerade relativ viele Teilnehmer verloren.

Danke und liebe Grüße

Theo Maurer

1 Answer

0 votes

Die Fehlermeldung eval()'d code bezieht sich auf den PHP-Code, den Sie auf der entsprechenden Seite verwendet haben.

Wir haben unseren Server am Wochenende von PHP 5 auf PHP 7 aktualisiert, und offenbar haben Sie in Zeile 19 auf der betroffenen Seite PHP-Code verwendet, der unter dem (in wenigen Stellen strengeren) Auge von PHP 7 nicht mehr korrekt ist.

Dies bedeutet aber, dass der Code vermutlich schon unter PHP 5 nicht korrekt funktionierte, nur wurde damals noch kein Fehler angezeigt, sondern der Code funktionierte einfach nicht korrekt. Meine spontane Vermutung ohne Kenntnis Ihres Codes wäre, dass Sie z.B. 08 als Zahl geschrieben haben - Details s. https://support.soscisurvey.de/?qa=1744/zufallsgenerator-2-werte-funktionieren-nicht&show=1746#a1746

by SoSci Survey (91.9k points)
Vielen Dank für die Rückmeldung und die Beantwortung der Frage.
Für mich war das gestern natürlich extrem ärgerlich, da der Fragebogen wie erwähnt seit zwei Wochen problemlos funktionierte, und mir nun offensichtlich durch die Aktualisierung von PHP 5 auf PHP 7 und der dadurch in meinem Fragebogen entstandenen Probleme gestern/vorgestern über 100 Teilnehmer verloren gegangen sind.
Nun - eine Fehlermeldung ist allemal besser als wenn Sie nach Ende der Erhebung herausfinden, dass da ein Fehler im Code war, der Ihr Erhebung zunichte macht (z.B. weil eine Stimulusbedingung gar nicht angezeigt wurde).

Woran lag es denn genau? Sie sollten auf alle Fälle prüfen, ob Sie in den bisherigen Datensätzen einen kritischen Fehler haben!
Wie Sie richtig vermutet haben, konnte das Problem behoben werden indem aus den Zahlen 01 bis 09 jeweils 1 bis 9 geschrieben wurde.

Eine Fehlermeldung ist auf jeden Fall sehr viel besser, als ein kritisches Problem erst im Nachhinein zu bemerken. Über die 2 Wochen hinweg habe ich alle 2-3 Tage stichprobenmäßig die erhobenen Antworten kontrolliert. Das schien und scheint alles sauber zu sein. Entsprechend wirkt es für mich so, als ob mein Problem erst mit der Aktualisierung am Wochenende aufgetreten ist. Nun ist das ganze behoben und ich bin hoffe einfach, dass ich trotzdem auf eine entsprechende Stichprobengröße komme.

Danke für Ihre Zeit und Arbeit.
Die 01 bis 07 sind unproblematisch (s. die oben verlinke Frage). Aber die 08 und 09 sind das Problem. Falls Sie damit Stimulus-Bedingungen ausgewählt haben, wurden diese vermutlich bisher NICHT (!) angezeigt. Und falls Sie in Ihrem IF-Konstrukt zudem noch einen ELSE-Teil haben, wurde unter der alten PHP-Version vermutlich einfach dieser verwendet.

Ärgerlich wäre das auf jeden Fall, da will ich Ihnen überhaupt nicht widersprechen - aber m.E. eher deshalb, weil bisher keine Fehlermeldung gezeigt wurde. Wenn Sie Ihren PHP-Code auf der betroffenen Seite einmal posten möchten, kann ich Feedback geben, ob Sie ein Problem mit Ihren vor dem 10.12. erhobenen Daten haben.
...