0 votes
in SoSci Survey (dt.) by s209952 (110 points)
closed by s209952

Guten Morgen,
ich möchte heute eine Panel-Umfrage starten, aber die Teilnehmenden-ID kann nicht aus der URL ausgelesen werden.

Der Parameter in der URL ist 'm' (studie.com?m=XYZ)

Ich möchte ihn auslesen mit
if (!isset($id)) {
$id = readGET('m');
}

Aber das funktioniert (heute morgen) nicht.

Debug-Information für readGET('m'):
readGET('m') = false (boolean)

tatsächlich funktioniert es auch nicht in einer Studie, in der genau dieser Code letzte Woche noch funktioniert hat, weshalb ich vermute, dass hier sosci-seitig ein Bug vorliegt. Kann das sein?

Freue mich über zeitnahe Rückmeldung.
Danke & herzliche Grüße

closed with the note: solved

1 Answer

0 votes
by SoSci Survey (337k points)

Pauschal ist diese Frage schwer zu beantworten. Zumal Sie nicht schreiben, ob Sie auf www.soscisurvey.de oder auf einem anderen Server arbeiten.

Ich würde aber ohnehin empfehlen, dass Sie den Parameter mit einer Frage vom Typ "Gerät und übermittelte Variablen" einlesen, die Sie auf der ersten Seite platzieren.

Gerne kann ich mir das readGET()-Problem einmal direkt in Ihrer Befragung ansehen, wenn Sie damit einverstanden sind, dass ich einen Admin-Zugang für Ihr Befragungsprojekt erstelle?

by s209952 (110 points)
Danke für Ihre Antwort! Wir arbeiten auf unserem eigenen Server.
Mit dem Fragetyp habe ich tatsächlich bisher nicht gearbeitet, da müsste ich nochmal umdenken.
Was ich heute im Laufe des Tages festgestellt habe ist, dass der Parameter im debug-Modus nicht ausgelesen wird, im Pretest- und Interviewmodus allerdings wohl.
Der eigentliche Fehler lag aber wohl tatsächlich darin, dass im weiteren der Abgleich mit der Datenbank nicht funktionierte. Bisher hatten wir immer den Code

$id_data = dbGet($id);
if($id_data == false){
        redirect();
    }

verwendet. Hier wurde umgeleitet, obwohl die IDs in der Datenbank vorhande waren. Wenn ich aber hier nun drei Gleichheitszeichen einsetze, funktioniert alles wieder so wie gewohnt.

Danke nochmal!
by SoSci Survey (337k points)
Der besagte Fragetyp macht im Prinzip im GET-Variablen Karteireiter nichts anderes als readGET(). Aber die Frage kümmert gleich noch um die Variable im Datensatz und darum, den Wert nicht erneut einzulesen, etwa wenn die Seite aufgrund fehlender Antworten erneut eingelesen wird. Das was Sie mittels isset() sicherstellen.

> dass der Parameter im debug-Modus nicht ausgelesen wird, im Pretest- und Interviewmodus allerdings wohl.

Im Debug-Modus müssten Sie den Parameter nachträglich in die Adresszeile anhängen - aber mit einem & statt ?, weil das ? schon weiter vorne steht,

> Wenn ich aber hier nun drei Gleichheitszeichen einsetze, funktioniert alles wieder so wie gewohnt.

Zwei Gleichheitszeichen können auch einen leeren String, ein leeres Array oder die Zahl 0 als "nichts" mit false gleichsetzen. Womöglich sogar [0].

Die SoSci-Anleitung verwendet in aller Regel zwei Gleichheitszeichen, weil value() bei numerischen Codes selbige manchmal als Zahl, manchmal als String liefert.

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

...