Zusätzliche Abfragezeichenfolge in Fehler-URL im Formular

  • Hintergrund:

    Ich wollte in meiner Website auf die Login-Seite Verweisen, wenn ein Formular-Knopf gedrückt wird, obwohl der Benutzer nicht angemeldet ist. Die Login-Seite soll dies von einem normalen Login-Aufruf unterscheiden weswegen ich "?reason=2" an die URL anhängen möchte. ==> Die Login-Seite kann dem Benutzer den Grund für den Aufruf erklären.


    Ich habe das noch mal am Original-Formular aus der Version 14.2.1 rekonstruiert. Von der Seite company.php verlinke ich zwei mal auf die Seite login.php (macht zwar keinen Sinn, zeigt aber das Problem).


    Zuerst parametriere ich die Fehler-URL dementsprechend:


    Danach geht es in die Vorschau und dort in den Quelltext.


    Code
    <input type="hidden" name="f_success" value="http://localhost:10975/external-preview/login.php">
    <input type="hidden" name="f_error" value="http://localhost:10975/external-preview/company.php">
    richtig wäre ja wohl:
    <input type="hidden" name="f_success" value="http://localhost:10975/external-preview/login.php">
    <input type="hidden" name="f_error" value="http://localhost:10975/external-preview/login.php?reason=2">

    Mache ich irgendetwas falsch? Ist das bekannt? Gibt es einen Workaround?


    Viele Grüße

  • Hallo VhdlGuru ,


    ich verstehe jetzt noch nicht ganz, warum Du das so kompliziert machst. Wenn Du das Formular innerhalb des geschützten Bereiches platzierst und dann auf das Formular verlinkst, bekommt der Besucher entweder den Anmeldebildschirm zu sehen oder aber (wenn er sich bereits in einem anderen Abschnitt der Homepage im selben geschützten Bereich angemeldet hat) direkt das Formular zu sehen.

  • Hallo Hanabi,

    vielleicht habe ich noch nicht ganz verstanden was ich hier so kompliziert mache. Aber ich lerne ja gerne dazu.


    Ich verwende das Formular-Widget in leicht veränderter Form mit eigenen PHP-Scripts. Von verschiedenen Formularen, oder auch Seitenaufrufen, komme ich dann zurück auf die Login-Seite. Um den Benutzer nicht zu verwirren, möchte ich ihm mitteilen, warum er wieder dorthin zurückgekommen ist. Hat er eine Seite aufgerufen, welche ein Login erfordert, er aber nicht eingeloggt ist, kommt er auf die Login-Seite mit der Begründung, dass diese Seite ein Login erfordert. Die Login-Seite wird dann mit ?reason=xyz aufgerufen. Ein nettes PHP-Script blendet darauf eine Hinweisbox ein, dass er sich für die vorhergehende Aktion einloggen muss. Oder aber dass Passwort passte nicht zum User, dann eben mit ?reason=zyx. Dann wird ausgegeben, dass das Tupel user-name/passwort nicht passt.


    Im letzten Fall wollte ich dem Fehler-Link die Zeichenfolge ?reason=zyx mitgeben und erwarte eigentlich, dass dann login.php?reason=zyx und nicht company.php aufgerufen wird.


    Vielleicht denke ich etwas zu kompliziert, aber meine Philosophie ist an der Stelle, dem Benutzer mitzuteilen warum er unerwarteter Weise auf diese Seite umgeleitet wurde. Und dafür die Zusätzliche Abfragezeichenfolge zu verwenden ist doch eigentlich Systemkonform.


    Was den geschützten Bereich eines Formulares angeht, wie oben beschrieben, habe ich noch nicht erkannt für was ich ihn benutzen kann. Ich schütze meine Website mit .htaccess und meine Datenbank auf Benutzerebene. Zweiteres verwalte ich rein mit PHP um die Datenbank nur von meinem Server aus zugänglich machen zu müssen.


    Ich kann zwar einen geschützten Bereich erstellen, aber wie kann ich denn über PHP oder ähnliches den geschützten Bereich für einzelne Benutzer freischalten?


    In der Hoffnung dazuzulernen
    Stefan (as VhdlGuru)

  • Hallo,


    da scheint was mit dem Feld "Zusätzliche Abfragezeichenfolge" nicht zu stimmen. Als Workaround am besten via jQuery den Parameter anhängen. Dazu einfach folgenden Code in das Attribut "footer_script" auf Seitenebene einfügen. https://docs.zeta-producer.com/attribute.html#a3393

    Code
    <script>
    $z("form.zp-form.zp14 input[name='f_error']").each(function() {
    var thisValue = $z(this).attr("value");
    $z(this).attr("value", thisValue + '?reason=2');
    });
    </script>

    Freundliche Grüße
    Steffen T. (Zeta Producer-Support)