Verwendung von $_SESSION ab PHP 4.1.0
Stefan Lodders
- php
Hallo,
ich habe meine PHP-Version von 4.0.4 auf 4.1.2 hochgerüstet, um die gleiche Version zu haben, wie mein Provider.
Nun würde ich gerne auch die Neuerungen in Anspruch nehmen und habe dazu eine Frage:
Im Manual steht: "Wenn Sie $HTTP_SESSION_VARS/$_SESSION verwenden, sollten Sie session_register(), session_is_registered() und session_unregister() nicht verwenden."
Benutze ich aber session_register _nicht_, dann wird die Variable auch nicht gespeichert (also bloßes $_SESSION['test']='test'; geht nicht).
Wie ist der Satz des Manuals dann zu verstehen? Wie bekomme ich eine Variable in eine Session, ohne den Befehl session_register zu verwenden?
Danke :).
MfG
Stefan
Hi!
Du bekommst eine Variable in die Session wie folgt:
<?
session_start();
$_SESSION["variable"] = $variable;
?>
Ich denke Du kannst Du session_register()... verwenden, mußt Dir nur im KLaren sein, das die sich vielleicht gegenseitig ins Gehege kommmen!
Grüße
Andreas
Hi,
genau das geht bei mir nicht:
<?
session_start();
$_SESSION["variable"] = $variable;
?>
Habe folgende Testskripts:
#sessiontest.php
<?php
session_start();
$_SESSION["test"]="teststring";
?>
<html>
<a href="sessiontest2.php">weiter</a>
</html>
#sessiontest2.php
<?php
session_start();
foreach($_SESSION as $k => $v)
{ echo $k." ".$v."<br>\n"; }
print $_SESSION["test"];
?>
Die Session wird angelegt, aber ist leer. Das zweite Skript gibt nichts aus. register_globals ist off.
Das kann doch nur ein Minifehler sein...
Gruss, Stefan
Also ich habe in keinem meiner Scripte "session start()"
Ich melde die Sessionvariablen einfach an:
zB. session_register("kunde","kundennummer","artikel")
Das muss dann im head jeder PHP-Datei stehen, in der auf diese Varioablen zugegriffen werden soll.
Das lässt sich einfacher auch über einen include lösen:
include("sessionvars.php");
in der Sessionvars-Datei steht dann nur:
<?php
session_register("kunde","kundennummer","artikel")
?>
Das hat den Vorteil, dass jeder Zeit neue Session-Variablen angelegt werden können, ohne das diese in jedem Dokument angemeldet werden müssen.
Vieleicht hilfts,
viele Grüsse
André
in der Sessionvars-Datei steht dann nur:
<?php
session_register("kunde","kundennummer","artikel")
?>
Das ist ja gerade das, was ab 4.1.0 nicht mehr empfohlen wird: $_SESSION und session_register() zu verwenden. aber bei mir funktioniert leider nur die Version mit session_register() und nicht ohne.
Gruss, Stefan
Hallo Stefan,
Das ist ja gerade das, was ab 4.1.0 nicht mehr empfohlen wird: $_SESSION und session_register() zu verwenden. aber bei mir funktioniert leider nur die Version mit session_register() und nicht ohne.
Lass mich raten, du versuchst das mit der Windows-Version PHP 4.12.
ich bin vor einigen Tagen an dem Problem fast verzweifelt, bis mir in einer Mailingliste endlich der Hinweis gegeben wurde, dass diese Version in puncto session-handling buggy ist.
update auf 4.2 oder downgrade auf 4.11
Danach gings auf einmal.
gruß Susanne
Hallo Susanne,
Lass mich raten, du versuchst das mit der Windows-Version PHP 4.12.
ich bin vor einigen Tagen an dem Problem fast verzweifelt, bis mir in einer Mailingliste endlich der Hinweis gegeben wurde, dass diese Version in puncto session-handling buggy ist.
update auf 4.2 oder downgrade auf 4.11
Oh. Tausend Dank. Du hast recht: ist Windoof. Ich bin verzweifelt und mache in meinem Wahnsinn schon lauter sinnlose Gif-Animationen, um mich abzulenken.
Also wieder downloaden...
Grüsse,
Stefan
Hallo,
wenn ich das richtig verstehe, dann wird's auch mit einer neuen Version von PHP nicht laufen. Du musst nämlich machen, wie Andreas gesagt hat:
$_SESSION["variable"] = $variable;
^^^^^^^^^^^
hier muss der Wert hin
Du hast folgendes gemacht:
$_SESSION["variable"] = "variable";
^^^^^^^^^^^^^
das ist falsch
Grüße,
Christian
$_SESSION["variable"] = $variable;
^^^^^^^^^^^
hier muss der Wert hin
Diese Version funktioniert leider auch nicht :(. Hatte ich schon versucht und habe es gerade nochmal gemacht.
Trotzdem Danke. :)
Stefan
Hallo,
auch Hallo,
Du musst nämlich machen, wie Andreas gesagt hat:
$_SESSION["variable"] = $variable;
^^^^^^^^^^^
hier muss der Wert hin
Du hast folgendes gemacht:
$_SESSION["variable"] = "variable";
^^^^^^^^^^^^^
das ist falsch
ich würde behaupten beides ist richtig oder kann richtig sein.
im ersten fall übernimmst du eine bereits existente Variable in die Session. im zweiten deklarierst du eine neue Variable sofort als Session-Variable. Kommt drauf an was du willst.
Gruß Susanne
$_SESSION["variable"] = $variable;
^^^^^^^^^^^
hier muss der Wert hin
$_SESSION["variable"] = "variable";
^^^^^^^^^^^^^
das ist falsch
Um mal der Theorie die Praxis folgen zu lassen: Ich habe jetzt PHP4.2.1 drauf und _beides_ funktioniert einwandfrei. Also PHP4.1.2 unter Windoof ist buggy bezüglich der Session-Verwaltung.
Gruss, Manti