Avatar billede Asger Carlsen Nybegynder
29. august 2010 - 21:59 Der er 9 kommentarer og
1 løsning

Hvad kan blokere en $_SESSION variabel?

Jeg er rendt ind i et mystisk problem, hvor mine $_SESSION variabler bliver glemt.

Bruger Session på følgende måde:

session_start();

if($_GET['set'] == nu){
    $_SESSION['status'] = "in";
}

if(isset($_SESSION['status']))
{
    echo "in";
} else
{
    echo "not in";
}

Det lille stykke kode ligger i en fil for sig selv (test.php). Når jeg kun bruger scriptet for sig selv virker det fint, når jeg sætter ind på den side hvor det skal bruges med include(); virker det kun når man skriver ?set=nu i sin browser.

Mit spørgsmål er så, hvad kan det være på min side der "nulstiller" mine $_SESSION's??
Avatar billede erikjacobsen Ekspert
29. august 2010 - 22:28 #1
Det skal næppe være

  if($_GET['set'] == nu){

men

  if($_GET['set'] == "nu"){
Avatar billede Asger Carlsen Nybegynder
29. august 2010 - 22:43 #2
Scriptet som sådan fungerer fint, hvis man isolerer der:

http://www.crx-web.dk/testpage.php

Problemer opstår når man sætter det ind på en side, i en del af et større script. Jeg har prøvet at udelukke andre script på siden, uden held. Så håber nogen her kunne svare mig på hvad der kunne blokere at $_SESSION['status'] = "in"; Ikke bliver gemt korrekt.
Avatar billede Asger Carlsen Nybegynder
29. august 2010 - 22:44 #3
Ved linket:

http://www.crx-web.dk/testpage.php?set=nu

Bliver "not in" /> "in"
Avatar billede erikjacobsen Ekspert
29. august 2010 - 22:47 #4
Den der testpage.php virker da rigtig nok, hvis den indeholder den kode du viser. Hvad er det, der ikke virker?

Og #1 er god nok - det skal være den nederste linie. At det måske også virker med den første linie, er ikke noget du kan regne med generelt.
Avatar billede Asger Carlsen Nybegynder
29. august 2010 - 22:54 #5
Problemet når jeg bruger include("testpage.php"); på en anden side. Så virker det ikke mere. Det skal bruges her:

http://www.esbjergbasket.dk/v2/index.php (I den lyseblå boks med "Login")

Skriver man:
http://www.esbjergbasket.dk/v2/index.php?set=nu

skriver den rigtigt nok "in". Klikker man så videre og loader en anden side. Ved at gå tilbage til start (http://www.esbjergbasket.dk/v2/index.php); da der ikke er nogle link på siden. Virker det til at $_SESSION['status'] er nulstillet da den igen viser, "not in".
Avatar billede tfswebguy Nybegynder
30. august 2010 - 02:28 #6
I din index.php i toppen som det ALLER første skal der stå:
<?php
session_start();
?>

og ikke i din include fil.
Avatar billede tfswebguy Nybegynder
30. august 2010 - 02:29 #7
I din index.php fil skal der som det ALLER første stå:

<?php
session_start();
?>

Og ikke i din include fil
Avatar billede tfswebguy Nybegynder
30. august 2010 - 02:29 #8
sorry for dobbelt post, men min comp fuckede vidst
Avatar billede Asger Carlsen Nybegynder
30. august 2010 - 07:54 #9
Det var da pinligt...

Den var med i toppen,  men havde sneget sig ned lige efter <HTML>. Godt spottet, selv uden du havde en min index.php :)

Smid et svar, så du kan få dine point.
Avatar billede tfswebguy Nybegynder
30. august 2010 - 17:01 #10
Har selv oplevet det samme, da jeg var grøn på området :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester