Webentwicklung: $$Return mit HTTP_Referer

  • Das stimmt so nicht ganz,
    denn das $$ReturnFeld holt sich die URL aus dem HTTP_Referer direkt, und der Agent im WQS gibt die URL nur bei neu erstellten Dokumenten aus (Abfrage context.isNewNote).
    Das temporäre Feld wird beim Verlassen des Dokuments überhaupt nicht in das Dokument geschrieben, da es dann auch nicht gespeichert wird.
    Das temporäre Feld wird nur einmal während der "Lebenszeit" eines Dokuments benutzt, nämlich bei der Neuerstellung, ansonsten wird es ignoriert.
    Die Kombination aus dem $$Return Feld (wie beschrieben) und dem temporären Feld mit dem Agent im WQS müsste eigentlich in allen Fällen funktionieren.

  • Nun habe ich doch noch eine Frage.
    Ich habe festgestellt, dass im Internet Explorer (in meinem Falle IE 8) die CGI Variable HTTP_Referer leer ist, wenn man ein neues Dokument mit @Compose aus einem bereits zum Bearbeiten geöffneten Dokument heraus erstellt.
    Damit scheint die gefundene Lösung für den IE nicht baruchbar zu sein. Wenn ich ein Dokument aus einer Ansicht heraus erstelle funktioniert es allerdings auch mit dem IE.


    Gibt es da einen Trick den IE zu überlisten oder mache ich nur etwas falsch?

    • Offizieller Beitrag

    gib den Link doch aus dem Quelldokument weiter.


    Ist HTTP_Referer leer, dann verwendest Du den Link aus dem Quelldokument.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo
    ich habe die Lösung, wie ich sie oben beschrieben habe mit IE 8 und den Firefox getetestet:
    1. Dokument wird mit einer Aktion aus der Aktionsleiste der Ansicht neu erstellt, nach dem Speichern wird die Ansicht wieder geöffnet
    2. Dokument wird aus einem Dokument (Aktion in der Aktionsleiste der Maske) neu erstellt, nach dem Speichern wird das ursprüngliche Dokument in dem der Aktionsbutton angeklickt wurde wieder geöffnet.
    Die CGI-Felder werden eigentlich vom Server gesetzt und haben mit Explorer nichts zu tun.

  • @gerd


    Die Aussage, daß die CGI Felder vom Server gesetzt werden stimmt so nicht.
    Es werden dazu die Anfrageheader des Clients verwendet und wenn vom Client eben kein HTTP_Referer mitgeliefert wird kann man ihn auch nicht verwenden.


    Ausschalten kannst du das übrigens theoretisch bei jedem Browser, d.h. darauf verlassen kannst du dich nie.
    Eine sichere Lösung ist da eher die von Diali vorgeschlagene

  • Ja das ist richtig, die Felder werden im Header übertragen.


    Mit der Lösung von Diali, kann man nur die letzte URL bekommen.
    Was HornFreak aber möchte ist auf die vorletzte URL zurück zu kommen, also die Ansicht von der aus das Dokument geöffnet wurde, bzw. das Dokument von der aus ein "Compose" ausgeführt wurde.
    Dafür würde sich eigentlich die CGI-Variable "HTTP_Referer" anbieten, das scheint aber nicht zuverlässig zu funktionieren.

  • Wie bitte kommst du auf die vorletzte URL ?


    Das musst du mir jetzt mal wirklich erklären, denn der HTTP_Referer liefert auch nur die URL, die vor der aktuell aufgerufenen liegt und das ist meinem Verständnis nach die letzte und nicht die vorletzte URL

    • Offizieller Beitrag

    also mit der CGI-Variable HTTP_Referer bekommst Du immer nur die URL, von der Du die aktuelle URL aufgerufen hast.


    Die Lösung mit dem durchgereichten Feld kannst Du problemlos auf mehrere URLs ausbauen.


    Gruß
    Dirk

  • Hallo


    gerd, ja auch ich habe es mit IE 8 probiert aber da ist, wie gesagt nach dem @Compose der HTTP_Referer leer. Keine Ahnung woran das liegen könnte.


    Diali, das ist mir jetzt fast peinlich zu fragen: Wie bekomme ich denn den Link oder URL des aktuellen Dokuments zurück, meinst Du über Path_Info oder gibt es eine Notes - Formel (Habe ich gesucht und bisher keine gefunden)?


    Danke!

    • Offizieller Beitrag

    entweder über Path_info oder Du baust Dir die URL mit DocumentUniqueID, Ansicht, DB-Pfad und Dateiname usw. zusammen. Die Syntax steht in der Hilfe.


    Gruß
    Dirk

  • Hallo Dirk,


    das bedeutet aber, nach meinen Erfahrungen, dass das Feld mit dem Link schon im Ausgangsdokument vorhanden sein muss, damit es an die nächste Seite "durchgereicht" werden kann. Ich habe zum Beispiel versucht, den URL der aktuellen Seite in einem Feld berechnen zu lassen, während diese aufgerufen wird und wollte dieses Feld dann an die Folgeseite weiterreichen. Auf letzterer war das Feld dann leer. Offensichtlich können nur Felder vererbt werden, welche in dem Dokument abgespeichert sind.


    Gruß Uwe

    • Offizieller Beitrag

    ja die URLs der einzelnen Dokumente müssen im Dokument hinterlegt werden. Alternativ kannst Du Cookies dafür verwenden oder mit @URLHistory([Next]) / @URLHistory([Prev]) arbeiten.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein