Andavos: PHPSID an URL -> URL im Counter

Hallo,
Also ich habe einen Session Code (Adminmenü) auf meinem Server laufen.

Leider Akzeptier der Server nicht Cookies (ka warum :( ) also hängt er Automatisch die Session ID an die URL dran, ca so:

http://www.rpgcommunity.de/clanwissen/admin.php?was=admin&PHPSESSID=f0f4476959eba8b9a9aab668000b694d

Wenn ich jetzt aus dem Admin Menü rausgehe und kein Logout gemacht habe, so bleibt die Session ID an der URL "hängen".

Problem ist bloß: Ich habe Logfiles (für jeden einsehbar) und dort steht dann: http://www.rpgcommunity.de/clanwissen/admin.php?was=admin&PHPSESSID=f0f4476959eba8b9a9aab668000b694d

Also könnte die Person ohne Problem in Admin Menü, was nicht der sinn der Sache wäre.

Wie kann ich diese PHPSESSID von bestimmten Seiten entfernen lassen, damit es nich in den Logfiles erscheint.

(Die Seiten wo ich die ID brauche, die werden nicht gelogt)

Klar wäre es am leichtesten Cookies zu akzeptieren, aber ihr kennt die Provider ... ;)

MFG
Andavos

--
http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  1. Hello,

    Leider Akzeptier der Server nicht Cookies (ka warum :( ) also hängt er Automatisch die Session ID an die URL dran, ca so:

    Dass ein HTTP-Server keine Cookies akzeptiert, habe ich noch nie gehört. Allerdings lerne ich immer gerne dazu ;-)

    1. Der Client entscheidet, ob Cookies akzeptiert werden
    2. Der Server entscheidet, ob Cookies gesetzt werden

    3. Schau Dir mit Hilfe von phpinfo() Die Systemeinstellungen an

    <?php
      phpinfo();
    ?>
    Das hatte ich Dir aber schon einmal geraten!
    Am Besten, Du postest mal den ganzen Session-Block. So groß ist der ja nicht.

    session.auto_start         Off Off
    session.bug_compat_42      On On
    session.bug_compat_warn    On On
    session.cache_expire       180 180
    session.cache_limiter      nocache nocache
    session.cookie_domain      no value no value
    session.cookie_lifetime    0 0
    session.cookie_path        / /
    session.cookie_secure      Off Off
    session.entropy_file       no value no value
    session.entropy_length     0 0
    session.gc_dividend        100 100
    session.gc_maxlifetime     1440 1440
    session.gc_probability     1 1
    session.name PHPSESSID     PHPSESSID
    session.referer_check      no value no value
    session.save_handler       files files
    session.save_path          /tmp /tmp
    session.serialize_handler  php php
    session.use_cookies        On On
    session.use_only_cookies   Off Off
    session.use_trans_sid      Off Off

    So sieht der z.B. aus

    Dann kann man mehr dazu sagen.

    4. Man sollte generell aus dem Dir ja nun bekannten Gründen das Vermischen von Zugriffsrechten und Session-Identifikation vermeiden.
    Und TRANS_SID ist keine akzeptable Methode. Stell Dir mal vor, du versendest eine Webseite per eMail...
    Wenn Der Client keine Cookies unterstützt, dann muss man den Session-Mechanismus eben selber aufbauen und Auth401 verwenden.

    Grüße

    Tom

    1. Hallo,
      die PHP Info siehst du hier:
      http://www.rpgcommunity.de/phpinfo.php

      session.use_cookies On On
      session.use_only_cookies Off Off

      Es scheint als ob die der Server Cookies Akzeptier, aber warum hängt er die PHPSID dann an die URL dran, und voallem, wie bekomme ich die auf den anderen Seiten weg?

      P.S. Deine Antwort hat mir nicht viel gebracht

      MFG
      Andavos

      --
      http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
      1. Hallo,

        also ich hab mich da eingelogt, es geht alles Super.
        Dann bin ich auf eine andere Site gegangen und dann wieder auf eine Site, die durch den Login gesichert wurde.

        Ausgabe:Bitte erst einloggen.

        Also hat er keinen Cookie auf den Server gesetzt, sonst hätte er mich reingelassen.

        MFG
        Andavos

        --
        http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
        1. Hello,

          Also hat er keinen Cookie auf den Server gesetzt, sonst hätte er mich reingelassen.

          1. Wer ist "er"?
          2. Der Cookie wird nicht auf dem Server gesetzt, sondern auf dem Client. Und wenn der Client eine Seite in der selben Domain aufruft (Base-Url  muss genau übereinstimmen), dann sendet er den Cookie wirder mit an den Server, der ihn dann in $_COOKIE[] zur Verfügung stellt.

          Hier fliegen schon irgendwie drei kleine Testscripte zu Sessions von mir rum. Der Thread könnte schon im Archiv sein. Must Du eben mal suchen.

          Die probier mal aus und gibt das Ergebnis hier bekannt.

          Grüße

          Tom

          1. Hello,

            Hier fliegen schon irgendwie drei kleine Testscripte zu Sessions von mir rum. Der Thread könnte schon im Archiv sein. Must Du eben mal suchen.

            Die probier mal aus und gibt das Ergebnis hier bekannt.

            Ich habe sie Dir ben nochmal rausgesucht: http://forum.de.selfhtml.org/archiv/2003/11/62196/#m352252

            Ausprobieren musst Du nun selber.
            Aber stell vorher session.use_trans_sid auf off in der ini und starte den Apachen neu.

            Grüße

            Tom

            1. Hallo,
              das kann ich nur offline, nicht online (Provider)

              P.S. Auf meinem PC sieht das so aus:

              Directive Local Value Master Value
              session.auto_start Off Off
              session.bug_compat_42 On On
              session.bug_compat_warn On On
              session.cache_expire 180 180
              session.cache_limiter nocache nocache
              session.cookie_domain no value no value
              session.cookie_lifetime 0 0
              session.cookie_path / /
              session.cookie_secure Off Off
              session.entropy_file no value no value
              session.entropy_length 0 0
              session.gc_divisor 100 100
              session.gc_maxlifetime 1440 1440
              session.gc_probability 1 1
              session.name PHPSESSID PHPSESSID
              session.referer_check no value no value
              session.save_handler files files
              session.save_path c:\apache\tmp c:\apache\tmp
              session.serialize_handler php php
              session.use_cookies On On
              session.use_only_cookies Off Off
              session.use_trans_sid On On

              Da läuft alles einwandfrei mit Servercookies und ohne PHPSID

              MFG
              Andavos

              --
              http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
              1. Hello,

                *zisch* so ein schönes kühles Bier ist doch 'was Feines...

                das kann ich nur offline, nicht online (Provider)

                P.S. Auf meinem PC sieht das so aus:

                local   default

                session.use_trans_sid  On      On

                Na gut, dann musst Du es eben lokal ausschalten.

                session.use_trans_sid "1" PHP_INI_SYSTEM|PHP_INI_PERDIR
                PHP_INI_PERDIR (2):
                Entry can be set in php.ini, .htaccess or httpd.conf

                Kannst Du .htaccess nutzen? Dann musst Du eine Datei in das Verzeichnis stellen ab dem trans_sid ausgeschaltet werden soll.

                #############################
                Da müsste jetzt bitte mal jemand Anders helfen
                Ich weiß die Syntax nicht, da ich's nichtbenute...
                #############################

                Ich meine, es müsste einfach

                php_flag session.use_trans_sid off

                drinstehen.

                Grüße

                Tom

                1. Hallo,
                  ne .htaccess kann ich leider nicht usen :(

                  Ich hab mal folgendes Probiert:

                  ini_set("session.use_trans_sid", 0);

                  session_start();

                  das ging nicht :(

                  MFG
                  Andavos

                  --
                  http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
              2. Hallo,
                also ich habe deine Scripte hochgeladen

                http://www.rpgcommunity.de/clanwissen/session/

                Dann habe ich Session_start.php aufgerufen.

                An den Link hat er ?PHPSID=....  drangehängt.

                Als ich F5 gedrückt habe, war es weg (kein ?PHPSID= mehr.

                Dann bin ich nochmal ins Adminmenü gegangen und dort war ?PHPSID= aufeinmal nicht mehr da (an der URL ;) ).

                Als ich Cookies + Cache gelöscht habe, wurde die ?PHPSID= wieder an die URL drangehängt.

                Warum?

                P.S. Das mit dem Cache geht mit deinen Scripts nicht immer und bei Session killen war ein fehler, da muss am ende ein ; kein . ;)

                MFG
                Andavos

                --
                http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                1. Moin!

                  An den Link hat er ?PHPSID=....  drangehängt.

                  Bei der ersten Seite, die du von einem Skript abrufst, welches session_start() enthält, weiß dieses Skript noch nicht, ob dein Browser (oder du) das Cookie akzeptieren wirst, welches das Skript aufgrund von session_start() sendet.

                  Damit die Session also nicht verloren geht, sobald du die zweite Seite aufrufst, muß die Session-ID in jedem Fall an alle Links und in alle Formulare geschrieben werden. Mit trans_sid-Option geht das automatisch, aber es ist nicht unbedingt schön. Und es funktioniert bei gewissen anderen Mechanismen (z.B. Javascript) auch nicht.

                  Als ich F5 gedrückt habe, war es weg (kein ?PHPSID= mehr.

                  Wenn die zweite Seite geladen wird, schickt der Browser das gesetzte Cookie mit, sofern es tatsächlich gesetzt wurde. Das erkennt PHP und verzichtet künftig auf die Session-URL-Geschichte, sondern verläßt sich nur noch auf das Cookie. Dagegen ist im Prinzip nichts einzuwenden, das ist die beste Lösung.

                  Dann bin ich nochmal ins Adminmenü gegangen und dort war ?PHPSID= aufeinmal nicht mehr da (an der URL ;) ).

                  Logisch, weil ja jetzt der Cookie wirkt.

                  Als ich Cookies + Cache gelöscht habe, wurde die ?PHPSID= wieder an die URL drangehängt.

                  Weil der Cookie fehlte. Also ist der erneute Seitenaufruf ein "erster" Seitenaufruf im Sinne der Session. Und dir wird aufgefallen sein, dass die Session-ID gewechselt hat.

                  - Sven Rautenberg

                  --
                  "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
                  (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
                  1. Hallo,
                    das macht Sinn.

                    Ich hab versucht mit:
                    ini_set("session.use_trans_sid", 0);

                    das zu deaktiviern.

                    Ging aber nicht :(

                    Er hängt die ?PHPSID= immer noch an?

                    Gibt es sonst noch eine Lösung?

                    MFG
                    Andavos

                    --
                    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                    1. Hello Andavos,

                      Ich hab versucht mit:
                      ini_set("session.use_trans_sid", 0);
                      das zu deaktiviern.
                      Ging aber nicht :(

                      Dass das nicht geht, hatte ich Dir schon geschrieben. Manche ini-Einstellungen kann man nicht aus dem Script heraus verändern.

                      Wenn Du .htaccess verwenden darfst auf Deinem Provide-Space, dann
                      bau Die eine .htaccess-Datei und setz mal die Zeile

                      php_flag session.use_trans_sid off

                      da rein.

                      Die Datei stellst Du dann in das Verzeichnis, ab dem keine Trans_SID mehr benutzt werden sollen, also wahrscheinlich direkt in die Document Root.

                      Wenn HT_Access für Deinen Space zugelassen ist, dann merkt der Server das sofort nachdem die Datei dort abgelegt wurde. Sie muss aber für den Apachen lesbar sein. Zum TESTEN kann man da mal Mode 0444 einstellen. Sollte aber nicht zur Gewohnheit werden.

                      Grüße

                      Tom

                      1. Hallo,
                        ne ich habe leider kein .htaccess, leider

                        MFG
                        Andavos

                        --
                        http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                        1. Moin!

                          ne ich habe leider kein .htaccess, leider

                          Wieso das nicht? Schon ausprobiert? Sowas ist eigentlich untypisch. Wer PHP hat, sollte auch .htaccess haben, alles andere macht nicht unbedingt viel Sinn.

                          Allerdings: Wenn der Provider doof ist, hat er das tatsächlich abgeschaltet.

                          - Sven Rautenberg

                          --
                          "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
                          (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
                      2. Hallo,
                        wenn ich eine .htacces datei hochzulade und dann eine Site aufrufe erhalte ich immer:
                        Internal Server Error ...

                        Aber kann ich bei den andern Seiten nicht einfach sagen, das er die PHPSID löscht?

                        MFG
                        Andavos

                        --
                        http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                        1. Moin!

                          Hallo,
                          wenn ich eine .htacces datei hochzulade und dann eine Site aufrufe erhalte ich immer:
                          Internal Server Error ...

                          Und was steht in der Datei drin? Kann ja sein, dass du einen Fehler eingebaut hast. Dann führt das nämlich zum beschriebenen Fehler.

                          Wenn .htaccess komplett abgeschaltet wäre, würde das Problem nicht auftreten, weil die Dateien dann komplett ignoriert würden (was Performance bringt, weil Apache nicht mehr im jeweiligen Verzeichnis und allen darüberliegenden Verzeichnissen nach .htaccess-Dateien Ausschau halten muß.

                          Aber kann ich bei den andern Seiten nicht einfach sagen, das er die PHPSID löscht?

                          Das funktioniert leider nicht. Entweder schaltest du trans_sid aus, oder es bleibt an. Im zweiten Fall mußt du Cookies akzeptieren, damit die URL-ID ab der zweiten Seite weg bleibt.

                          - Sven Rautenberg

                          --
                          "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
                          (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
                          1. Hallo,
                            Inhalt der .htaccess:
                            php_flag session.use_trans_sid off

                            So wie vorhin geschrieben.

                            Mit .htaccess kenn ich mich noch weniger aus als mit PHP ;)

                            MFG
                            Andavos

                            --
                            http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                            1. Hello Andavos,

                              Inhalt der .htaccess:
                              php_flag session.use_trans_sid off

                              echt tapfer, dass Du so lange durchhältst. Aber Du bist gleich am Ziel. Ich bin sicher, dass da nur noch was falsch ist an der Zeile in der .htaccess. Hatte ich vorhin aber auch gesagt, dass ich das nicht aus dem Kopf weiß. Lass uns doch nochmal hier im Archiv suchen, ob wir den Fehler finden.

                              Vielleicht unter "htaccess", "Flags" ?

                              Bis gleich

                              Tom

                              1. Hello,

                                habe das nun mal eben bei mir ausprobiert:

                                [Fri Nov  7 20:33:23 2003] [alert] [client 192.168.101.25] /home/thomas/public_html/test/Sessions/.htaccess: php_flag not al
                                lowed here

                                Ich bekomme auch fehler 500

                                Das ist die Fehlermeldung aus dem Error_Log

                                Also muss da leider auch noch eine Freigabe für die Flags in der httpd.conf stattfinden. Das ist sehr bedauerlich. Ich weiß leider nicht, wie die auszusehen hat. Außerdem kommst Du nicht heran. Das müsste Dein Provider machen. Bei wem bist Du?

                                Schade, sooo kurz vor dem Ziel.

                                Wenn nicht jetzt noch einer unserer "Server-Gurus" aus dem Forum Rat weiß...

                                Vielleicht ein Grund, mal den Provider zu wechseln? Was zahlst Du?

                                Liebe Grüße

                                Tom

                                1. Hallo,
                                  echt schade, aber ich versuchs weiter das zu lösen.

                                  Denn welche Site er (der Besucher) aufgerufen hat frag ich hiermit hab (beim Logfile (Eigenbau))

                                  $site = $_SERVER['REQUEST_URI'];

                                  Evt. kann ich das ja nach PHPSID untersuchen lassen und wenn dort PHPSID ist, dann kann ich das ja daraus löschen.

                                  $a = str_replace("PHPSID", "", $site)

                                  Oder so ähnlich, befehl muss ich morgen mal genauer nach suchen.

                                  Mal hoffen das es klappt.

                                  Ich bezahl für den Space nichts, das macht ein Freund von mir (5€ pro Monat, 250 oder 350 MB, unendlich Traffic, MySQL, PHP)

                                  Und danke für deine Hilfe, auch wenn das Problem noch nicht gelöst ich weiß wenigstens wodran es liegt und weiß jetzt auch wonach ich suchen muss.

                                  Auch an Sven Rautenberg ein Dankeschön.
                                  MFG
                                  Andavos

                                  --
                                  http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                    2. Hallo Andavos,

                      Ich hab versucht mit:
                      ini_set("session.use_trans_sid", 0);

                      Workaround:

                      ini_set ("url_rewriter.tags", "");

                      Viele Grüße,
                      Christian

          2. Hallo,
            aber er (der Server/Browser) setzt doch einen Session Cookie auf den Server, und nicht auf den eigenen PC, oder?

            Und im den Session Cookie ist glaub ich dann die Session ID gespeichert

            MFG
            Andavos

            --
            http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
      2. Hello,

        die PHP Info siehst du hier:
        http://www.rpgcommunity.de/phpinfo.php

        hab sie mir angeschaut und so langsam nähern wir und einer Lösung...

        session.use_trans_sid On On

        Das solltest Du ausschalten, wenigstens über ini_set() innerhalb des Scriptes,  _bevor_   Du Session_Start() aufrufst.

        Und dann solltest Du zum Testen Deinen Client (Browser) auf "redselig" einstellen. Also Cookies nur nach Rückfrage annehmen. dann kann man nämlich auch noch sehen, was drinsteht.

        P.S. Deine Antwort hat mir nicht viel gebracht

        Aber Deine mir *grins*

        Grüße

        Tom

        1. Hallo,

          Problem:

          also ich hab mich da eingelogt, es geht alles Super.
          Dann bin ich auf eine andere Site gegangen und dann wieder auf eine Site, die durch den Login gesichert wurde.

          Ausgabe:Bitte erst einloggen.

          Also hat er keinen Cookie auf den Server gesetzt, sonst hätte er mich reingelassen, oder?

          Und wie mache ich das mit ini_set()

          <?php
          ini_set("php.ini","session.use_trans_sid  0");
          ?>

          |Und dann solltest Du zum Testen Deinen Client (Browser auf "redselig" einstellen. Also Cookies nur nach Rückfrage annehmen.

          Wäre gut wenn ich wüsste wie man das macht.

          P.S. Wie du merkst hab ich nicht sooo die Ahnung ;)

          MFG
          Andavos

          --
          http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
          1. Hello,

            Und wie mache ich das mit ini_set()

            <?php
            ini_set("php.ini","session.use_trans_sid  0");
            ?>

            Da schau mal nach im php-manual. Ich muss eben was zu Trinken holen, sonst schlaff ich ab ;-))

            |Und dann solltest Du zum Testen Deinen Client (Browser auf "redselig" einstellen. Also Cookies nur nach Rückfrage annehmen.

            Wäre gut wenn ich wüsste wie man das macht.

            P.S. Wie du merkst hab ich nicht sooo die Ahnung ;)

            Macht nix. Nervt zwar manchmal ein bisschen, aber da müssen wir eben gemeinsam durch. Schließlich ist das Forum dafür da. Ich lern ja auch jeden Tag noch 'was dazu und die Anderen helfen.

            Bis gleich

            Tom

        2. Hallo Tom,

          session.use_trans_sid On On

          Das solltest Du ausschalten, wenigstens über ini_set() innerhalb des Scriptes,  _bevor_   Du Session_Start() aufrufst.

          Schön wärs, wenns ginge...

          http://bugs.php.net/bug.php?id=24693

          Viele Grüße,
          Christian