Marc: wie session ids erzeugen??

hallo!
wie kann man session ids erzeugen??
ich habe in der dukomentation irgendeinmal was drüfber gelesen, aber ich habs nich so ganz gerafft... :-(

Thanks in advance Marc

  1. hi!

    wie kann man session ids erzeugen??

    Siehe (inkl. Beispielen):
      http://www.php.net/manual/de/ref.session.php
      http://www.php.net/manual/en/ref.session.php

    bye, Frank!

    1. hallo...

      genau so habe ich es gemacht, aber es lief nicht zufriedenstellend...
      <?php
      session_register ("count");
      $count++;
      ?>

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

      <?php

      für den Fall, dass der Benutzer Cookies deaktiviert hat,

      ist das <?=SID?> nötig, um die Session-ID zu erhalten

      ?>
      Hier gehts <A HREF="nextpage.php?<?=SID?>">weiter</A>

      unter einer session id verstehe ich:
      die session id ist nur gültig für z.b. 20 minuten, d.h. wenn bis dahin keine aktion des users erfolgt ist diese nimmer gültig

      MFG marc

      1. hallo...

        ich brauche session id's für login - logout prozesse, damit ich den user identifizieren kann ohne PW und username in der url mitzugeben...

        diese fehlermeldung kriege ich mit dem vorherigen genannten quelltext...

        Warning: Cannot send session cache limiter - headers already sent (output started at C:\apache\htdocs\sid_test.php:2) in C:\apache\htdocs\sid_test.php on line 3

        Warning: open(/tmp\sess_6376fed3e0a709abba7a252e8340b67d, O_RDWR) failed: m (2) in C:\apache\htdocs\sid_test.php on line 3
        Hallo Besucher, Sie haben diese Seite 1 Mal aufgerufen.
        nötig, um die Session-ID zu erhalten ?> Hier gehts weiter
        Warning: open(/tmp\sess_6376fed3e0a709abba7a252e8340b67d, O_RDWR) failed: m (2) in Unknown on line 0

        Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

        MFG marc

        1. Hallo!

          Warning: Cannot send session cache limiter - headers already sent (output started at C:\apache\htdocs\sid_test.php:2) in C:\apache\htdocs\sid_test.php on line 3

          http://www.koehntopp.de/php/faq-version4_session.html#version4_session-5

          Warning: open(/tmp\sess_6376fed3e0a709abba7a252e8340b67d, O_RDWR) failed: m (2) in C:\apache\htdocs\sid_test.php on line 3
          Hallo Besucher, Sie haben diese Seite 1 Mal aufgerufen.
          nötig, um die Session-ID zu erhalten ?> Hier gehts weiter
          Warning: open(/tmp\sess_6376fed3e0a709abba7a252e8340b67d, O_RDWR) failed: m (2) in Unknown on line 0

          Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

          Hier wird das Verzeichnis(in der Regel das temporäre), in der die Sessiondateien abgelegt werden, nicht gefunden! Auf welchem System arbeitest Du?

          Hier werden noch viele Fragen beantwortet.
          http://www.koehntopp.de/php/faq-version4_session.html

          MfG, André Laugks

          1. Hi André und thanks... :-)
            nun kommen schon weniger fehlermeldungen, nachdem ich den artikel gelesen und das temp verzeichniss richtig eingestellt hab... :-)

            ...aber irgendwie will das mit session ids immer noch nich gehen...
            auch nach dem artikel... :-((

            kann bitte einer einen source schicken zum erzeugen einer session id... :-)
            egal wie... :-)) mit dieser bedepperten funktion oder ohne - hauptsache es funtzt... :-))
            ...ich finde es nähmlich doof, wenn nach dem login immer stehen bleibt: users.php?name=user&pass=test
            ich mein, die url ma angeguggt und schon is alles klar...
            zudem kann man diese url dann bookmarken und man hat immer zugriff...
            ...oder in der histroy schaun und schon zugriff... *grrr* ;-)

            MFG Marco

            1. Hallo!

              kann bitte einer einen source schicken zum erzeugen einer session id... :-)
              egal wie... :-)) mit dieser bedepperten funktion oder ohne - hauptsache es funtzt... :-))

              Wenn Du session_register() verwendest, um eine Variable für die Sessiondatei zu registrieren, brauchst Du kein session_start() anzuwenden, das session_register() auch eine Session startet.

              Das schreibst Du nun als aller erstes in jede Seite, auf der Du die Session haben möchtest, folgenden Quellentext. Du kannst das auch in jede Datei per include-Datei einfügen. Wichtig ist nur, ganz zum Anfang der Seite. Sie mein Link von gestern. Natürlich darf vorher noch was anderes passieren, nur halt nichts, was abläuft wenn schon alle Header gesendet wurden, aber das stehe besser erklärt unter dem Link von gestern.

              <?PHP
              session_register("s_bname"); // Benutzername
              session_register("s_passw"); // Passwort

              // z.B.: woher die Daten Du auch immer holst und wie du sie ermittelst
              $s_bname = "otto";
              $s_passw = "gad34qht";

              ?>
              // ich setze immer ein "s_" vor die Sessionvariablen für Session

              Nun sendet PHP ein Cookie zum Browser mit der Session-ID. Somit ist nun die Session-ID auf jeder der Seiten der Domain bekannt. Für alle Fälle, schleppst Du die Session-ID und Session-Name per GET mit, falls SID nicht funktioniert.

              z.B.
              <a href="seite10.phtml?<?PHP echo(session_name()) ?>=<?PHP echo(session_id()) ?>">Seite 10</a>
              Das kann man auch kürzer fassen, in dem man in einer Variable alles ablegt.
              z.B.
              $session = session_name() . "=" . session_id();
              <a href="seite10.phtml?<?PHP echo($session) ?>">Seite 10</a>

              Schaue doch mal php.net vorbei, was es so alles an Sessionfunktionen gibt.
              http://www.php.net/manual/de/ref.session.php

              Wenn Du das erst einmal kapiert hast ;-), ist das Sessionhandling total einfach. PHP nimmt einem sehr viel arbeit ab.

              MfG, André Laugks

              1. Hallo Andre und Marc

                Wenn Du session_register() verwendest, um eine Variable für die Sessiondatei zu registrieren, brauchst Du kein session_start() anzuwenden, das session_register() auch eine Session startet.

                Das schreibst Du nun als aller erstes in jede Seite, auf der Du die Session haben möchtest, folgenden Quellentext. Du kannst das auch in jede Datei per include-Datei einfügen. Wichtig ist nur, ganz zum Anfang der Seite. Sie mein Link von gestern. Natürlich darf vorher noch was anderes passieren, nur halt nichts, was abläuft wenn schon alle Header gesendet wurden, aber das stehe besser erklärt unter dem Link von gestern.

                Ich glaube darum gings ihm, denn das war mir auch immer ein wenig unklar. Bisher brauchte ich werder Cookies noch SessionIDs aber da damit bei unserem aktuellen Projekt schluss ist, verfolge ich eure Diskussion mit weit offenen Augen (und Hirnwindungen)!

                Ich denke einfach mal laut vor mich hin, also bitte korrigiert mich wenn ich was falsch verstanden habe:

                ------------------------------

                Mir war z.b. unklar, wie nun die Variblen konkret gemanagt werden. Es gibt also immer nur eine SessionID die man mit session_id() abfragen kann. Mit session_name() erhält man den Namen der Sessionvariablen, beispielsweise PHPSESSID, ASPSESSION, ...

                Das ganze wird dann entweder (mit Zeitstempel!!) als Cookie am Client abgelegt oder im Filesystem des Servers als temporäre Datei

                Mit session_register() kann man infolgedessen einzelne Variablen erzeugen, also name-value-pairs, die in den Cookies bzw. files abgelegt und ebenso aufgerufen werden können. Diese hat Andre mit einem 's_' gekennzeichnet.

                Nun sendet PHP ein Cookie zum Browser mit der Session-ID. Somit ist nun die Session-ID auf jeder der Seiten der Domain bekannt. Für alle Fälle, schleppst Du die Session-ID und Session-Name per GET mit, falls SID nicht funktioniert.

                Wird wenn Cookies deaktiviert sind automatisch PHPSESSID=sdkhjoiudf0987df7sdfdsf7 an die URL drangehängt? Oder muss man das händisch machen?

                <a href="seite10.phtml?<?PHP echo(session_name()) ?>=<?PHP echo(session_id()) ?>">Seite 10</a>
                Das kann man auch kürzer fassen, in dem man in einer Variable alles ablegt.
                z.B.
                $session = session_name() . "=" . session_id();
                <a href="seite10.phtml?<?PHP echo($session) ?>">Seite 10</a>

                es wird also nicht jede s_ Variable einzeln angehängt. Denk dir einfach falls deine session_id() z.b. sdf78saf876safa876df567as4dds3 lautet, dass ein File am Server diesen Namen bekommt, und folgenden inhalt hat:

                s_bname<delimiter>otto
                s_passw<delimiter>gad34qht

                ------------------

                War mein Gedankenexperiment richtig??

                Schaue doch mal php.net vorbei, was es so alles an Sessionfunktionen gibt.
                http://www.php.net/manual/de/ref.session.php

                Tja, ich kann marc verstehen, dass er da nicht so ganz den durchblick hatte, denn wenn man noch nie was von SessionIDs oder Cookies gehört hat, dann kommt man bei dieser Ansammlung von Funktionen die sich alle irgendwie gleich anhören, und alle irgendwie das gleich zu tun scheinen, schon leicht ins grübeln. Daher danke für deine Erklärung :o)

                Wenn Du das erst einmal kapiert hast ;-), ist das Sessionhandling total einfach. PHP nimmt einem sehr viel arbeit ab.

                stimmt, kann ich mir jetzt irgendwie konkreter vorstellen als noch vor einer Stunde :)

                lg + danke
                bernhard

                1. Hallo!

                  Wenn Du session_register() verwendest, um eine Variable für die Sessiondatei zu registrieren, brauchst Du kein session_start() anzuwenden, das session_register() auch eine Session startet.

                  --> Ich gehe noch mal auf meine eigenen Sätze ein!

                  Es kann sein, das Du eine Session-ID brauchst, aber noch keine Variable in der Session-Datei registrieren möchtest. Dann verwendest Du session_start(). Du mußt immer wenn Du ein Script/Seite aufrufst, die Session neu starten, damit PHP weis was los ist, also Du das Sessionhadling verwenden möchtest. PHP weis in welcher Variable die session-ID gespeichert ist und kennt somit also auch die Datei.

                  Nehmen wir mal an, Du möchtest eine Session löschen, also sagen wir mal ein typischer Logout.

                  session_start(); // Starten, PHP kennt nun die ID
                  session_destroy(); // Session-ID "löschen"

                  Die Session-Datei bleibt meist noch im tmp-Verzeichnis liegen. Ist glaube ein Fehler von PHP. Am besten ist, man sorgt selbst fürs löschen. Also über ein Shellscript oder so, was aber Adminsache ist, oder man unrgistriert alle Variabeln und beendet dann die Session <- ist jetzt ein Gedanke von mir, falls man sensible Daten mitschleppt. Kann auch sein, das PHP mit session_destroy() alles in der Session-Datei löscht. Müßte man einfach mal austesten...

                  Wichtig ist nur, ganz zum Anfang der Seite. Sie mein Link von gestern. Natürlich darf vorher noch was anderes passieren, nur halt nichts, was abläuft wenn schon alle Header gesendet wurden, aber das stehe besser erklärt unter dem Link von gestern.

                  --> Ich gehe noch mal auf meine eigenen Sätze ein!

                  Siehe meinem letzten Posting an Marc. Ich bin kein HTTP-Experte. Frag mich nicht, was da genau alles gesendet wird an Headern. Ich habe hier ein Buch, wo sowas drin steht, aber da müßte ich auch mal rein schauen :-).

                  Mir war z.b. unklar, wie nun die Variblen konkret gemanagt werden. Es gibt also immer nur eine SessionID die man mit session_id() abfragen kann. Mit session_name() erhält man den Namen der Sessionvariablen, beispielsweise PHPSESSID, ASPSESSION, ...

                  Die Session-ID wird glaube aus einer md5()-Verschlüßlung, IP und Uhrzeit ermittelt oder so, auf alle Fälle eindeutig.
                  Der Session-Name(Variable) ist ja in der php.ini als Standard mit PHPSESSID angegeben. Den kannst Du in der php.ini ändern oder über session_name() einvergeben.

                  session_name("meinesession"); // vor dem Start der Session angeben
                  session_start();

                  Das ganze wird dann entweder (mit Zeitstempel!!) als Cookie am Client abgelegt oder im Filesystem des Servers als temporäre Datei

                  Nun sendet PHP ein Cookie zum Browser mit der Session-ID. Somit ist nun die Session-ID auf jeder der Seiten der Domain bekannt. Für alle Fälle, schleppst Du die Session-ID und Session-Name per GET mit, falls SID nicht funktioniert.

                  Der Cookie enthält den Session-Name und Session-ID, IMHO heißt der Cookie sogar so. Die Session-Datei wird auf alle Fälle im Filesystem abgelegt. PHP schaut eben, gibt es einen Cookie, wenn ja hat PHP die ID + Name und kann sie verwenden weis also welche die richtige Datei ist, ansonsten setze ein Cookie mit der Session-ID wenn der User z.B. auf die seite kommt.
                  Die Lebensdauer des Cookies ist i.d.R. auf 0 gesetzt, das heißt das der Cookie lebt so lange, bis der Browser geschlossen wird. Der Cookie wird hierbei nicht in die cookie.txt(NN) oder Cookieordner(IE) geschrieben/gelegt. Der Cookie liegt im Arbeitsspeicher. Schraubst Du die Lebensdauer hoch, kannst Du den Cookie "sehen", also er wird abgelegt.
                  Die Lebensdauer der Session-Datei ist was anderes. Das hängt davon ab, wie lange sie nicht verwendet wurd, PHP erklärt sie dann für gültig oder ungültig.

                  Mit session_register() kann man infolgedessen einzelne Variablen erzeugen, also name-value-pairs, die in den Cookies bzw. files abgelegt und ebenso aufgerufen werden können. Diese hat Andre mit einem 's_' gekennzeichnet.

                  Das "s_"verwende ich für mich, um die Variablen besser auseinander zu halten.

                  Wird wenn Cookies deaktiviert sind automatisch PHPSESSID=sdkhjoiudf0987df7sdfdsf7 an die URL drangehängt? Oder muss man das händisch machen?

                  Sie das letzte Posting an Marc.

                  Ich habe am Server das Senden von Session-Cookies unterbunden und auch das parsen der Seite unterbunden. Ich nehme alles über GET oder auch POST mit.

                  es wird also nicht jede s_ Variable einzeln angehängt. Denk dir einfach falls deine session_id() z.b. sdf78saf876safa876df567as4dds3 lautet, dass ein File am Server diesen Namen bekommt, und folgenden inhalt hat:

                  s_bname<delimiter>otto
                  s_passw<delimiter>gad34qht

                  Nicht ganz, die sieht ungefähr so aus:
                  $s_vorname = "André";
                  $s_nachname = "Laugks";
                  -------------------------------><8----------------------------------
                  s_titel|s:0:"";s_vorname|s:6:"André";s_vorname2|s:0:"";s_nachname_titel|s:0:"";s_nachname|s:9:"Laugks";s_nachname2|s:0:"";s_kuenstlername|s:0:""; -------------------------------><8----------------------------------

                  War mein Gedankenexperiment richtig??

                  Ich denke und hoffe Dir auch kein Mißt erzählt zu haben.

                  Tja, ich kann marc verstehen, dass er da nicht so ganz den durchblick hatte, denn wenn man noch nie was von SessionIDs oder Cookies gehört hat, dann kommt man bei dieser Ansammlung von Funktionen die sich alle irgendwie gleich anhören, und alle irgendwie das gleich zu tun scheinen, schon leicht ins grübeln. Daher danke für deine Erklärung :o)

                  stimmt, kann ich mir jetzt irgendwie konkreter vorstellen als noch vor einer Stunde :)

                  :-)

                  Wenn ich ehrlich bin, ich finde die Session-Tutorials die es so gibt, auch nicht besonders. Geschrieben von irgendwelchen PHP-Gurus und alle nehmen das selbe Beispiel.

                  Ich hatte als ich mit Sessions angefangen habe, ein ziemlich großen Problem. Ich konnte Werte/Strings, die ich einmal in einer Session-Variable abgelegt hatte, nicht mehr ändern. Ich wurde immer in den Newsgroups auf eine FAQ verwiesen, was das behandelt hat, was ich schon lange wußte, aber nichts mit meinem Problem zu tun hatte. Dann hat in meiner alten Agentur ein PHP-Freak angefangen, der mir auch keine Lösung nennen konnte und das Problem als sehr eigenartig bezeichnete. Naja, auch keine Hilfe bekommen, zum Glück bin ich dann auf ein Workaround gekommen.
                  Da ich aber selbst so ein Tutorial noch nicht geschrieben habe..., keine Ahnung ob ich es besser gemacht hätte?! Wenn man etwas verstanden hat, ist immer alles sehr einfach. Meist ist es sehr einfach, aber irgendwie hat man ein Brett vor dem Kopf.

                  PS:
                  Ich glaube, ich bin schon was ruhiger geworden, wenn ein Newbie eine Frage stellt, die gegen den guten Geschmack verstößt, eventuell User verschreckt oder wie auch immer.
                  Genau die selben Fehler hat man auch gemacht und "dumme" technische Fragen gestellt. Was interessiert mich eine private Seite, wo ein NervPopup aufgeht, eine 10 MB Flashani abläuft oder man drum gebetten wird ins Gästebuch zu schreiben! Ich habe selbst die Wahl, die Seite zu verlassen. Der Frager wird schon selbst lernen, das der User davon nicht begeistert ist. Ein Kind fässt auch nicht mehr den herd an, wen es sich dort ordentlich mal die Finger verbrannt hat. ...Obwohl ich mir geile Flashanis gerne anschaue.

                  So, jetzt ist das Bier leer und ich hoffe nicht zu viele Rechtschreibfehler..., ich werde mir mit Sicherheit nicht noch einmal alles durch lesen. :-)

                  MfG, André Laugks

                  1. Hallo André!

                    Der Session-Name(Variable) ist ja in der php.ini als Standard mit PHPSESSID angegeben. Den kannst Du in der php.ini ändern oder über session_name() einvergeben.

                    session_name("meinesession"); // vor dem Start der Session angeben
                    session_start();

                    Das war eigentlich das was bei mir so stark zu meiner Verwirrung beigetragen hat. Ich habe nicht gewusst was jetzt ein session-name, was eine session-variable ist, und was eine session-id dann ist. Das ist mir aus deinen Postings jetzt aber klar geworden :-)

                    im Manual habe ich mich da einfach jedesmal in einen Kuddelmuddel reingelesen, so dass ich am schluss nichtmal mehr die Begriffe auseinander halten konnte ;-)

                    Ich hatte als ich mit Sessions angefangen habe, ein ziemlich großen Problem. Ich konnte Werte/Strings, die ich einmal in einer Session-Variable abgelegt hatte, nicht mehr ändern. Ich wurde immer in den Newsgroups auf eine FAQ verwiesen, was das behandelt hat, was ich schon lange wußte, aber nichts mit meinem Problem zu tun hatte. Dann hat in meiner alten Agentur ein PHP-Freak angefangen, der mir auch keine Lösung nennen konnte und das Problem als sehr eigenartig bezeichnete. Naja, auch keine Hilfe bekommen, zum Glück bin ich dann auf ein Workaround gekommen.

                    Waaas? Man kann die Variablen dann nicht mehr ändern? An so einem ähnlichen Problem bin ich nämlich gescheitert wie ich mich mit Cookies beschäftigte! Ich habe versucht abzuspeichern was ein Kunde bestellt hat, seinen Warenkorb also. Blöd war nur, jedesmal wenn ich eine ProduktMenge auf 0 Setzen wollte, also rauslöschen aus dem Warenkorb ging das nicht, es blieb immer der alte Wert drin! Ich dachte mit Sessions ginge das? Dass man Variablen ändern kann? Ansonsten fürchte ich habe ich den Sinn dahinter dann doch nicht so gechekt! Wie wird dann z.b. ein Warenkorb mit Sessions realisiert? Wird etwa nicht gespeichert _was_ jemand bestellt? Aber wie werden denn dann die Warenkörbe realiert? Alle mit Datenbank (Filesystem/Relational, ... was auch immer) dahinter? gggrrrrrrrr :-(

                    Da ich aber selbst so ein Tutorial noch nicht geschrieben habe..., keine Ahnung ob ich es besser gemacht hätte?!

                    Kannst es ja mal ausprobieren:
                    http://www.teamone.de/selfaktuell/artikel/beitrag.htm ;-)

                    Genau die selben Fehler hat man auch gemacht und "dumme" technische Fragen gestellt. Was interessiert mich eine private Seite, wo ein NervPopup aufgeht, eine 10 MB Flashani abläuft oder man drum gebetten wird ins Gästebuch zu schreiben! Ich habe selbst die Wahl, die Seite zu verlassen. Der Frager wird schon selbst lernen, das der User davon nicht begeistert ist. Ein Kind fässt auch nicht mehr den herd an, wen es sich dort ordentlich mal die Finger verbrannt hat. ...Obwohl ich mir geile Flashanis gerne anschaue.

                    ?? huch ??? wie ??? wo passt denn der Absatz jetzt dazu ? Flash? Gästebuch? PopUps ... ?? Fragezeichen Rufzeichen! ;-)

                    So, jetzt ist das Bier leer und ich hoffe nicht zu viele Rechtschreibfehler..., ich werde mir mit Sicherheit nicht noch einmal alles durch lesen. :-)

                    Ach so .... darum ;-) *hicks*

                    lg und ein kräftiges DANKE,
                    bernhard

                    PS: Überleg dir das mit dem Feature-Artikel doch mal, hmmm?

                    1. Hallo!

                      Waaas? Man kann die Variablen dann nicht mehr ändern? ...

                      Das war, wohl wie auch bei Dir, mein Problem. Es ist nicht normal!

                      Bsp: Einmal auf Seite2 einen Wert übergeben nach Seite1, konnte ich ihn nicht mehr ändern.

                      seite1.phtml
                      --------------------------------------------------------------
                      <?PHP session_register("test"); ?>
                      <html><body>
                      <?PHP
                      echo "<a href="seite2.phtml?" . session_name() . "=" . session_id()
                      ."">zur 2.Seite</a>";
                      ?>
                      </body></html>
                      --------------------------------------------------------------

                      seite2.phtml
                      --------------------------------------------------------------
                      <?PHP session_register("test"); ?>
                      <html><body>
                      <?PHP
                      echo $test;
                      echo "<a href="seite1.phtml?" . session_name() . "=" . session_id() . "&test=ja">JA</a>";
                      echo "<a href="seite1.phtml?" . session_name() . "=" . session_id() . "&test=nein">NEIN</a>"; ?>
                      </body></html>
                      --------------------------------------------------------------

                      Gelöst habe ich es so. Zuerst muß ich dazu noch sagen, das ich das gesamte Sessionzeug immer in eine include-Datei packe. Deshalb geht diese Lösung leicht zu händeln. Man könnte sich auch eine Klasse oder Funktion schreiben, um Programmierarbeit zu sparen.

                      ----------------------------------------------------------------
                      <?PHP
                      session_register("s_foo1", "s_foo2");

                      // hier vielleicht die Übergebenen Variablen noch verarbeiten

                      if(isset($foo1)) { $s_foo1 = $foo1; }
                      if(isset($foo2)) { $s_foo2 = $foo2; }
                      ?>
                      ----------------------------------------------------------------

                      Wurde die Variable $foo1 übergeben bzw. existiert sie, weil sie mit POST oder GET übergeben wurde oder im Script erstellt wurde, dann speichere den Wert von $foo1 in $s_foo1. Ansonsten machen nichts, weil sonst wird nichts in der Variable gespeichert.<<<<<

                      Ich habe mir Scripte von anderen angeschaut, die mußten dieses Zeug nicht machen. Bei mir lief es nur, wenn ich die Variablen einmal "umgespeichert" habe. Ich/wir haben jetzt eine andere Maschine. Vielleicht was es ein Bug einer älteren PHP4-Version. Nur Lokal als auch auf dem server hatte ich die Probleme. Deshalb war ich damals auch so am verzweifeln. Ich habe jetzt auch keine Lust mehr, das irgendwie noch einmal zu testen. Ich mache das jetzt immer auf meine Art und fertig.

                      Folgendes habe ich nie probiert.
                      ----------------------------------------------------------------
                      <?PHP
                      session_register("foo1", "foo2");

                      // hier vielleicht die Übergebenen Variablen noch verarbeiten

                      if(isset($foo1)) { $foo1 = $foo1; }
                      if(isset($foo2)) { $foo2 = $foo2; }
                      ?>
                      ----------------------------------------------------------------
                      Aber ohne ein "umspeichern" ging es nie.

                      Normalerweise ist es so, das eine registrierte Variable für die Session, über das gesamte Script zur Verfügung steht. Wenn man sich an das ganze Gedöns mit GLOBAL oder nicht GLOBAL hält. Mit dem Auslesen einer registierten Sessionvariable hatte ich nie Probleme.

                      Kannst es ja mal ausprobieren:
                      http://www.teamone.de/selfaktuell/artikel/beitrag.htm ;-)

                      Du wirst es nicht glauben, ich habe eins in Arbeit, aber keine Zeit. Weil ich ausgiebig auf mehreren System testen muß. Es geht bei diesem Tutorial um downloadbare Schriften.

                      ?? huch ??? wie ??? wo passt denn der Absatz jetzt dazu ? Flash? Gästebuch? PopUps ... ?? Fragezeichen Rufzeichen! ;-)

                      Ich habe mich auf einen Satz mit Tutorials und das verstehen dieser Tutorials bezogen und bin ziemlich weit ausgeschweift und etwas sentimental geworden. Wenn ein Newsbie Fehler macht oder Dinge nicht verstanden hat, liegt es nicht an dem Newbie, sondern an der FAQ oder Tutorial. Ich gehe davon aus, das der Newbie sich mit dem Thema befast hat und nicht faul ist.

                      MfG, André Laugks

              2. Hallo...
                also zuerst mal danke... es geht! :-)
                ich habe den quelltext exakt von dir übernommen...

                ...jedoch sind am anfang des dokuments immer folgende errors:

                Warning: Cannot send session cookie - headers already sent by (output started at C:\apache\htdocs\top.php:4) in C:\apache\htdocs\sid_test.php on line 6

                Warning: Cannot send session cache limiter - headers already sent (output started at C:\apache\htdocs\top.php:4) in C:\apache\htdocs\sid_test.php on line 6

                desweiteren sieht die url wie folgt aus... wieso hängt er das teil zweimal dran??
                users.php.php?PHPSESSID=2a35bb77b04048cb661da427fe542f8b&PHPSESSID=2a35bb77b04048cb661da427fe542f8b

                Marc

                1. Hallo!

                  ich habe den quelltext exakt von dir übernommen...

                  ...jedoch sind am anfang des dokuments immer folgende errors:

                  Warning: Cannot send session cookie - headers already sent by (output started at C:\apache\htdocs\top.php:4) in C:\apache\htdocs\sid_test.php on line 6

                  Warning: Cannot send session cache limiter - headers already sent (output started at C:\apache\htdocs\top.php:4) in C:\apache\htdocs\sid_test.php on line 6

                  Wenn PHP ein Cookie sendet, sendet es das mit allen Headern zusammen, in denen diverse Infos stehen etc.. Für Dich eigentlich uninteressant!!! Wenn, bevor diese Header(die du nicht siehst, nicht zu wechseln mit <head></head>) gesendet werden, irgendein Zeichen ausgegeben wird, Leerzeichen oder Dein HTML, kann dieser Cookie nicht gesendet werden. --> "Warning: Cannot send session cookie..."

                  Die Strichellinie ist der obere Rand Deines Editors!

                  -----------------------------------------------------------------------------
                  <?PHP
                  session_register("variable1");
                  session_register("veraibale2")
                  ?>
                  <html><body>
                  <a ...></a>
                  </body></html>

                  desweiteren sieht die url wie folgt aus... wieso hängt er das teil zweimal dran??
                  users.php.php?PHPSESSID=2a35bb77b04048cb661da427fe542f8b&PHPSESSID=2a35bb77b04048cb661da427fe542f8b

                  Hier ist die Variable "session.use_trans_sid" in der php.ini auf true|1 gesetzt.

                  Zitat von http://www.php.net/manual/de/ref.session.php
                  ----------------------------------><8-------------------------------------
                  Wenn PHP mit --enable-trans-sid kompiliert wurde, kann es dies transparent machen.
                  Wenn sie diese Option aktivieren, werden die URIs automatisch geändert, sodass sie die Session-ID enthalten.  Alternativ können sie die Konstante SID verwenden, die definiert wird, falls vom Client keinen passendes Cookie gesendet wurde. SID hat entweder die Form session_name=session_id oder ist eine leere Zeichenkette.
                  ----------------------------------><8-------------------------------------

                  Das mit dem kompilieren vergessen wir mal.. :-). Das Zitat sagt aus: Wenn Du die Konstante SID verwendest und Cookies deaktiviert sind, setzt PHP für SID die Session-Daten, wie Session-Id und Session-Name.

                  Du hast SID nicht verwendet. PHP parst also die gesamte Seite und hängt an jede URL die session-Daten.

                  Du mußt also an die URL nicht noch eine Extra-Variable hängen mit den Session_daten, da PHP das für dich erledigt.

                  Deshalb kommen dann solche Sachen zustande.
                  users.php.php?PHPSESSID=2a35bb77b04048cb661da427fe542f8b&PHPSESSID=2a35bb77b04048cb661da427fe542f8b

                  Diese Methode kostet Systemresourcen. Wenn Du ein virteuellen Server hast, kann es Dir egal sein. Der Provider ist selbst schuld, wenn er diese Option zuläst. Teste einfach mal, wie Dein Provider PHP konfiguriert hat. Einfach eine Seite erstellen, in der Du nur schreibst.

                  <?PHP
                  phpinfo();
                  ?>

                  MfG, André Laugks

                  1. super alles geht nun dank eurer Hilfe! :-)

                    vielen vielen dank! :-)

                    MFG Marc