0 votes
in SoSci Survey (dt.) by s007835 (175 points)

Unser Fragebogen enthält Randomisierung, eine lab.js-Frage und (per Zufall zugeteiltes) Abspielen von Musik über mehrere Seiten und schließlich einen redirect()-Befehl am Ende des Fragebogens (zu Sona).

Nach längerer Fehlersuche haben wir festgestellt, dass die Kombination des Zusatzes "start.html" und der Weiterleitung durch den redirect()-Befehl dazu führt, dass der "Weiter"-Button auf der Seite vor dem redirect()-Befehl entweder nicht funktioniert (man kann drauf klicken, aber es passiert nichts) oder man wird auf eine nicht ladbare Seite geleitet.

Ohne den "start.html"-Zusatz funktioniert der "Weiter"-Button auf der Seite vor der Weiterleitung und auch die Weiterleitung mit redirect() einwandfrei.
Auch in der "start.html"-Variante funktioniert der "Weiter"-Button auf allen Seiten - außer der vor der Weiterleitung.

Weil das Problem im "start.html"-Zusatz besteht, kann ich leider nicht (sinnvoll) einen Pretest-Link schicken, aber hier der vollständige Fragebogen-Link:

https://www.soscisurvey.de/Konzentration_Gedaechtnis/start.html

Bitte entschuldigt/entschuldigen Sie vielmals: Der Fragebogen hat sehr viele Seiten und ich wollte auch gerne direkt zu der betreffenden Seite verlinken, hab aber auf die Schnelle nicht gefunden, wie ich das machen kann Selbstverständlich mache ich das sehr gern, wenn Ihr/Sie mich auf eine kurze Anleitung hinweist/hinweisen!

Ich hoffe sehr, dass ich keine Informationen übersehen habe, die zu dem Problem geführt haben und bedanke mich jetzt schon sehr für Eure/Ihre Mühe, ich weiß SoSci Survey an sich und Euren/Ihren Support äußerst zu schätzen!!!

by SoSci Survey (376k points)
Sie könnten zum Testen auf Seite 2 ein goToPage() auf die Seite einfügen, die vor der Problemseite kommt. Dann kann ich mir das effizient (auch mehrfach) ansehen.
by s007835 (175 points)
edited by s007835
Ach, da hätte ich tatsächlich auch sebst drauf kommen können, sorry!
Ich hab den goToPage() auf Seite 2 eingefügt - nun kommt das Problem allerdings hier: Klicken auf "Weiter"-Button führt nicht weiter.
(TAUSEND DANK!!!)
by s007835 (175 points)
edited by s007835
Noch eine zusätzliche Info, die evtl. relevant/verwandt sein könnte: Beim Einbinden der lab.js-Frage ist uns aufgefallen, dass nach dem abschließenden Screen ("Vielen Dank!") es nicht weiter ging. Wir hatten hier einfach eingestellt, dass der "Weiter"-Button durchgehend angezeigt wird.
by s007835 (175 points)
Noch eine ggf. nützliche Info: Ich habe gerade festgestellt, dass die Ergebnisse des lab.js-Experiments nicht gespeichert werden (bei JSON-Version ist die Variable/Frage in den Daten gar nicht vorhanden; bei der CSV-Version sind die CSV-Dateien leer). Wenn ich das lab.js-Experiment in einem anderen Projekt integriere (ohne Musik), dann klappt die Datenspeicherung und auch wenn ich den Link ohne den "start.html"-Zusatz aufrufe. Im Inspektor verschwindet dann der Fehler "Source map error: Error: request failed with status 404".  Kann es sein, dass redirect() und lab.js-Einbindung noch das "start.html" brauchen?
by SoSci Survey (376k points)
Ich vermute, dass ein Sicherheitsmechanismus das Laden von aktiven Inhalten in einem Frameset (dafür ist die start.html gut) verhindert. Das könnte auch für das nicht funktionierende redirect() verantwortlich sein. Ich sehe mir das an.
by SoSci Survey (376k points)
Das erste Problem, welches mir angezeigt wird ist, dass die Datei stimulus.mp3 nicht im Projektverzeichnis existiert. Diese Datei wird im music.html aufgerufen, scheint aber tatsächlich zu fehlen.
by s007835 (175 points)
edited by s007835
(nur nochmal vorweg: ich kann mich nicht genug bedanken für Ihre Zeit, ganz besonders an einem Wochenende!!)

stimulus.mp3: Genau, in der musik.html-Datei habe ich "stimulus.mp3" als source stehen lassen, weil wir zwei unterschiedliche .mp3-Dateien randomisiert über Platzhalter (%dateiname%) im JavaScript-Code aufrufen und die mp3-Dateien so korrekt abgespielt wurden (das eine, das andere Musikstück oder keine Musik). Soll ich im "musik.html" besser auch den Platzhalter (%dateiname%) einfügen?

Sicherheitsmechanismus: Dafür würde die Meldung aus der Console sprechen: "Content-Security-Policy: The page’s settings blocked the loading of a resource (frame-src) at https://hsfresenius-wm.sona-systems.com/webstudy_credit.aspx?experiment_id=xxxx&credit_token=xxxxxxxxxxx&survey_code= because it violates the following directive: “default-src 'self'”. Leider bin ich sehr unbewandert im Web-Development und weiß nicht, wie ich das lösen kann.
by SoSci Survey (376k points)
> Soll ich im "musik.html" besser auch den Platzhalter (%dateiname%) einfügen?

Nein, Platzhalter funktionieren in den HTML-Dateien nicht. Aber dort sollte die mp3-Datei stehen, die Sie dann auch wirklich abspielen möchten.

> Sicherheitsmechanismus

Wir haben dem Befehl option() eine neue Funktion beigebracht, damit der Redirect auch in einem Frameset funktionieren sollte. Bitte fügen Sie auf der ersten Seite oder weiter hinten, spätestens vor dem Redirect folgenden PHP-Code ein:

option('frameset', true);

> Leider bin ich sehr unbewandert im Web-Development und weiß nicht, wie ich das lösen kann.

Da sind wird auch ein wenig tiefer in den Tiefen der Web-Programmierung. Um die Sicherheitsmechanismen muss sich ein Stück weit SoSci Survey kümmern :)
by s007835 (175 points)
edited by s007835
Ach, tausend Dank!!! Ich hab option('frameset', true); eingefügt und die redirect()-Weiterleitung funktioniert!

Musik: Wir verwenden zwei Musik-Dateien, jeweils eine andere für eine der zwei Experimentalgruppen. Ist mir etwas peinlich zu fragen, aber wie würde man das bei source angeben in der html-Datei? (Die Musik wird momentan tatsächlich trotz des falschen Dateinamens in source in den verschiedenen EGs korrekt abgespielt.)

Keine Speicherung von lab.js-Daten: Soll ich das Problem mit der Speicherung der lab.js-Daten als neuen Post anlegen?

Vielen, vielen Dank für den wirklich herausragenden Support!!!

1 Answer

0 votes
by SoSci Survey (376k points)

Ich hab option('frameset', true); eingefügt und die redirect()-Weiterleitung funktioniert!

Ah, sehr gut. Browser sind in den letzten Jahr aus Sicherheitsgründen ein wenig komplexer geworden, die Kombination aus Frames und Weiterleitungen zwischen unterschiedlichen Domains braucht mitunter ein wenig besondere Aufmerksamkeit...

aber wie würde man das bei source angeben in der html-Datei

Sie würden zwei Musik-HTML-Dateien anlegen und je nachdem, welche Musik Sie haben möchten, eine der beiden per JavaScript in das Musik-Frame laden. Die Anleitung sollte das genauer erklären. Wenn nicht sagen Sie bitte nochmal Bescheid.

Soll ich das Problem mit der Speicherung der lab.js-Daten als neuen Post anlegen?

Ja, das wäre vielleicht übersichtlicher. Aber ich glaube, da müssten sie mir die Lab.js-ZIP-Datei einmal an info@soscisurvey.de senden. Wir hatten kürzlich schon so ein Problem, ich kam nur noch nicht dazu, mit das im Detail anzusehen.

by s007835 (175 points)
Ich wollte nur hier noch auf die Frage zu lab.js-Datenspeicherung verweisen: https://support.soscisurvey.de/?qa=68534/experiment-werden-innerhalb-framesets-mehrere-gespeichert und noch auf eine Interessensfrage zu Platzhaltern bei experimenteller Variation von Musik über mehrere Seiten: https://support.soscisurvey.de/?qa=68535/platzhalter-experimentell-variiertes-abspielen-mehrere

Noch einmal den allerbesten Dank!!!

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

...