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

Liebes SosciSurvey Team,
ich habe einen php Code geschrieben, der einen Text mit Fehlerwarnung anzeigen lassen soll, wenn sich Teilnehmer:innen mit einer anderen Url versuchen anzumelden als die mit Referenz versehenen. Das funktioniert bis hier auch. Falsche URL=Fehlermeldung.

Zum Problem:
Wenn Teilnehmer:innen den richtigen Link verwenden wird einem die ofizielle Startseite angezeigt und auch der Text mit der Fehlermeldung. Wie kann man das lösen?

Beide Texte sind auf einer Seite (Seite1) und der PHP Code steht am Anfang:
A001 ist der Fehlertext

// Überprüfen, ob die Referenz den festgelegten Wert enthält
$reference = reference();
$expectedReferences = array('1', '2');

if (!in_array($reference, $expectedReferences)) {
    // Wenn die Referenz nicht '1' und '2' ist, zeige den Text "A001" an
    text('A001');
    buttonHide();
    pageStop();
} else {
    // Wenn die Referenz '1' oder '2' ist, blende den Text "A001" aus
    text('A001', '');
}

1 Answer

0 votes
by SoSci Survey (306k points)

Im Moment steht der Text-Aufruf text('A001') sowohl im IF als auch im ELSE-Teil. Der zweitere (leere) Parameter im ELSE-Teil hat keine Funktion. Entsprechend wir der Text in beiden Fälle (also immer) angezeigt.

Meines Erachtens können Sie den ELSE-Teil komplett weglassen:

// Überprüfen, ob die Referenz den festgelegten Wert enthält
$reference = reference();
$expectedReferences = ['1', '2'];

if (!in_array($reference, $expectedReferences)) {
    // Wenn die Referenz nicht '1' und '2' ist, zeige den Text "A001" an
    text('A001');
    buttonHide();
    pageStop();
}
by s247843 (110 points)
Vielen Dank für die schnelle Antwort.

Mein einziges Problem ist leider immer noch, dass der Text A001 mit der Fehlermeldung auch dann angezeigt wird, wenn die Referenz im Link richtig ist (sprich Fehlermeldung+ Startseitentext direkt untereinander).

Beides ist auf einer Seite angelegt.
by SoSci Survey (306k points)
Stellen Sie bitte sicher, dass Sie den Text nur einmal auf der Seite einbinden. Wenn Sie den Text also nicht nur per text('A001') einbinden, sondern zusätzlich noch in die Seite gezogen haben, dann entfernen Sie das "in die Seite gezogen" wieder aus der Seite.
by s247843 (110 points)
Perfekt Danke dass es nicht in die Seite eingebunden sein darf hat mir sehr geholfen!
Ich habs jetzt doch noch mal in der Zwischenzeit etwas anders gemacht, aber das funktioniert auch super:

// Überprüfen, ob die Referenz den erwarteten Wert enthält
$reference = reference();
$expectedReferences = array('1', '2');

if (in_array($reference, $expectedReferences)) {
    // Wenn die Referenz gleich '1' oder '2' ist, zeige den Text "S101" an
    text('S101');
} else {
    // Wenn die Referenz ungleich '1' und '2' ist, zeige den Text "A001" an
    text('A001');
    buttonHide();
    pageStop();
}

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

...