0 votes
in SoSci Survey (dt.) by s277872 (145 points)

Ich möchte sicherstellen, dass die Teilnehmende einen generierten Code erhalten, der es mir ermöglicht zu überprüfen, ob sie den Fragebogen bis zum Ende abgeschlossen haben. Dieser Code soll aber auf eine Art und Weise erhoben werden, die keinen Rückschluss auf die Teilnehmenden erlaubt. Wie ist hier vorzugehen?

1 Answer

0 votes
by SoSci Survey (306k points)

Sie können einen Code via Zufallsgenerator ziehen, anzeigen und gleich wieder per dropValue() löschen.

by s277872 (145 points)
Vielen Dank für die Antwort. Auf der end-Seite soll im Abschlusstext der generierte Code stehen. Hierzu habe ich über folgende Wege versucht, den Code einzusetzen:
Weg 1: Im Text selbst über:
<strong>KS%caseNumber%</strong>  
<dropValue('KS%caseNumber%')>  

Weg 2: Über das Einsetzen folgenden Codes in die Fläche „PHP-Funktion“ (zwischen den Reitern „Zugriff“ und „interner Code“)
if (value('KS%caseNumber%') > 0) {
    dropValue('KS%caseNumber%');
}

Leider wurde über beide Wege in der Tabelle der erhobenen Daten KS%caseNumber% gezeigt.

Wie ist hier vorzugehen? 
Vielen Dank und beste Grüße
by SoSci Survey (306k points)
Also, die %caseNumber% lässt definitiv einen Rückschluss auf die Person zu. Das ist für Ihren Anwendungsfall m.E. nicht geeignet.

Abgesehen davon funktioniert das dropValue() nur im PHP-Code, s. Anleitung, und selbiger ist nicht auf der "letzten Seite", sondern nur auf einer regulären Seite möglich. Fügen Sie also bitte eine weitere Seite im Fragebogen ein, und lassen Sie dort entspr. der oben verlinkten Anleitung einen Code anzeigen. Wenn das auch die letzte Seite sein soll, können Sie zusätzlich den Befehl buttonHide() verwenden.
by s277872 (145 points)
Vielen Dank für die Rückmeldung.

Dies ist der PHP-Code (im PHP-Code Fenster der letzten Fragebogen-Seite):

replace('%code%', 'ZU02', 'response');
html('<p> <strong>%code%</strong></p>');

buttonHide('Weiter');

dropValue('ZU02');



Zwar wird mir der Code jetzt im Vorschaumodus angezeigt, allerdings gibt es noch zwei Hürden:

1. Wenn die Seite neu geladen wird, wird ein neuer Code generiert. Das soll aber nicht passieren, da so sämtliche hinterlegte Codes abgefragt werden könnten.  
2. In der Seiten-Vorschau funktioniert die Generierung bzw. die Ziehung des Codes. Leider aber nicht in dem Testdurchlauf (Fragebogen-Vorschau starten (ohne Zugriffsbeschränkungen)

Wie ist hier vorzugehen?
by SoSci Survey (306k points)
> 1. Wenn die Seite neu geladen wird, wird ein neuer Code generiert. Das soll aber nicht passieren, da so sämtliche hinterlegte Codes abgefragt werden könnten.  

Es gibt zwei Lösungen. Entweder Sie löschen den Code erst auf der nächsten Seite, oder Sie zeigen nur beim ersten mal einen Code an. Letzteres lässt sich mittels getRoute() einfach realisieren:

if (getRoute() == 'next') {
  show('ZU02');  // Dafür den Zufallsgenerator _nicht_ in die Seite ziehen?
  replace('%code%', 'ZU02', 'response');
  html('<p> <strong>%code%</strong></p>');
  dropValue('ZU02');
} else {
  html('<p> <strong>Der Code wurde bereits angezeigt</strong></p>');
}
buttonHide();

Sich den Code zu merken und ihn zugleich datenschutzsicher aus dem Datensatz zu löschen, das ist technisch nicht möglich. Sie können bestenfalls noch registerVariable() nutzen, um ihn so zu speichern, dass Sie selbst ihn nicht sehen können.

> 2. In der Seiten-Vorschau funktioniert die Generierung bzw. die Ziehung des Codes. Leider aber nicht in dem Testdurchlauf

Wie macht sich das bemerkbar?
by s277872 (145 points)
Vielen Dank für Ihre Rückmeldung!

>1 Ist die Funktion demnach mit registerVariable()  datenschutzsicher? Es soll eine anonymisierte Umfrage sein.

if (getRoute() == 'next') {
  show('ZU02');  // Dafür den Zufallsgenerator _nicht_ in die Seite ziehen?
  replace('%code%', 'ZU02', 'response');
  html('<p> <strong>%code%</strong></p>');
  dropValue('ZU02');
} else {
  html('<p> <strong>Der Code wurde bereits angezeigt</strong></p>');
}
buttonHide();

registerVariable('ZU02');


>2 Es macht sich so bemerkbar: Über "Fragebogen zusammenstellen" -> "Seite 06" sind ein oranger und ein grüner Rechtspfeil hinterlegt. Ist der Curser auf dem grüne Pfeil wird
"Fragebogen ab der aktuellen Seite testen (Vorschaue-Modus)" angezeigt. Hier kann ich den vierstelligen Code sehen, der über den PHP-Code generiert wird.
Sofern ich auf auf "Fragebogen-Vorschau starten (ohne Zugriffsbeschränkungen" klicke, taucht der generierte Code auf einmal nicht mehr auf.
by SoSci Survey (306k points)
>1 Ist die Funktion demnach mit registerVariable()  datenschutzsicher? Es soll eine anonymisierte Umfrage sein.

Das müssen Sie mit dem Datenschutzbeauftragten der Hochschule klären. Es gab erst kürzlich ein Urteil, dass pseudonyme Daten ein wenig komplizierter sind als bisher gedacht.

Aber technisch gibt es nur zwei Lösungen: Entweder das System merkt sich den Wert (ob es ihn dann direkt im Datensatz speichert steht ja auf einem anderen Blatt), oder es vergisst ihn, kann ihn dann aber nicht nicht mehr anzeigen.

Das mit dem registerVariable() würde auch ein wenig anders funktionieren, insbesondere brauchen Sie dann noch einen Filter mit isset(). Sehen Sie sich dazu bitte mal die Beispiele in Anleitung und Support an.

> Sofern ich auf auf "Fragebogen-Vorschau starten (ohne Zugriffsbeschränkungen" klicke, taucht der generierte Code auf einmal nicht mehr auf.

Was taucht denn stattdessen auf?
by s277872 (145 points)
edited by s277872
Vielen Dank für Ihre Antwort und Ihren Hinweis.

Danach ist es tatsächlich recht einfach: ich könnte EInsicht darauf nehmen, welche Codes wann ausgegebenen wurden und über Hinweise aus der Mail theoretisch auf die Person zurückschließen - sie zumindest eingrenzen. Daher werde ich nach dem urteil keine Codes ausgeben.

Dennoch vielen 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

...