kostenloser Webspace werbefrei: lima-city


Erstellter Zurück Button - Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fr4mer

    fr4mer hat kostenlosen Webspace.

    Hallo,

    habe folgendes Problem:

    Ich habe in einem meiner Projekte einen Zurück-Button implementiert, der sich den $_SERVER[HTTP_REFERER] zu nutze macht, um sich zu merken, von welcher Seite der Benutzer gekommen ist.
    Diesen speicher ich im globalen Session-Array, damit ich immernoch weiss, wohin ich zurück gehen muss, wenn der Benutzer von einer der "Unterseiten" der Seite mit dem Zurück-Button zurückkehrt.

    Sobald der Benutzer den Zurük-Button betätigt wird der gespeicherte Link, der vorher aus dem Referer ausgelesen wurde, wieder gelöscht, damit beim nächsten Aufruf eine neue Seite als "Zurück"-Seite gewählt werden kann.

    Problematisch ist nun aber, dass der Benutzer auch auf eine andere Seite, als die genannten "Unterseiten" gehen kann. Dabei wird aber die Sesseion-Variable nicht gelöscht und ich habe mir immernoch gemerkt, auf welche Seite mein Button zurück geht.

    Wenn der Nutzer nun diesen Abschnitt meines Projekts erneut startet, geht der Button immernoch auf den vorherigen Referer zurück, statt auf den neuen.

    Meine Idee wäre, dass ich den Referer bei allen Seiten, die der Benutzer öffnet überprüfe, ob es eine Seite ist, bei der ich den Referer löschen muss, oder nicht. Das können mitunter aber sehr viele sein und wird öfters vorkommen, dass ich das machen müsste.

    Irgendjemand eine Idee, wie das besser zu lösen wäre?

    mfg Fr4meR
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. fr4mer schrieb:

    Irgendjemand eine Idee, wie das besser zu lösen wäre?

    mfg Fr4meR


    Meine Idee wäre, das via Sessions zu lösen.. Und zwar indem du die ID's Filterst und dann für die Unterseiten zum Beispiel "sid" hast und für die Oberseiten "sessionid" , dann schauhst du, ob der Benutzer eine "sessionid" oder eine "sid" hat und kannst dann beispielsweise bei "sid" den referer löschen...
  4. Mittels Javascript:

    History.back();

    Sollte so funktionieren.
  5. Autor dieses Themas

    fr4mer

    fr4mer hat kostenlosen Webspace.

    kaffeeliste schrieb:
    Mittels Javascript:

    History.back();

    Sollte so funktionieren.


    Würde nicht funktionieren, da mich dies auf eine der bereits angesprochenen "Unterseiten" zurückbringen würde..

    kill-a-teddy schrieb:

    Meine Idee wäre, das via Sessions zu lösen.. Und zwar indem du die ID's Filterst und dann für die Unterseiten zum Beispiel "sid" hast und für die Oberseiten "sessionid" , dann schauhst du, ob der Benutzer eine "sessionid" oder eine "sid" hat und kannst dann beispielsweise bei "sid" den referer löschen...


    Kannst du mir das näher beschreiben? Ich habs nicht ganz verstanden. :)

    Beitrag zuletzt geändert: 22.7.2011 11:56:18 von fr4mer
  6. fr4mer schrieb:

    Kannst du mir das näher beschreiben? Ich habs nicht ganz verstanden. :)


    Aber natürlich :P

    Du kannst eine Session id ja anzeigen lassen, das funktioniert soo:

    <?php
    session_start();
    $sessionid = session_id();
    ?>


    Nun kannst du diese aber auf Filtern z.B. soo:

    <?php 
    session_start();
    $sessionid = session_id();
    $sid = session_id();
    ?>


    Du hast also zweimal das selbe, nur anders benannt ;)

    Dann erstellst du für jeden Benutzer eine Session und hast ja zum Beispiel "index.php" dort würdest dann die "sessionid" dem Benutzer zuweisen, es wird dort dann kein referer gespeichert... Dann kann du zum beispiel bei "/test/index.php" also im unterordner die "sid" dem Benutzer zuweisen, aber in der sid wird dann der referer gespeichert, in der sessionid nicht (:

    Halbwegs verstanden?
  7. Autor dieses Themas

    fr4mer

    fr4mer hat kostenlosen Webspace.

    Hm, ich verstehen nicht ganz, auf was du dann nachher prüfst. :(

    Der Inhalt von sid und sessionid sind doch genau gleich, wie soll ich dann nachher prüfen können, ob ich den Referer speicher oder nicht speicher?
  8. fr4mer schrieb:
    Hm, ich verstehen nicht ganz, auf was du dann nachher prüfst. :(

    Der Inhalt von sid und sessionid sind doch genau gleich, wie soll ich dann nachher prüfen können, ob ich den Referer speicher oder nicht speicher?


    Ich prüfe ja auch net, ich weise zu...

    Die sid bekommt den referer zugewiesen, die sessionid nicht.. ^^

    Ist auch i.wie sehr kompliziert aber viel mehr fiel mich net ein :/

    Höchstens mit JavaScript, aber da hast du (glaube ich, bin net sicher) genau das selbe Problem, wenn du nur eine bestimmte länge der historie speicherst...


    zurück.js
    if(history.length > 1){
    document.write('<a href="javascript:history.back();">Zurück</a>');
    }



    index.php
    <script src="zurück.js" type="text/javascript"></script>



    //Edit:

    Ich hab noch was gefunden, was vielleicht deine Lösung sein könnte: (:

    Blur und Focus

    Beitrag zuletzt geändert: 22.7.2011 12:33:43 von kill-a-teddy
  9. Autor dieses Themas

    fr4mer

    fr4mer hat kostenlosen Webspace.

    Ich prüfe ja auch net, ich weise zu...

    Die sid bekommt den referer zugewiesen, die sessionid nicht.. ^^

    Ist auch i.wie sehr kompliziert aber viel mehr fiel mich net ein :/


    Ah, jetzt hats bei mir Klick gemacht, zumindest glaub ich das :D

    Im Grunde müsste ich dann aber bei deiner Lösung trotzdem von Hand her gehen und bei jeder "Unterseite" von Hand einfügen, dass hier der Referer gespeichert wird oder nicht.

    Höchstens mit JavaScript, aber da hast du (glaube ich, bin net sicher) genau das selbe Problem, wenn du nur eine bestimmte länge der historie speicherst...


    Die JavaScript-Lösung vpn die würde das gleiche Problem machen. Ich hatte es bereits so ähnlich, wie dus geschrieben hast, nur haben sich die Nutzer dann eben immer beschwert, dass sie teilweise nicht auf die richtige Seite zurück kommen.

    Ich denke, dass ich den Zurück-Button einfach entferne und dafür einen Abbruch-Button einführ, der dann auf eine fest definierte Seite verlinkt.

    Ich dank dir jedenfalls für die Mühe, die du dir gemacht hast :)
  10. fr4mer schrieb:

    Im Grunde müsste ich dann aber bei deiner Lösung trotzdem von Hand her gehen und bei jeder "Unterseite" von Hand einfügen, dass hier der Referer gespeichert wird oder nicht.


    Jein... Du kannst ja auch einfach bei den Unterseiten eine Verlinkung zu einer neuen Php datei erstellen, wo dein referer dann drinne steht :P

    Dann hast du praktisch nur den require once teil, den du überall einfügen musst und dann aber eine neue Datei meinetwegen "referer.php", wo deine Funktion drinne steht ^^

    Ist zwar nicht grad Traffic schonend, aber erspaart Arbeit :P

    Beitrag zuletzt geändert: 22.7.2011 12:40:07 von kill-a-teddy
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!