Session Variabel im Link ändern

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

  • Session Variabel im Link ändern

    Tag allerseits.
    Habe ein kleines Problem. Ich möchte einen Link kreieren, der bei aufruf eine Variabel in eine Session reinschreibt.
    Hab's mal so probiert:

    PHP-Code:
    <?php
           
    echo("<a href=\"http://www.blablablablabla.etc\"?$_SESSION['var']='blah'>Blabla</a>");
    ?>
    Das gefällt PHP allerdings gar nicht:

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in blabla.php on line x
    Könnte mir da wohl jemand weiterhelfen? Wäre nicht undankbar.

  • #2
    Selbst wenn es möglich wäre sind da Syntax Fehler drinnen
    "Nicht jeder Mensch kann und soll Programmieren[...]".

    Kommentar


    • #3
      .... Stell dir mal vor du könntest alle Sessionvariablen über Get manipulieren.... du könntest dich einfach als "jedermann" überall einloggen und noch viel viel mehr Schindluder treiben.... Sogar register_globals wird in php6 komplett wegfallen....
      signed oder unsigned... das ist hier die Frage

      Kommentar


      • #4
        PHP-Code:
        echo("<a href=\"http://www.blablablablabla.etc\"?$_SESSION['var']='blah'>Blabla</a>"); 
        Zum einen: korrekte Stringverknüpfung. Zum anderen ergibt das nicht korrekten HTML Code und zur Krönung ist es der falsche Weg

        Stringverknüpfung
        PHP-Code:
        echo("<a href=\"http://www.blablablablabla.etc?$_SESSION[var]=blah\">Blabla</a>");
        //besser
        echo("<a href=\"http://www.blablablablabla.etc?".$_SESSION['var']."=blah\\">Blabla</a>");
        //meine bevorzugte Variante
        echo('<a href="
        http://www.blablablablabla.etc?'.$_SESSION['var'].'=blah">Blabla</a>'; 
        Bei Session werden nicht die einzelnen Werte via URL übertragen sondern nur die Session ID. Anhand der ID kann dann der Server feststellen welche Session Vars vorhanden sind. Wenn du die Session Vars via URL übeträgst kannst du gerade so gut auf Sessions verzichten und die Werte via POST oder GET durchschleifen.
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          http://example.de/?in_session_speichern=2

          PHP-Code:
          if (isset($_GET['in_session_speichern']))
          {
             if ()
          # abfragen ob die eingabe ok ist
             
          {
                if ()
          # abfragen ob die eingabe auch SICHER ist
                
          {
                    
          $_SESSION['variable'] = $_GET['in_session_speichern'];
                }
             }

          so würde ich das "problem" lösen
          Gruß
          Uzu

          private Homepage

          Kommentar


          • #6
            Original geschrieben von jahlives
            Zum einen: korrekte Stringverknüpfung. Zum anderen ergibt das nicht korrekten HTML Code und zur Krönung ist es der falsche Weg

            Stringverknüpfung
            PHP-Code:
            echo("<a href=\"http://www.blablablablabla.etc?$_SESSION[var]=blah\">Blabla</a>");
            //besser
            echo("<a href=\"http://www.blablablablabla.etc?".$_SESSION['var']."=blah\\">Blabla</a>");
            //meine bevorzugte Variante
            echo('<a href="
            http://www.blablablablabla.etc?'.$_SESSION['var'].'=blah">Blabla</a>'; 
            Ok, Schlaumeier. Dann sag mir mal, was du da eigentlich versuchst.
            Anstatt schlau zu tun sollteste lieber mal vor deiner eigenen Tür wischen.
            Diese Zeile da
            PHP-Code:
            echo("<a href=\"http://www.blablablablabla.etc?".$_SESSION['var']."=blah\\">Blabla</a>"); 
            und auch die andere "bessere" fügt den WERT der Sessionsvariabel in den Link ein und setzt ihn "blah" gleich. Wäre "Blah" also "1" und die Sessionsvariabel "0" dann erhielteste folgender html code:

            <a href = "http://www.blablablablabla.etc?0=1

            Was offensichtlich sinnlos ist.
            Genauso sinnlos wäre beispielsweise:

            <a href = "http://www.blablablablabla.etc?false=true

            Bei Session werden nicht die einzelnen Werte via URL übertragen sondern nur die Session ID. Anhand der ID kann dann der Server feststellen welche Session Vars vorhanden sind. Wenn du die Session Vars via URL übeträgst kannst du gerade so gut auf Sessions verzichten und die Werte via POST oder GET durchschleifen.
            Na immerhin etwas konstruktives in deiner Antwort.
            Danke. (Auch dafür, dassde mich auf die Schreibfehler aufmerksam gemacht hast.)

            case
            .... Stell dir mal vor du könntest alle Sessionvariablen über Get manipulieren.... du könntest dich einfach als "jedermann" überall einloggen und noch viel viel mehr Schindluder treiben.... Sogar register_globals wird in php6 komplett wegfallen....
            So'n ...
            Heisst wohl, ich muss das ganze wieder auf den Kopf stellen.
            Danke trotzdem.

            xkl1986
            Selbst wenn es möglich wäre sind da Syntax Fehler drinnen
            Das nehme ich doch an, wenn's nicht funktioniert. ^^
            Wie zum Beispiel?

            EDIT: Vergiss die Frage, hab's, glaube ich.
            Zuletzt geändert von Infcom_F06; 19.06.2008, 13:13.

            Kommentar


            • #7
              Original geschrieben von UzumakiNaruto
              http://example.de/?in_session_speichern=2

              PHP-Code:
              if (isset($_GET['in_session_speichern']))
              {
                 if ()
              # abfragen ob die eingabe ok ist
                 
              {
                    if ()
              # abfragen ob die eingabe auch SICHER ist
                    
              {
                        
              $_SESSION['variable'] = $_GET['in_session_speichern'];
                    }
                 }

              so würde ich das "problem" lösen
              Danke, aber wie baue ich das in einen Link ein? ich will ja keine Navigation aus Buttons zusammenbasteln. ^^

              Kommentar


              • #8
                Original geschrieben von Infcom_F06
                Danke, aber wie baue ich das in einen Link ein? ich will ja keine Navigation aus Buttons zusammenbasteln. ^^
                Original geschrieben von UzumakiNaruto
                http://example.de/?in_session_speichern=2

                hmm .. <a href="?in_session_speichern=2">LINK</a>
                Gruß
                Uzu

                private Homepage

                Kommentar


                • #9
                  Ok, Schlaumeier. Dann sag mir mal, was du da eigentlich versuchst.
                  Anstatt schlau zu tun sollteste lieber mal vor deiner eigenen Tür wischen.
                  Du nap: Das ist doch dein Ansatz gewesen, Jahlives hat sich nur
                  erbarmt und dir gezeigt wie man strings in php richtig verknüpft

                  Also wirklich, wenn du dich in einem forum anmeldest, eine
                  dumme frage stellst und dich dann bei konstruktiven antworten
                  noch aufführst wie die axt im wald, dann könntest du dich auch gleich
                  in eigenem Interesse wieder löschen...

                  Kommentar


                  • #10
                    Hehe ... der TS ist gut, hat von nichts 'ne Ahnung und greift auch noch jahlives an

                    Kommentar


                    • #11
                      Du nap: Das ist doch dein Ansatz gewesen, Jahlives hat sich nur
                      erbarmt und dir gezeigt wie man strings in php richtig verknüpft
                      Korrektur: das war mein falscher Ansatz. Hab das ganze nochmals gelesen und den Schreibunterschied bemerkt.
                      Die eigentliche Idee:
                      PHP-Code:
                      <?php
                              
                      echo("<a href= \"http://blablablablablabl.etc?".'$_SESSION[var]'."=blah\">Blabla</a>");
                      ?>
                      Hatte vergessen, dass PHP die Variabeln ausliest, wenn die " benutzt werden.
                      Die nun fehlenden ' in $_SESSION[VAR]=blah waren wohl, was er meinte.
                      Möchte mich hier offiziell entschuldigen.

                      hmm .. <a href="?in_session_speichern=2">LINK</a>
                      ... OK, mein Fehler. Hatte den Link ignoriert, weil ich glaubte, das sei eine Refferenz. Danke.

                      Hehe ... der TS ist gut, hat von nichts 'ne Ahnung und greift auch noch jahlives an
                      Tut mir furchtbar leid, dass ich "von nichts 'ne Ahnung" habe. Wüsste ich es bereits besser, wäre ich wohl kaum hier.
                      Ach, und zum Thema "angreifen":
                      Die Wortwahl in diesem Satz da
                      Zum einen: korrekte Stringverknüpfung. Zum anderen ergibt das nicht korrekten HTML Code und zur Krönung ist es der falsche Weg
                      grenzt schon beinahe an Arroganz und ging mir auf den Keks. Tut mir leid. (Keine Ironie in den letzten beiden Sätzen.)
                      Zuletzt geändert von Infcom_F06; 19.06.2008, 13:46.

                      Kommentar


                      • #12
                        Ok, Schlaumeier. Dann sag mir mal, was du da eigentlich versuchst.
                        Anstatt schlau zu tun sollteste lieber mal vor deiner eigenen Tür wischen.
                        Diese Zeile da
                        Na das so glorreiche Konzept stammt von dir!
                        Ich habe dir explizit gesagt
                        und zur Krönung ist es der falsche Weg
                        Aber bitte. Ich war so nett und habe dir deinen Fehler aufgezeigt, der zum PHP Parser Fehler führte. Und dann immer noch so grosse Töne
                        **denUserIgnorierenButtonKlick**
                        Von mir kriegst du hier keinerlei Hilfe mehr
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          grenzt schon beinahe an Arroganz und ging mir auf den Keks.
                          Also dann mal so und lerne die elementarsten Grundlagen. Besser so?
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar

                          Lädt...
                          X