Avatar billede pmnielsen Novice
29. december 2014 - 23:24 Der er 5 kommentarer og
1 løsning

session virker ikke efter refresh

Har prøvet at lave en side der laver en session som gerne skulle kunne bruges på alle sider. men kan ikke få det til at virke.

har lavet en lille test. (som ikke virker)

1.php

<?PHP
session_start();
echo "test session side.";
$_SESSION['test1']="tekst1";
echo "<br />";
echo "session test1 på side 1 er: ".$_SESSION['test1'];
echo '<META http-equiv="refresh" content="5;URL=http://www.minwebside/2.php">';
exit;
?>

2.php

<?PHP
echo "test session side 2.";
echo "<br />";
echo "session test1 på side 2 er: ".$_SESSION['test1'];
?>
Avatar billede arne_v Ekspert
30. december 2014 - 01:46 #1
session_start();

mangler i 2.php
Avatar billede pmnielsen Novice
30. december 2014 - 08:27 #2
Det var bare mig der ikke har fået dem med her på siden....
Her er den fulde kopi af test filerne. (som stadig ikke virker)
den går fint fra side 1 til 2 med session er væk på side 2.

1.php

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<html>
<head>
<?PHP
session_start();
echo "test session side.";
$_SESSION['test1']="tekst1";
echo "<br />";
echo "session test side1 er: ".$_SESSION['test1'];
echo '<META http-equiv="refresh" content="5;URL=http://www.minside/2.php">';
exit;
?>
</head>
<body>

</body>
</html>

2.php

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<html>
<head>
<?PHP
session_start();
echo "test session side 2.";
echo "<br />";
echo "session test side 2 er: ".$_SESSION['test1'];
?>
</head>
<body>

</body>
</html>
Avatar billede Slater Ekspert
30. december 2014 - 10:19 #3
Du kan ikke starte sessionen efter du allerede har skrevet data til siden. Du skal køre den funktion (og andre lignende, som header() og setcookie()) før du sender noget, altså før al HTML på siden.
Avatar billede pmnielsen Novice
30. december 2014 - 16:14 #4
har flyttet session_start til 1 linje.
Det virker :-)

synes bare det er mærkeligt at den før kunne echo SESSION i 1.php og ikke i 2.php da session_start var samme sted i begge filer.

Mange tak for hjælpen, smid et svar.
Avatar billede Slater Ekspert
30. december 2014 - 16:51 #5
Så gerne. Og ja, sessions i PHP opfører sig lidt mærkeligt, hvis man ikke initialiserer dem rigtigt. Jeg ville også umiddelbart mene, at enhver brug af $_SESSION burde smide en fejl, hvis den ikke er startet korrekt - men måske er der et formål, jeg overser.
Avatar billede arne_v Ekspert
31. december 2014 - 03:46 #6
$_SESSION og session_start() har i virkeligheden ikke meget med hinanden at goere.

$_SESSION er bare et global associativt array.

session_start() har en logik a la:

if request has HTTP header with cookie with session id then
    load $_SESSION from disk based on session id
else
    set cookie with session id in response HTTP header
end if
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