dr. der sessiologie gesucht

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

  • dr. der sessiologie gesucht

    vielleicht werde ich selber mal einer, weil das thema ist echt zum narisch werden! 2 sachen:

    1)

    warum versucht php trotzdas ich session_use_only_cookie auf 1 und session_use_trans_sid auf 0 habe die session_id in die url zu verpacken .... (wenn ich alle cookies sperre) im prinzip ist das ehr ungüstig aber kann ich mit leben ... weil:

    2) wollt ich eine abfrage machen ob eben der session_cookie gesetzt wurde (weil ich eben nur mit session cookies arbeiten will) un wenn nicht eine redirct auf eine infoseite machen. so wie ich es jetzt geregelh habe regestriere ich die session_id als session_variable un überprüfe auf jeder seite ob die session_id der session var mit der aktuellen session_id übereinstimmt. ist das nicht der fall wurde beim neuen seiteaufruf eine neue session erzeugt und das heißt ja session_cookie konnte nicht gesetzt werden. allerdings hat das ganze einen haken -> wenn ich von einer fremden url direkt auf die login seite gehe kann ich natürlich das prozedre vergessen!

    gibts da ne andere möglichkeit zu checkn ob der session_cookie angenommn wurde ... vielleicht mit $_COOKIE oder? ich weiss das das geht habs schon bei anderen seiten gesehen!

    danke fra7l7

  • #2
    Re: dr. der sessiologie gesucht

    Original geschrieben von frank7l7
    warum versucht php trotzdas ich session_use_only_cookie auf 1 und session_use_trans_sid auf 0 habe die session_id in die url zu verpacken
    hast du mal mit phpinfo() nachgeprüft, ob du diese werte auch an der richtigen stelle geändert hast?
    gibts da ne andere möglichkeit zu checkn ob der session_cookie angenommn wurde ... vielleicht mit $_COOKIE oder?
    der wert eines cookies ist immer erst beim nächsten request des clients an den server in php verfügbar, so viel sollte klar sein.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      w00t ???

      wieso session_cookie ??? mach das doch mit cookie`s allgemein :-?

      ist zwar ned nach deiner vorstellung aber auch ne lösung.....

      set_cookie ...blalbla

      ähhhhmm mal ne frage ?

      wo liegt der unterschied ?!

      *g*


      so long
      mfg xSkaSchY

      Kommentar


      • #4
        ich hab

        PHP-Code:
        ini_set("session.gc_probability",25);
        ini_set("session.use_only_cookies",1);
        ini_set("session.use_trans_sid",0);
        ini_set("session.cookie_domain",".xyz.com");
        ini_set("session.name","csid");
        session_save_path($sess_path);
        if(empty(
        $csid)):
              
        mt_srand((double) microtime()*1000000);
            
        $csid md5(str_replace(".","",$REMOTE_ADDR)+mt_rand(100000,999999));
        endif;

        session_start($csid); 
        damit hab ich die standard ini überschrieben da mein provider natürlich andere einstellungen hat ... aber trotzdem zwingt er mir die sid in die url .... egal hab jetzt mal:

        if(!isset($_COOKIE[session_name()])) header("Location:session_info.php");

        probiert und sieh da ich kann auf jeder seite direkt nach oberen skript abfragen ob session cookie gesetzt wurde ...

        Kommentar


        • #5
          Re: w00t ???

          Original geschrieben von Skaschy
          ähhhhmm mal ne frage ?

          wo liegt der unterschied ?!
          wenn du nicht weisst, was sessions sind und wozu man sie einsetzt, und warum man zum setzen des session cookies nicht setcookie() verwendet - dann lese dir erstmal ein paar grundlagen über sessions an, such dir ein tutorial darüber, oder schau ins manual ...
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            if(!isset($_COOKIE[session_name()])) header("Location:session_info.php");

            probiert und sieh da ich kann auf jeder seite direkt nach oberen skript abfragen ob session cookie gesetzt wurde ...
            zu freu gefreut geht doch nicht direkt auf jeder seite hattest recht dann muß ich halt auf der login seite noch mal explizit einen selbstreferenzierenden reload machen um zu guckem ob der cookie da ist ... etwas unbequem aber geht schon

            Kommentar


            • #7
              wenn du nicht willst das die sid in der url erscheint, dann benutze einfach absolute pfade. php hängt nur bei relativen pfaden die session_id dran.

              Um zu prüfen ob der Benutzer cookies erlaubt musste beim ersten Aufruf ein cookie senden und beim zweiten Aufruf nachschauen ob du ihn setzen konntest. (Das selbe macht php session eigentlich auch, konnte er das cookie setzen läßt er die sessionuri weg.)
              mfg
              marc75

              <Platz für anderes>

              Kommentar


              • #8
                ... ne das mit den absoulten pfaden ist nicht korrekt ... bei mir jedenfalls sind alle links absolut und sdie sid totztdem in der url? komisch, komsich.

                das mit dem cookie werd ich so machen dann gibts halt ne par header mehr

                Kommentar


                • #9
                  dann lese dir das hier mal durch: http://de.php.net/session

                  Zitat von php.net:
                  Übermittlung der Session-ID
                  Es gibt zwei Methoden, eine Session-ID zu übermitteln:


                  Cookies

                  URL Parameter


                  Das Session-Modul unterstützt beide Methoden. Cookies sind optimal, aber da sie nicht immer zur Verfügung stehen, bieten wir auch noch eine Alternative an. Die zweite Methode hängt die Session-ID direkt an die URLs.

                  PHP ist in der Lage, Links transparent umzuwandeln. Falls Sie nicht PHP 4.2 oder höher verwenden, müssen Sie das beim Übersetzen von PHP manuell aktivieren. Unter Unix müssen Sie dazu configure mit --enable-trans-sid aufrufen. Wenn diese Option und die Laufzeit-Option session.use_trans_sid aktiviert sind, werden relative URIs automatisch so geändert, dass sie die Session-ID enthalten.

                  Anmerkung: Die php.ini-Anweisung arg_separator.output ermöglicht es, die Trennung von Argumenten anzupassen. Geben Sie dort für volle XHTML-Konformität &amp; an.


                  Alternativ können Sie die Konstante SID verwenden, die immer definiert ist. Falls der Client kein geeignetes Session-Cookie gesendet hat, hat sie die Form session_name=session_id. Andernfalls wird sie zu einer leeren Zeichenkette erweitert. Aus diesem Grund können Sie sie bedingungslos in URLs einbetten.

                  Das folgende Beispiel demonstriert, wie eine Variable registriert wird und wie unter Verwendung einer SID korrekt auf eine andere Seite verwiesen wird. Beispiel 5. Zählen der Seitenaufrufe eines einzelnen Benutzers

                  <?php
                  if (!session_is_registered('zaehler')) {
                  session_register('zaehler');
                  $zaehler = 1;
                  } else {
                  $zaehler++;
                  }
                  ?>

                  Hallo Besucher, Sie haben diese Seite <?php echo $zaehler; ?> Mal
                  aufgerufen.<p>

                  Hier gehts <A HREF="nextpage.php?<?php echo strip_tags (SID)?>">weiter</A>



                  Die Funktion strip_tags() wird verwendet, um bei der Ausgabe der SID XSS-ähnliche Angriffe zu verhindern.

                  Die oben gezeigte Ausgabe der SID ist nicht nötig, wenn PHP mit --enable-trans-sid übersetzt wurde.

                  Anmerkung: Bei nichtrelativen URLs wird davon ausgegangen, dass sie auf externe Seiten zeigen und deshalb keine SID angehängt, weil es ein Sicherheitsrisiko wäre, die SID an einen anderen Server zu übermitteln.
                  allso wenn die (absoluten) Links so geschrieben werden in deinen Scripten:

                  www.deine-domain.de/deinscript.php

                  dann hängt php dort keine session_id dran, ausser du gibst es explizit an. z.B. durch <sid> oder ähnliches.
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    ja bin ich den bescheuert oder was? ich hab use transid auf 0 mein link heißt ....
                    <a href="<?php echo $_SERVER['PHP_SELF']; ?>?pg=1">weiter</a>

                    und erhängt mir trotzdem die sid an -> muß wohl am $_SERVER['PHP_SELF']; liegen, kann mich dunkel erinnern irgendwo ma was in diesem zusammenhang gelesen zu haben ...

                    Kommentar


                    • #11
                      siehe:

                      PHP-Code:
                       <?
                      phpinfo();
                      ?>
                      dann wirst du sehen das PHP_SELF relative pfade einsetzt. Ein Blick in den Browser Quelltext hätte das allerdings auch verraten können.
                      mfg
                      marc75

                      <Platz für anderes>

                      Kommentar


                      • #12
                        An Deiner stelle würde ich nicht "session.use_only_cookies" verwenden ... die gibt's eh erst seit PHP 4.3.0 ... und das hat nicht zwingend jeder Provider ... probier's mal mit "session.use_cookies" ... das geht im Normalfall ... !
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          OffTopic:
                          lassen sie mich durch, ich bin arzt!

                          Kommentar


                          • #14
                            ... ne only cookie ist schon ok ... ich werd bei meinen provider bleiben der hat 4.3.2 dat is schon gut so, ...

                            marc, dat war wol mein versehen aber wie es aussieht muß ich eh wieder relative pfade wegen ssl nehmen! egal, den wer keine session cookie annehmen will muß halt draußen bleiben. aber kann mir vielleicht noch jemand mal die 2 paramter von session set cookie parameter erklären

                            wie genau ist das mit dem cookie pfad? ist der die referenz wo die sessions liegen? und der 4 parameter security heißt das cookie darf nur über z.b. ssl gesicherte verbindung gesendet werden?

                            schwer geburt -> ärzte vor

                            Kommentar

                            Lädt...
                            X