PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sessions wie gehts genau?



Zoidberg
12-06-2004, 12:59
Hallo Forum!
Ich habe einen Linux-PC mit einem Apache 1.3.27 unter Linux(SuSE 8.2) und einem PHP-Modul der Version 4.3.1.
Ich habe jetzt gerade folgende Probleme damit:
Ich schaffe es wohl zwar, eine php-Session zu starten, wenn ich im nächsten php-File bin mit meinem Client (der über das Netzwerk, also nicht localhost) auf den Server zugreift, bekomme ich jedoch keinen Zugriff auf die im vorherigen php-File registrierten Variable, bzw. betreffende Variable ist leer.
Ich bekomme im ersten php-File allerdings schon eine komische Meldung:


Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Weiß jemand was bei meinem Server nicht richtig läuft? Ein bekannter hat die 2 Files auf seinem Webserver getestet, dort funktioniert es allerdings.

Gruß, Zoidberg / Flo

Gaert
12-06-2004, 14:16
Hallo Zoidberg - willkommen im Forum...

Den Fehler hatte ich auch schon mal... poste bitte mal dein Skript!

Ciao,

Gaert

Gaert
12-06-2004, 14:24
Ok... hab mich gerade mal bei bugs.php.net umgeschaut...

--> http://bugs.php.net/bug.php?id=21312%22

Möglicherweise ist das dein Problem.

Ein Upgrade auf eine neuere PHP Version könnte helfen, aber wie gesagt - poste erstmal dein Skript.

Zoidberg
12-06-2004, 15:25
Also ich habe 2 Dateien:
session-1.php


<?PHP
session_start();
?>
<html>
<body>
<?php
$sessid = session_id();
echo "Die Session-ID ist: $sessid";
$name = "Zoidberg";
session_register ("name");
echo '<a href="session-2.php">Weiter... </a>';
?>
</body>
</html>

Und die 2. Datei:
session-2.php

<?php
session_start();
echo $name;
?>

Ich hoffe, das hilft.
Gruß, Zoidberg / Flo

Gaert
12-06-2004, 15:57
Ist ne ziemlich altbackene Session Programmierung - ich nehme an du lernst mit uralter Literatur (<= 2002).

Versuche es so:



<?php
session_start();
$sessid = session_id();
echo "Die Session-ID ist: $sessid";
$_SESSION['name'] = "Zoidberg";
echo '<a href="session-2.php">Weiter... </a>';
?>




<?php
session_start();
$sessid = session_id();
echo "Die Session-ID ist: $sessid";
echo $_SESSION['name'];
?>

Zoidberg
12-06-2004, 17:08
Hmmm... ich muß sagen, daß sich leider nichts verbessert hat, eher verschlechtert.
Jetzt bleibt nicht mal mehr die Session-ID gleich.
Trotzdem danke für Deine Hilfe.
Gruß, Zoidberg / Flo

Gaert
12-06-2004, 17:16
Original geschrieben von Zoidberg
Jetzt bleibt nicht mal mehr die Session-ID gleich.

Dann stimmt definitiv etwas mit deinem PHP nicht...

Hat sich die Fehlermeldung verändert?

Zoidberg
12-06-2004, 17:41
Doch, die Fehlermeldung ist weg.
Aber der Webserver kennt im Nächsten PHP-File die Session-ID nicht mehr, obwohl der Browser die auch brav ins Cookie ablegt. Das finde ich halt schon ziemlich seltsam.
Ich habe einen Timeout für eine Session von 300 Sekunden (=5 Minuten) angegeben.
Es ist ziemlich komisch, wie sich das System da verhält.
Gruß,
Zoidberg / Flo