Session ohne Cookies

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

  • Session ohne Cookies

    Hallo, ich möchte eine Webseite programmieren, in die sich der User einloggen muss.

    Dazu habe ich folgende zwei Skripte geschrieben:

    PHP-Code:
    <?php
      
    @session_start();

      
    $_SESSION["user"] = "dagegen";

      echo 
    "Session: ".$PHPSESSID."<br />";
      echo 
    "<a href=\"test2.php?PHPSESSID=".$PHPSESSID."\">weiter</a>";

    ?>
    und

    PHP-Code:
    <?php
      
    @session_start();
      echo 
    "user: ".$_SESSION["user"];
    ?>
    Der PHP-Webspace ist von einem Provider, d.h. an die php.ini komme ich nicht dran. Wie kann ich die Benutzung von Cookies unterbinden?

    Wenn ich im Browser das Annehmen von Cookies abstelle, funktioniert obiges Testskript nicht mehr.

  • #2
    29.4. Wie übergebe ich Session-IDs ohne Cookies an eine andere Seite? Was ist Fallback?
    http://www.php-faq.de/q/q-sessions-fallback.html

    Gruß
    Uwe

    Kommentar


    • #3
      Ja, das ist doch schon klar. Ich übergebe in meinem obigen Skript doch schon die Session-ID manuell.

      Aber wenn der Browser keine Cookies akzeptiert, ist "SID" und "PHPSESSID" leer. Und ich weiß nicht warum.

      Kommentar


      • #4
        Einfach mal das @ vor session_start rausnehmen, vielleicht möchte dir PHP dann was sagen.

        Gruß
        phpfan

        Kommentar


        • #5
          Nein, es sagt nichts. Wenn der Browser keine Cookies annimmt, bleiben die Variablen einfach leer.

          Kommentar


          • #6
            ich verstehe zwar nicht, warum du unbedingt die cookies unterbinden willst, aber hier:


            schau dir dazu mal etwas zu

            .htaccess und php_flag session.use_trans_sid

            und ähnliche einstellung zu htaccess an...


            tschau

            dioony
            Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung.
            [Albert Einstein

            Kommentar


            • #7
              Ich will nicht Cookies unterbinden, ich wollte wissen, was passiert, wenn der User Cookies deaktiviert hat. Und dann funktioniert plötzlich mein Skript nicht mehr!

              Kommentar


              • #8
                PHP-Code:
                ini_set('session.use_cookies',false); 
                An den Anfrang des Scriptes und die Übertragung der Session Cookies wird unterbunden.
                PHP-Code:
                <?php
                  
                @session_start();

                  
                $_SESSION["user"] = "dagegen";

                  echo 
                "Session: ".$_SESSION['user']."<br />";
                  echo 
                "<a href=\"test2.php?PHPSESSID=".$_SESSION['user']."\">weiter</a>";

                ?>
                Gruss

                tobi
                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


                • #9
                  ein paar anmerkungen:

                  1. vergiss das @
                  2. die session muss nicht PHPSESSID heissen. lieber session_name() nutzen.
                  3. jahlives: warum ein wort statt der sid übertragen?
                  4. im ff + devbar lässt sich die cookies-akzeptanz problemlos ein- und ausschalten.
                  5. lass dir ausgeben (und zeig hier im forum), was in der phpinfo() zum thema sessions alles eingestellt ist.

                  Kommentar


                  • #10
                    jahlives: warum ein wort statt der sid übertragen?
                    Das war nur sein Beispiel. Er fragte sich warum seine Session nicht übergeben wird, wenn die Cookies deaktiviert sind.
                    Aber korrekterweise wäre es wohl so was
                    PHP-Code:
                    <?php
                      
                    @session_start();

                      
                    $_SESSION["user"] = session_id;

                      echo 
                    "Session: ".$_SESSION['user']."<br />";
                      echo 
                    "<a href=\"test2.php?PHPSESSID=".$_SESSION['user']."\">weiter</a>";

                    ?>
                    Gruss

                    tobi
                    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


                    • #11
                      eigentlich auch nicht.

                      1. ist session_id() eine fkt. und keien konstante.
                      2. die sid wird schon ohnehin bekannt sein und muss nicht zusätzlich in einer sessionvariable abgelegt werden, weil doppelt-gemoppelt == redundanz == fehleranfälligkeit.

                      Kommentar


                      • #12
                        2. die sid wird schon ohnehin bekannt sein und muss nicht zusätzlich in einer sessionvariable abgelegt werden, weil doppelt-gemoppelt == redundanz == fehleranfälligkeit.
                        Danke für den Hinweis. Habe in dem Fall bis jetzt immer doppelt gemoppelt

                        Gruss

                        tobi
                        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
                          PHP-Code:
                            session_start();
                            
                          $_SESSION["user"] = "dagegen";

                            echo 
                          '<a href="test2.php?'.session_name().'='.session_id().'">weiter</a>';




                          //oder wenn zuviel Tipperei
                            
                          session_start();
                          $sess session_name().'='.session_id();
                           
                          $_SESSION["user"] = "dagegen";

                            echo 
                          '<a href="test2.php?'.$sess.'">weiter</a>'
                          auf der test2.php kannst du dann die user variable auslesen und den inhalt sehen
                          mfg
                          marc75

                          <Platz für anderes>

                          Kommentar

                          Lädt...
                          X