Avatar billede optur Novice
10. marts 2011 - 08:59 Der er 6 kommentarer og
1 løsning

håndtering af en cookie

Jeg prøver at lave et script som håndtere en cookie.

Der der skal ske er at der ligger en cookie på computeren som scriptet skal kigge i og kontrollere om den indeholder den rigtige streng som også findes i databasen. Findes den skal den så vise indholdet på siden, hvis ikke skal den så gå væk fra siden.

Hvordan kan jeg skrive det logisk? jeg har prøvet at finde info på nettet med jeg er total lost med det her. Kom helst med kommenteret kode eksempler hvis det er muligt, da jeg er alt for noob til at forstå sammenhængen endnu.
Avatar billede repox Seniormester
10. marts 2011 - 10:22 #1
Sæt cookien:
<?php
//Udløber efter en time
setcookie("MinCookie", "Mit Indhold", time()+3600);
?>


Kontroller cookien og dens indhold:
<?php

if( isset($_COOKIE["MinCookie"]) )
{
  $min_cookie = $_COOKIE["MinCookie"];
  echo $min_cookie;
}
else
{
  echo "Der er ikke sat nogen cookie";
}
?>
Avatar billede optur Novice
10. marts 2011 - 10:36 #2
den time() du har set, er det udløbstiden? for den skal nemlig ikke udløbe
Avatar billede repox Seniormester
10. marts 2011 - 10:50 #3
En cookie vil altid udløbe - det er kun et spørgsmål om hvor lang tid der går, før den udløber. Du kan ikke sætte en cookie til at leve for altid - men du kan altid opdatere din cookie, til at holde en givet periode igen.

Skulle den holde en måned, ville noget ala dette gøre det:
time()+3600*24*30
Avatar billede showsource Seniormester
11. marts 2011 - 09:56 #4
En bør, "skal", ha' en path på, ellers vil en del browsere ikke acceptere den:
setcookie("MinCookie", "Mit Indhold", time()+3600, "/");
Her gælder den for hele domain.
setcookie("MinCookie", "Mit Indhold", time()+3600, "/cookies/");
så gælder den fra dir'et "cookies"

if(isset($_COOKIE["MinCookie"])) {

// connect til db

$row = mysql_query("SELECT felt FROM tabel WHERE cookiefelt = '".mysql_real_escape_string($_COOKIE["MinCookie"])."'") or die (mysql_error());

    if(mysql_num_rows($row)) {
// vis indhold
    }else{
// whatever
    }

}else{
//whatever
}


Og husk at når en cookie sættes, kan den først læses igen ved refresh af siden.
Og når en cookie sættes må der heller ikke ha' været noget output til browseren, space, linieskift, htmlkode m.m.
Avatar billede optur Novice
24. marts 2011 - 09:38 #5
det kan godt være jeg spørger dumt, men der med at der skal/bør sættes en path, er det til selve cookien på brugerens computer eller noget på serveren?
Avatar billede optur Novice
24. marts 2011 - 11:12 #6
Din kode virker perfekt showcource... det tog lige lidt tid for mig at forstå ordentlig, men kanon hjælp..

send et svar så du kan få point for opgaven =)
Avatar billede showsource Seniormester
26. marts 2011 - 19:15 #7
Godt du fandt ud af det ! :O)
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