Avatar billede xhtml Nybegynder
09. oktober 2006 - 12:03 Der er 8 kommentarer og
1 løsning

PHP setcookie fejl

Hej.

Jeg har en fejl i en setcookie(); som jeg gerne vil have lidt hjælp med.

Koden:
---------------------------
<html>
<head>
  <title>Test Cookie</title>
</head>
<body>
<?php
$value = 'noget';

setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */

if(empty($_COOKIE['TestCookie'])) {
    echo 'Den har nu oprettet en cookie!';   
} else {
    echo $_COOKIE['TestCookie'];   
}
?>
</body>
</html>
---------------------------

Siden ligger her:
www.clubsite.frac.dk/test.php
Avatar billede xhtml Nybegynder
09. oktober 2006 - 12:09 #1
Har fundet koden på www.dk.php.net/setcookie og jeg har arbejdet med PHP i lang tid og jeg forstår ikke hvorfor koden ikke virker.
Avatar billede kinderaeg Nybegynder
09. oktober 2006 - 13:19 #2
Cookies skal sættes inden du skriver til headeren, det virker i nedenstående eksempel, dog skal du være klar over, at værdien først kan anvendes næste gang du refresher, $_COOKIES fyldes op ved sidens oprettelse:

<?php
$value = 'noget andet';

setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
?>
<html>
<head>
<title>Test Cookie</title>
</head>
<body>
<?php
if(empty($_COOKIE['TestCookie'])) {
  echo 'Den har nu oprettet en cookie!';   
} else {
  echo $_COOKIE['TestCookie'];   
}
?>
</body>
</html>
Avatar billede xhtml Nybegynder
09. oktober 2006 - 13:40 #3
Denne her virker ikke:
--------------------------------------------------------
<?
$get = $_GET['page'];
if(empty($_COOKIE['TestCookie'])) {
    $style = "css_1";
} else {
    $style = $_COOKIE['style'];
}
?>
<html>
<head>
  <title>ClubSite</title>
  <?
      echo '<link rel="stylesheet" href="/css/'.$style.'.css" type="text/css">';
  ?>
</head>
<body>

----------------------------------------------
Avatar billede kinderaeg Nybegynder
09. oktober 2006 - 13:49 #4
Mon ikke det er fordi du anvender den forkerte cookie, når du sætter noget ind i $style? Du tjekker om 'TestCookie' findes og sætted derefter "kagen" 'style' ind.
Avatar billede xhtml Nybegynder
09. oktober 2006 - 13:54 #5
$style = $_COOKIE['TestCookie']; er det nu. men det virker stadig ikke
Avatar billede kinderaeg Nybegynder
09. oktober 2006 - 13:57 #6
Hvad mener du med, at det ikke virker? Sætter den slet ikke noget ind, eller sætter den $style til css_1?

Det virker fint, når jeg tester
Avatar billede xhtml Nybegynder
09. oktober 2006 - 14:01 #7
www.clubsite.frac.dk - vælg en af farverne og den laver en cookie men den gider ikke blive vist. Men det der er toppen og det gider ikke virke
Avatar billede kinderaeg Nybegynder
09. oktober 2006 - 14:09 #8
Sådan som jeg kan se det, så er det ikke cookien du vil bruge, men i stedet $_GET['page'], som du også har lagt lidt op til i dit eksempel. Ellers skal du lave en mellemside, som lagrer din cookie og guider dig videre til "forsiden" igen.
Altså noget i stil med:

<?php
setcookie("style", $_GET['page'], time()+3600);
header("Location: index.php");
?>

Så linker du blot til denne side, når du vil skifte side, i stedet for at linke til fx index.php?page=css_4.
Avatar billede xhtml Nybegynder
10. oktober 2006 - 23:18 #9
Det virker nu.. Tak for 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