Session mit Link ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session mit Link ändern

    Hallo,
    ich habe vor, mit Hilfe eines Links, erst eine Session-Variable zu ändern und dann die Seite zu wechseln bzw. die selbe Seite neu zu laden.

    Vorteil hierbei ist, dass man nicht mit GET arbeiten muss und somit den Inhalt, zumindestens nicht direkt, in der Url sieht.

    Es handelt sich hier um Pfad-Angaben, die ich ungern in der Url mitgeben möchte.

    Im Grunde habe ich die Lösung schon. Zumindestens für einen "manuellen " Link.

    PHP-Code:
    <?
    session_start();


    function change_dir($dir) {
      session_start();
      $_SESSION['pfad']=$dir;
      $_SESSION['page']="list";
    }

    if(!isset($_SESSION['pfad'])) {
       $_SESSION['pfad']="Ordner";
    }

    echo $_SESSION['pfad']."<br>";

    $dir="test"

    ?>

    <a href="<? echo $_SERVER['PHP_SELF']; ?>" onClick="<? change_dir($_SESSION['pfad']."/".$dir); ?>" >Klick hier</a>
    Nun möchte ich die Links gerne dynmisch erstellen und in ein Array speichern, um sie später mit hilfe einer Schleife auszugeben.

    Und genau da liegt mein Problem. Ich bekomme den Link nicht so formatiert, dass er so in dem Array geschieben wird, dass er später funktioniert.

    Ich habe folgendes Probiert:

    PHP-Code:
    $link[1]="<a href=\"".$_SERVER['PHP_SELF']."\" onClick=\"".change_dir($_SESSION['pfad']."/".$dir)."\">Klick hier</a>"
    Dies funktioniert so nicht. Meistens führt er die Funktion sofort aus und nicht bei "onClick". Was ja irgendwie logisch ist.

    Hat da vielleicht jemand einen Tip für mich?

    Danke und Gruß

    Timo

  • #2
    mod rewrite wär auch ne Lösung,
    dann siehst z.B. immer nur index.html in der Adreßzeile.

    Kommentar


    • #3
      Re: Session mit Link ändern

      Original geschrieben von bomberpilot
      Meistens führt er die Funktion sofort aus und nicht bei "onClick". Was ja irgendwie logisch ist.
      Nicht "meistens", sondern immer.
      Und ja, das ist logisch, weil PHP serverseitig abläuft.


      Und dein eigentliches Problem, bzw. warum du so vorgehen willst, kann ich nicht erkennen.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Es handelt sich hier um Pfad-Angaben, die ich ungern in der Url mitgeben möchte.
        Seltsam, dass eine URL idR. genau dafür gedacht ist...

        onClick="<? change_dir($_SESSION['pfad']."/".$dir); ?>"
        wenn das deine "Lösung" ist, dann doch bitte nochmal den unterschied zwischen Serverseitiger und Klientseitiger Programmierung verdeutlichen. Guck dir mal den geneierten HTML-Quelltext an.

        Dies funktioniert so nicht. Meistens führt er die Funktion sofort aus und nicht bei "onClick". Was ja irgendwie logisch ist.
        Richtig. Gleiches macht er aber auch wenn du den Link "manuell" erstellst. S.o.

        Hat da vielleicht jemand einen Tip für mich?
        Verwerfe diese Idee. Es gäbe vielleicht eine Möglichkeit mittels AJAX, aber 1. macht das keinen Sinn und zweitens macht es noch weniger Sinn.

        Kommentar


        • #5
          Hallo,
          hier noch einmal ein paar Erklärungen.

          Ich lese Verzeichnisse/Unterverzeichnisse und deren Dateien aus.

          Die Verzeichnisse werden in einer Baumstruktur mit paar Grafiken und einem Link dargestellt.

          Code:
          Stammordner
          |
           -> Ordern1
          |    |
          |    -> Unterordner1
          |
           -> Ordner2
          Hierbei arbeite ich natürlich mit angabe des vollen Pfades ( /var/www/homepage/archiv )
          Diesen Pfad möchte ich ungern als GET variable weitergeben

          Code:
          http://www.server.de/test.php?pfad=/var/www/homepage/archiv/ordern1
          Hier kann man durch Crossscoding oder was auch immer, auf einfachste Weise Manipultaion betreiben.

          Darum mein Gedanke den Pfad in einer Session zu speichern.

          Den Link manuell und als HTML angelegt funktioniert ohne Probleme mit dem onClick verfahren und PHP. Ob Ihr es glaubt oder nicht. ;-)

          PHP-Code:
          <a href="<? echo $_SERVER['PHP_SELF']; ?>" onClick="<? change_dir($_SESSION['pfad']."/".$dir); ?>" >Klick hier</a>
          Es wird zunächst die Funktion aufgerufen, die die Session Variable ändert, schließen wird die Seite neu geladen und die aktuelle Session Variable korrekt ausgegeben.

          Wenn das ganze so funktioniert, warum sollte man es dann nicht über diesen Weg lösen?

          Kommentar


          • #6
            Hierbei arbeite ich natürlich mit angabe des vollen Pfades ( /var/www/homepage/archiv )
            Wieso natürlich??? Warum überhaupt?

            Den Link manuell und als HTML angelegt funktioniert ohne Probleme mit dem onClick verfahren und PHP. Ob Ihr es glaubt oder nicht. ;-)
            Ja sicher! Aber nicht SO wie du glaubst. Schließlich handelt es sich hierbei um EINEN (1) Link.

            PHP-Code:
            <a href="<? echo $_SERVER['PHP_SELF']; ?>" onClick="<? change_dir($_SESSION['pfad']."/".$dir); ?>" >Klick hier</a>
            übersetzt im HTML-Quelltext der Seite:
            Code:
            <a href="test.php" onClick="" >Klick hier</a>
            Was soll daran jetzt großartig funktionieren.

            Die Funktion wird dann ausgeführt, wenn alle anderen PHP-Funktionen des Codes auch ausgeführt werden. Basta. Da kannste dir dein OnClick sonst wohin stecken. change_dir könnte genauso gut vor oder nach dem code aufgerufen werden. Du merkst was Sache ist?

            Wenn das ganze so funktioniert, warum sollte man es dann nicht über diesen Weg lösen?
            Wenn das Wörtchen Wenn nicht wäre...

            Kommentar


            • #7
              Original geschrieben von bomberpilot
              Hier kann man durch Crossscoding oder was auch immer, auf einfachste Weise Manipultaion betreiben.
              Dann überprüfe den übergebenen Parameter vernünftig auf Gültigkeit.

              Stelle Validierungsregeln auf - welche Zeichen, welche Verzeichnisnamen enthalten/nicht enthalten sein dürfen, etc. - und arbeite diese ab, bevor du den Parameter dann verwendest.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                OK,
                ich habe es jetzt anders gelößt.

                Ich übergebe die Verzeichnisse weiterhin in eine Session aber als Array mit einer zufalls id pro verzeichnis.

                Als GET Variable übergebe ich nun die id des verzeichnisses, welches ich öffnen will.

                Diese id wird auf Gültigkeit geprüft und der Pfad dann dementsprechend ausgelesen.

                Ich denke so geht es auch und sollte ebenfalls sicher sein. ;-)

                Danke für eure Hilfe und Bemühungen mich zu überzeugen ;-)

                Gruß

                Timo

                Kommentar


                • #9
                  Ich denke so geht es auch und sollte ebenfalls sicher sein. ;-)
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar

                  Lädt...
                  X