/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
$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


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste