====== readGET() ====== ''string|false **readGET**(string //Kennung//, [boolean //Warnung//])'' Die Funktion ''readGET()'' erlaubt das Einlesen einer Variable, die via POST oder GET an den Fragebogen übermittelt wurde. * //Kennung//\\ Name der übermittelten Variable * //Warnung//\\ Soll eine Warnung angezeigt werden, wenn der Befehl auf einer anderen als der ersten Seite verwendet wird? * ''true'' -- (standard) Warnung anzeigen (die Warnung ist __nur__ für den Projektleiter sichtbar, nicht für den Teilnehmer) * ''false'' -- Warnung ausblenden, der Projektleiter weiß, was er tut Der Rückgabewert der Funktion ist jener String, der mittels POST oder GET im Aufruf des Fragebogens übermittelt wurde. Falls die Variable nicht übermittelt wurde, wird ''false'' zurückgegeben. ===== Anmerkungen ===== * Das Einlesen funktioniert __nur__ auf der ersten Seite des Fragebogens __oder__ auf einer Seite, die mittels ''[[:de:create:functions:option|option('resume', true)]]'' auf eine Unterbrechung vorbereitet wurde __oder__ wenn der Projektleiter durch einen geeigneten Link dafür sorgt, dass die Variable übermittelt wird. * Einige Variablen haben eine besondere Bedeutung und sollten nicht für die Übermittlung benutzerdefinierter Daten verwendet werden sollten, s. [[:de:survey:url|Der Link zum Fragebogen]]. * Prüfen Sie vor der Verwendung von ''readGET()'', ob nicht bereits ein Wert gespeichert wurde. In den Beispielen unten werden dafür ''[[http://php.net/manual/de/function.isset.php|isset()]]'' oder ''[[:de:create:functions:getroute|getRoute()]]'' verwendet. Falls Sie z.B. auf der ersten Seite im Fragebogen eine Pflichtfrage einsetzen, wird die erste Seite (bei fehlenden Antworten) erneut angezeigt, aber ''readGET()'' kann keinen Wert mehr einlesen. Dieses "kein Wert" würde den bereits korrekt hinterlegten Wert überschreiben. ===== Beispiel 1 ===== Wurde z.B. die Variable ''panelID'' mit dem Wert "12345" übermittelt (z.B. %%https://www.soscisurvey.de/demo/?panelID=12345%%), so kann man den Wert "12345" mit ''readGET('panelID')'' ermitteln. Die Verwendung von ''isset()'' stellt sicher, dass der eingelesene Wert nicht überschrieben wird, wenn die Seite später erneut aufgerufen wird (z.B. nach Verwendung des Zurück-Knopfes oder bei Wiederholung wg. fehlender Angaben). if (!isset($id)) { $id = readGET('panelID'); // Variable zur späteren Verwendung registrieren registerVariable($id); } ===== Beispiel 2 ===== Im folgenden Code-Beispiel werden auf der ersten Seite des Fragebogens zwei Variablen ''tic'' und ''pid'' eingelesen und als interne Variablen gespeichert. Die internen Variablen ''IV01_01'' und ''IV01_02'' müssen vorab im Fragenkatalog angelegt werden. Zusätzlich wird die Kennung aus ''pid'' als Platzhalter ''%pid%'' vorbereitet, so dass sie später in einem Redirect-Link verwendet werden kann (z.B. %%https://www.panelanbieter.com/redirect.php?user=%pid%%%) Hier wird mittels ''[[:de:create:functions:getroute|getRoute()]]'' sichergestellt, dass das Einlesen und vor allem das ''put()'' nur zu Beginn des Interviews durchgeführt wird. if (getRoute() == 'start') { $tic = readGET('tic'); put('IV01_01', $tic); $pid = readGET('pid'); put('IV01_02', $pid); // pid zusätzlich als Platzhalter für einen Redirect vorbereiten replace('%pid%', $pid); }