0 votes
in SoSci Survey (dt.) by s000752 (260 points)
edited by SoSci Survey

Herzlichen Dank für die angebotene Hilfe,

Ich habe am WE unterrichtet und kann daher jetzt erst antworten.

Nach vielen Versuchen und tagelangem "Trail and Error" zugegeben aus mangelndem Wissen mit Gemini ai Hilfe bin ich noch nicht am Ziel.

Ich versuche das Dilemma zu beschreiben:

Seite 1: Die Intro-Seite von Sosci (leer)

Seite 2: PHP Routing

Was soll der Code können?
Ich möchte am ersten Tag eine Seite mit Willkommen haben (Datenschutz, Einverständniserklärung etc.) auf dem ein Vermerk zu sehen ist der den Tag (Tag 1) oder erster Tag der Studie ersichtlich ist. Das ist Seite 4

Erläuterung: Die Befragung soll 21 Tage täglich erfolgen.

Seite 3: Am ersten Tag sollen die Soziodaten und weiter Daten die nur einmal erhoben werden ausgefüllt werden.

Seite 5: Hier befindet sich ein Fragenblock der 21 Tage mit Skalierung ausgefüllt werden soll.

Seite 6: Hie soll ein Dank für das Ausfüllen erscheinen mit dem Hinweis den Link am nächsten Tag wider zu verwenden.

Auf der end-Seite von Sosci steht ein finaler Dank für die teilnähme. Der soll nach 21 Tagen erscheinen.

Mit den Angaben von Gemini komme ich nicht weiter.

Daher bitte ich erneut um Unterstützung. Morgen ist Abgabe.
Herzlichen Dank

PHP Seite

// PHP-Code auf SEITE 02: Datumsbasierte Tagesermittlung & Routing
$start_date_str = '2025-10-08'; 
$today_str = date('Y-m-d'); 
$start_ts = strtotime($start_date_str);
$today_ts = strtotime($today_str);
$days_diff = floor(($today_ts - $start_ts) / 86400); 
$tag_nummer = $days_diff + 1;

if ($tag_nummer < 1) {
    $tag_nummer = 1; 
}

// *** ZAHLEN IN TEXT UMWANDELN ***
$tag_text_array = array(
    1 => 'erster', 2 => 'zweiter', 3 => 'dritter', 4 => 'vierter', 
    5 => 'fünfter', 6 => 'sechster', 7 => 'siebter', 8 => 'achter', 
    9 => 'neunter', 10 => 'zehnter', 11 => 'elfter', 12 => 'zwölfter', 
    13 => 'dreizehnter', 14 => 'vierzehnter', 15 => 'fünfzehnter', 
    16 => 'sechzehnter', 17 => 'siebzehnter', 18 => 'achtzehnter', 
    19 => 'neunzehnter', 20 => 'zwanzigster', 21 => 'einundzwanzigster'
);

$tag_ausgabe_text = $tag_text_array[$tag_nummer] . ' Tag';

// WICHTIG: Speichert den Text in der stabilen Variablen CT01_01
put('CT01_01', $tag_ausgabe_text); 

// Routing-Logik (mit Ihren bestätigten IDs: Willkommen, DAY1, PD04Prozessdaten, DailyDank, End)
if ($tag_nummer == 1) {
    // TAG 1: Soziodaten MÜSSEN zuerst kommen
    setPageOrder(array('Willkommen', 'DAY1', 'PD04Prozessdaten', 'DailyDank')); 

} else if ($tag_nummer >= 2 && $tag_nummer <= 20) {
    // TAG 2-20: Tägliche Abfolge OHNE Soziodaten
    setPageOrder(array('Willkommen', 'PD04Prozessdaten', 'DailyDank'));

} else if ($tag_nummer >= 21) {
    // TAG 21 UND SPÄTER: Letzter Tag, leitet zur finalen Endseite
    setPageOrder(array('Willkommen', 'PD04Prozessdaten', 'DailyDank', 'End'));
} else {
    // Fallback
    setPageOrder(array('Willkommen', 'PD04Prozessdaten', 'DailyDank'));
}

// Löscht den Code auf den folgenden Seiten, da setPageOrder alles steuert.
unset('DAY1', 'PD04Prozessdaten', 'DailyDank'); 

goToPage('Willkommen'); 
pageStop();




Seite 05 PD04Prozessdaten

// PHP-Code am ANFANG von SEITE 06 (PD04Prozessdaten)
$tag = value('D00_01'); // KORRIGIERTE VOLLE KENNUNG

if (($tag != 7) && ($tag != 14) && ($tag != 21)) {
    goToPage('DailyDank'); 
    pageStop(); 
}

1 Answer

0 votes
by SoSci Survey (357k points)

Bitte hören Sie auf, an KI-Modelle zu glauben. Es handelt sich bei allen aktuellen Modellen im Sprachmodelle, welche für Sprache (Übersetzungen, Zusammenfassungen, verbreitete Programmiersprachen und -Frameworks) ganz hervorragend funktionieren. Aber von SoSci Survey haben sie nunmal keine Ahnung.

Sie haben in Ihrer Frage nicht geschrieben, welche Fehlremeldung genau gezeigt wird, aber spantan würde ich tippen, dass sich SoSci Survey über diese Zeile beschwert:

unset('DAY1', 'PD04Prozessdaten', 'DailyDank');

Denn unset() hat nicht nur eine ganz andere Funktion als im Kommentar darüber beschrieben, der Befehl ist (aus guten Gründen) in SoSci Survey auch nicht erlaubt.

Bitte entfernen Sie einmal die letzten 4 Zeilen im Code (also alles ab // Löscht den Code) und testen Sie, wie gut es funktioniert. Durch Variation der folgenden Zeile können Sie testen, wie sich der Code an unterschiedlichen Tagen verhält:

$today_str = date('Y-m-d'); 
// Zum Testen z.B. für Tag 3
$today_str = '2025-10-10';

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

...