phpbar.de logo

Mailinglisten-Archive

[php] PHP 4.1.2: $_SESSION funktioniert nicht!

[php] PHP 4.1.2: $_SESSION funktioniert nicht!

A. Narres php_(at)_phpcenter.de
Mon, 25 Mar 2002 01:22:28 +0100


Hallo!

Ich habe gestern endlich PHP Version 4.1.2 als CGI unter Windows98SE
installiert. Als Server verwende ich Apache in der Version 1.3.20
(Win32). Nachdem ich alle notwendigen Einstellungen vorgenommen hatte
(ich habe die php.ini-recommended übernommen und abgesehen von den
Verzeichnis- und Fehleranzeige-Einstellungen nichts verändert), begann
ich guter Dinge, meine bisherigen Skripte an die neue Version
anzupassen (d.h. insbesondere globale Variablen und session_register()
zu ersetzen durch $_SESSION). Und plötzlich erhielt ich nur noch
Fehler - und zwar beim Speichern von Session-Daten.

Um mich zu vergewissern, daß es sich nicht um einen Fehler bei der
Session-Konfiguration handelt, habe ich register_globals auf ON
gestellt und folgende beiden Skripte eingegeben:

 ses_reg1.php:
        <?php
            session_start();
            $text="Hallo!"
            session_register("text");
            echo '<a href="ses_reg2.php">ses_reg2.php</a>';
        ?>

 ses_reg2.php:
        <?php
            session_start();
            echo $text;
        ?>

Die Ausgabe von register2.php ist erwartungsgemäß: 

        Hallo!

Nicht so, wenn ich register_globals wieder auf OFF stelle und das
ganze mit der sog. superglobalen $_SESSION probiere:

 superglobal1.php:
        <?php
            session_start();
            $_SESSION['text']="Hallo!";
            echo '<a href="superglobal2.php">superglobal2.php</a>';
        ?>

 superglobal2.php:
        <?php
            session_start();
            echo $_SESSION['text'];
        ?>

Nun erhalte ich beim Abrufen von superglobal2.php statt der
freundlichen Begrüßung folgende Fehlermeldung:

        Warning: Undefined index: text in superglobal2.php on line 3

($HTTP_SESSION_VARS['text'] anstatt $_SESSION['text'] führt übrigens
zum gleichen Ergebnis.)

Ein Blick in das Session-Verzeichnis (session.save_path=c:\tmp)
bestätigt die lästige Anzeige: ses_reg1.php hat brav folgenden Inhalt
in der Session-Datei abgespeichert:

        text|s:6:"Hallo!";

Während die von superglobal1.php angelegte Session-Datei nach wie vor
leer ist.

Ich habe 2 Stunden lang Manuals und FAQs und Handbücher gewälzt. Nun
weiß ich nicht weiter - kann mir bitte jemand helfen?

Grüße,
Robert

P.S.: Merwürdigerweise wird die Session-ID - ohne (für mich)
ersichtlichen Grund - mal per Cookie übertragen, mal per URL - obwohl
mein Browser Cookies annimmt ...


php::bar PHP Wiki   -   Listenarchive