Avatar billede cmau Nybegynder
14. december 2004 - 14:00 Der er 7 kommentarer og
1 løsning

cookies? til en menu

Hejsa. Jeg har lavet en menu, som man efter valg kan fjerne og sætte ind. Nu vil jeg så gerne have at mine brugere ikke behøves at gøre dette hver gang de besøger siden, så jeg vil gerne sætte en cookie.

Det skal være sådan at når man trykker på et billede åbner den i et andet frame en php side som bruger $_GET til at finde ud af om menuen er slået til eller fra (0 for slået fra og 1 for slået til). Den skal også modtage hvilken menu det er, da jeg får ca. 7-8 menuer. Når den så har modtaget dataen skal den sætte en cookie på brugerens computer med det.

Så i min menu vil jeg gerne have en if der tjekker om cookien er sat til fx. menu med id 1 hvis den er sat til 0 skal menuen ikke vises og hvis den er sat til 1 skal menuen vises.

Nogle der kan lave det?

Hvis der er noget i ikke forstår så skriv lige.

PS. i må gerne forklare mig hvordan en cookie er opbygget, altså den php kode der sætter den er opbygget.
Avatar billede neocron Nybegynder
14. december 2004 - 14:21 #1
Cookies er ret simple.
Du sætter en cookie med setcookie (http://dk.php.net/setcookie)

setcookie("MinCookie", 1, time()+3600);

Den kode sætter en cookie, der hedder MinCookie med værdien 1. Den vil eksistere i én time (tiden angives i sekunder).

Hvis du vil kontrollere, om en cookie er sat, så kan du gøre således:


<?php
if($_COOKIE["MinCookie"] == 1)
{
    echo "MinCookie er sat!";
}
else
{
    echo "MinCookie er IKKE sat! - Men det er den nu (tryk refresh)";
    setcookie("MinCookie", 1, time()+3600);
}
?>
Avatar billede neocron Nybegynder
14. december 2004 - 14:25 #2
Undskyld, jeg har lavet en fejl kan jeg lige se - setcookie() skal udføres FØR browseren outputter noget (altså før echo) så den funktionelle kode ser SÅDAN ud:

<?php
if($_COOKIE["MinCookie"] == 1)
{
    echo "MinCookie er sat!";
}
else
{
    setcookie("MinCookie", 1, time()+3600);
    echo "MinCookie er IKKE sat! - Men det er den nu (tryk refresh)";
}
?>
Avatar billede cmau Nybegynder
14. december 2004 - 15:13 #3
Må man godt gøre sådan her:
<?php
$menunr = $_GET["menunr"];
$menudata = $_GET["menudata"];
setcookie("Menu_$menunr", "$menudata", time()+31536000);
?>
Avatar billede cmau Nybegynder
14. december 2004 - 15:49 #4
Nej det var sådan her:
<?php
$menunr = $_GET["menunr"];
$menudata = $_GET["menudata"];
setcookie("menu_$menunr", $menudata, time()+31536000);
?>

Men måske spørger jeg om andet. Det er nemlig en svær opgave synes jeg.
Avatar billede neocron Nybegynder
14. december 2004 - 18:33 #5
Ja det må du da, du kan sagtens bruge variabler til at sætte data. Dine eksempler er fuldt ud gyldige.
Avatar billede cmau Nybegynder
16. december 2004 - 13:38 #6
Så smider du svar fik det selv til at virke!
Avatar billede neocron Nybegynder
16. december 2004 - 21:54 #7
Super! Her er et svar.. held og lykke med det :)
Avatar billede cmau Nybegynder
16. december 2004 - 22:01 #8
Mange tak. Du kan se det færdige system med cookies i en menu på http://new.woox.dk
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