|
| $HTTP_SESSION_VARS Fra : Martin Møller Bæk |
Dato : 27-09-03 16:36 |
|
Hej
Jeg er ved at lave en hjemmeside, der skal ligge på en
server med PHP 4.04. Jeg har forstået, at når man laver
sessions på PHP < 4.10, "skal" man bruge $HTTP_SESSION_VARS
arrayet frem for $_SESSION arrayet. Webserveren kør på Windows.
Jeg bruger altid en funktion til at sætte session variablen:
function setSessionVar($var,$value)
{
GLOBAL $HTTP_SESSION_VARS;
$HTTP_SESSION_VARS[$var] = $value;
}
Hvis jeg efterfølgende tjekker værdien, er den sat,
men når jeg følger et link på siden, "glemmes" disse
session variabler, dvs. de er ikke længere sat.
Det forstår jeg ikke rigtigt. Er der nogen, der har
erfaring med det.
--
mvh
Martin MB
www.yavi.dk
| |
Johan Holst Nielsen (27-09-2003)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 27-09-03 16:47 |
|
Martin Møller Bæk wrote:
> Jeg er ved at lave en hjemmeside, der skal ligge på en
> server med PHP 4.04. Jeg har forstået, at når man laver
> sessions på PHP < 4.10, "skal" man bruge $HTTP_SESSION_VARS
> arrayet frem for $_SESSION arrayet. Webserveren kør på Windows.
>
> Jeg bruger altid en funktion til at sætte session variablen:
>
> function setSessionVar($var,$value)
> {
> GLOBAL $HTTP_SESSION_VARS;
> $HTTP_SESSION_VARS[$var] = $value;
> }
>
> Hvis jeg efterfølgende tjekker værdien, er den sat,
> men når jeg følger et link på siden, "glemmes" disse
> session variabler, dvs. de er ikke længere sat.
> Det forstår jeg ikke rigtigt. Er der nogen, der har
> erfaring med det.
Bare for at være sikker... husker du session_start(); på alle sider
INDEN du outputter noget til browseren?
mvh
Johan
| |
Johan Holst Nielsen (27-09-2003)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 27-09-03 16:52 |
|
Martin Møller Bæk wrote:
> Jeg er ved at lave en hjemmeside, der skal ligge på en
> server med PHP 4.04. Jeg har forstået, at når man laver
> sessions på PHP < 4.10, "skal" man bruge $HTTP_SESSION_VARS
> arrayet frem for $_SESSION arrayet. Webserveren kør på Windows.
>
> Jeg bruger altid en funktion til at sætte session variablen:
>
> function setSessionVar($var,$value)
> {
> GLOBAL $HTTP_SESSION_VARS;
> $HTTP_SESSION_VARS[$var] = $value;
> }
Aaah, kan se jeg har haft sammen problem tidligere ;) Sad og kiggede i
gamle sources.... syntes nok der var noget der sagde mig noget :)
Jeg registede sessions således:
<?php
session_start();
$foo = "var";
session_register("foo");
?>
Så indeholder $HTTP_SESSION_VARS['foo'] bar :)
mvh
Johan
| |
Johan Holst Nielsen (27-09-2003)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 27-09-03 16:54 |
|
Johan Holst Nielsen wrote:
> <?php
> session_start();
> $foo = "var";
> session_register("foo");
> ?>
>
> Så indeholder $HTTP_SESSION_VARS['foo'] bar :)
Sludder... den indeholder selvfølgelig var og ikke bar ;)
mvh
Johan
| |
Martin Møller Bæk (27-09-2003)
| Kommentar Fra : Martin Møller Bæk |
Dato : 27-09-03 18:02 |
|
Johan Holst Nielsen wrote:
> Aaah, kan se jeg har haft sammen problem tidligere ;) Sad og kiggede i
> gamle sources.... syntes nok der var noget der sagde mig noget :)
>
> Jeg registede sessions således:
>
> <?php
> session_start();
> $foo = "var";
> session_register("foo");
> ?>
>
> Så indeholder $HTTP_SESSION_VARS['foo'] bar :)
Tak for hjælpen, jeg har fået det til at virke nu.
Jeg kunne godt få dit til at virke, pånær når det
blev brugt i en funktion. Jeg lavede funktionen om,
så nu ser den sådan ud:
function setSessionVar($var,$value)
{
global $HTTP_SESSION_VARS, $$var;
$HTTP_SESSION_VARS[$var] = $value;
}
Dvs $$var skal også erklæres global.
Ellers duer det ikke.
--
Mvh
Martin MB
www.yavi.dk
| |
Martin Møller Bæk (27-09-2003)
| Kommentar Fra : Martin Møller Bæk |
Dato : 27-09-03 18:42 |
|
Martin Møller Bæk wrote:
> Tak for hjælpen, jeg har fået det til at virke nu.
> Jeg kunne godt få dit til at virke, pånær når det
> blev brugt i en funktion. Jeg lavede funktionen om,
> så nu ser den sådan ud:
>
> function setSessionVar($var,$value)
> {
> global $HTTP_SESSION_VARS, $$var;
> $HTTP_SESSION_VARS[$var] = $value;
> }
>
> Dvs $$var skal også erklæres global.
> Ellers duer det ikke.
Det var jeg vist for hurtig ude. Det virker
stadig ikke. Hvad gør jeg forkert. Burde
man ikke bare kunne skrive
$HTTP_SESSION_VARS['foo'] = 'bar';
og så virker det?
--
mvh
Martin MB
| |
|
|