Mailinglist Archive: opensuse-programming-de (244 mails)

< Previous Next >
Re: PHP und Session-Variablen
  • From: Christian Boltz <christian.boltz@xxxxxxxx>
  • Date: Sun, 22 Jun 2003 01:29:05 +0200
  • Message-id: <200306212230.56928@xxxxxxxxxxxxxxx>
Hallo Martin, hallo Leute,

Am Samstag, 21. Juni 2003 01:48 schrieb Martin Borchert:
> Am Samstag, 21. Juni 2003 01:18 schrieb Christian Boltz:
> > vorweg: würdest Du bitte Deinen Realname im Absender angeben? Ich
> > weiß nämlich ganz gern, wem ich gerade helfe ;-)
>
> Hmmm... Steht doch drin... Eigentlich. KMail kaputt? Muss ich mal
> verfolgen. Aber danke für den Hinweis.

Diesmal war es wieder OK.

> > Am Montag, 16. Juni 2003 11:05 schrieb mb@xxxxxxxxxx:
> > > [...]
> > > 3. Mit dem Array $_SESSION
> > > 4. Mit dem Array $HTTP_SESSION_VARS
> > > 5. Mit session_register()
> > > [...]
> > > 3.-5. sind allesamt ähnlich. Variablen werden linearisiert auf
> > > dem Server gespeichert, der Browser muss sich um nichts
> > > kümmern. Was mir nicht so ganz klar ist, wie werden die
> > > Sessions
> > > auseinandergehalten? Ich bin davon ausgegangen, dass php das
> > > Session Management übernimmt. Wenn ein Cookie nicht
> > > funktioniert, dann eben über $SESSID in $QUERY_STRING. Faslhc?
> >
> > Im Prinzip richtig. Allerdings muss der Fallback auf den
> > Querystring aktiv sein. (--enable-trans-sid beim Compilieren)
>
> Jepp, ist aktiviert.
>
> > > Mir ist der Wirkmechanismus der letzten drei überhaupt nicht
> > > klar. Mein Ergebnis war in etwa:
> > > $HTTP_SESSION_VARS funktioniert in Abhängigkeit vom Browser
> > > (Konqueror/Linux tut, Opera/Win32 tut, IE6 tut nicht,
> > > Mozilla/win32 tut nicht)
> >
> > Seltsam. Sessions sollten eigentlich Browser-unabhängig sein, da
> > sie serverseitig verwaltet werden. Der Browser sieht nur die
> > Session-ID.
> > Kann es sein, dass in den nicht funktionierenden Browsern Cookies
> > ausgeschaltet sind? Dann hilft wohl
>
> Nö, ist definitiv bei allen angewesen. Kann es sein, dass die
> Win-Browser kaputte Cookies zurückgeliefert haben?

Keine Ahnung.
Kann ich mir aber irgendwie nicht vorstellen, das hätten schon mehr
Leute gemerkt ;-)

> > 29.4. Wie übergebe ich Session-IDs ohne Cookies an eine andere
> > Seite? Was ist Fallback?
> > http://www.dclp-faq.de/q/q-sessions-fallback.html
>
> Fallback hätte eigentlich nicht nötig sein sollen, PHP-seitig war es
> aber aktiviert.

OK

> > > $_SESSION funktioniert in Abhängigkeit des Betriebssystems
> > > (Konqueror/Linux tut, */Win32 tut nicht)
> >
> > Meinst Du jetzt verschiedene PHP-Versionen oder greifst Du immer
> > auf denselben Server zu (mit verschiedenen Clients)?
>
> Sowohl als auch. PHP 4.2.2 von SuSE 8.1 und 4.0.6 von
> SuSE-7.weißichnich.
>
> > $_SESSION gibt es AFAIK erst ab PHP 4.1, ebenso wie $_GET und
> > $_POST.
>
> Ja, aber da hätte dann doch $HTTP_SESSION_VARS tun müssen. War aber
> nicht.

Das ist wohl auch nicht immer gesetzt ;-)

php.net manual/configuration.html#ini.track-vars
| track_vars boolean
|
| Wenn dieser Schalter aktiviert ist, werden GET-, POST- und
| Cookie-Werte in den Umgebungsvariablen-Arrays $HTTP_GET_VARS,
| $HTTP_POST_VARS und $HTTP_COOKIE_VARS abgelegt.

Allerdings wundert mich gerade das folgende:

php.net manual/ref.session.html
| Anmerkung: Seit PHP 4.0.3 ist track_vars immer aktiviert.

Bei 4.0.6 sollte es also an sein (oder meine Doku enthält einen Fehler,
könnte ja auch sein.) Prüf es einfach kurz in der php.ini nach.

Ansonsten teste es doch einfach mal unter beiden PHP-Versionen:
<?php
if (defined $HTTP_GET_VARS)
{echo "GET_VARS ist definiert";}
if (defined $HTTP_SESSION_VARS)
{echo "SESSION_VARS ist definiert";}
?>

> > > session_register() tut immer, unabhängig von Browser und
> > > Betriebssystem.
> >
> > Dann nimm doch das *g*
>
> Hab ich nun auch. Aber mir ist der Grund nicht klar, warum das
> funktioniert und der andere Kram nicht. Ich hatte mir Aufklärung
> über die Mechanismen dahinter erhofft.

Vielleicht findest Du ja oben den entscheidenden Hinweis ;-)


Gruß

Christian Boltz
--
Yeah, Windows is great... I used it to download Linux.



< Previous Next >