Übersetzungen dieser Seite:
 

Fortsetzung anhand eines externen Codes

Diese Anleitung beschreibt, wie Sie eine Referenz (Einen Link markieren) oder einen anderweitig übergebenen Personencode (Gerät und übermittelte Variablen) nutzen können, …

  • um ein unterbrochenes Interview fortzusetzen (siehe auch Befragung unterbrechen und fortsetzen).
  • um die mehrfache Teilnahme zu unterbinden (siehe auch Mehrfachteilnahme ausschließen).
  • um mehrere Frageböge in einem Befragungsprojekt unabhängig voneinander fortsetzen zu können (verwenden Sie dafür unterschiedliche Präfixe in den Datenbankschlüsseln).

Hinweis: Verwenden Sie diese Umsetzung nur, wenn die reguläre Lösung mittels Serienmails oder Teilnahmecodes etwas aus organisatorischen Gründen nicht verwendet werden kann.

Funktion

Bei dieser Lösung wird die Datenbank für Inhalte genutzt. Hier wird für jeden Personencode die Kennung des Interviews (case token) abgelegt. Anhand der Interview-Kennung kann das vormals begonnene Interview fortgesetzt werden.

Umsetzung

Lesen Sie auf der ersten Seite des Fragebogens die Personenkennung ein, hier im Beispiel würde diese als Referenz (r=…) im Link übergeben.

$personID = reference();

Prüfen Sie anschließend, ob in der Datenbank für Inhalte ein Eintrag für diese Personenkennung existiert. Der folgende PHP-Code stellt der Kennung noch ein Präfix user voran. Dies vereinfachte die Verwendung der Datenbank für unterschiedliche Zwecke. Das Präfix kann frei gewählt werden.

$key = 'user-'.$personID;
$info = dbGet($key);

Falls ein Eintrag existiert, erfolgt direkt eine Weiterleitung zu dem entsprechenden Fall, und das aktuelle Interview wird aus dem Datensatz gelöscht. Ansonsten (else) wird die Interview-Kennung des aktuellen Interviews in die Datenbank geschrieben.

if ($info) {
  $url = info('project.url').'?i='.$info[0];
  dropCase();
  redirect($url);
} else {
  dbSet($key, caseToken());
}

Die oben genannten PHP-Code-Teile müssen alle zusammen in einem „PHP-Code“ Element stehen. Dieses ganz oben auf der ersten Fragebogen-Seite platziert werden. Es ist aber auch denkbar, z.B. den Eintrag in die Datenbank für Inhalte erst nach einem Screenout vorzunehmen. DAnn würde der else-Teil zu Beginn wegfallen, und der später platzierte Code wurde aussehen wie folgt.

$personID = reference();
$key = 'user-'.$personID;
dbSet($key, caseToken());

Somit würde ein Interview nur dann fortgesetzt, wenn die Stelle mit dem zweiten PHP-Code mit dbSet() erreicht wurde.

de/survey/unique-redirect.txt · Zuletzt geändert: von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki