Avatar billede little_kim86 Nybegynder
17. januar 2004 - 23:17 Der er 20 kommentarer og
2 løsninger

Hjælp med at bruge cookies

Hej har lavet min egen afstemnings box, men vil nu gerne have at den laver en cokie når man har stemt så man ikke bare kan stemme igen...

Er der nogle der kan hjælpe med noget kode og lidt forklarning, eller bare en side til hvordan man skal gøre det...

Med Venlig Hilsen
Kim Laursen
Avatar billede krydset Nybegynder
17. januar 2004 - 23:21 #1
Er det ikke lettere at smide en ip adresse med ind i databasen så hvis ip findes kan man ikke stemme
Avatar billede little_kim86 Nybegynder
17. januar 2004 - 23:24 #2
nej det er det ikke... For så bliver min database mega stor... og ikke alle har fast IP... Så det vil jeg ikke...
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:24 #3
når du har sendt afstemningen til din database eller txt-fil, så sætter du en cookie

setcookie("mincookie","1",time()+604800);

og så checker du i dit afstemningsscript om
if ($_COOKIE['mincookie'] == 1)
  echo "COOKIE SAT";
else
  echo "COOKIE IKKE SAT, KØR AFSTEMNING";


got it ?
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:25 #4
little_kim86 > men du skal også huske på at folk kan slette den cookie de har liggende, og så kan de stemme igen.. der er mange faktore der spiller ind...
Avatar billede little_kim86 Nybegynder
17. januar 2004 - 23:27 #5
Ja men det gør mig ikke noget... Gider bare ikke til at lave det med IP...
Avatar billede little_kim86 Nybegynder
17. januar 2004 - 23:27 #6
jeg prøver lige det du har skrevet ramlev.dk
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:30 #7
tallet 604800 = 7 dage , er hvor lang tid cookien skal gemmes hos brugeren i sekunder :

60*60*24 = 1 dag = 86400 sek
Avatar billede little_kim86 Nybegynder
17. januar 2004 - 23:30 #8
vil du ikke lige skrive have de forkellige værdier gør i setcookie???
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:34 #9
php.net/setcookie
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:34 #10
Avatar billede little_kim86 Nybegynder
17. januar 2004 - 23:44 #11
Den skriver en fejl:

Cannot add header information - headers already sent by
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:51 #12
setcookie skal du have i toppen af dit script, inden du laver output til skærmen af nogen art.. hverken echo eller i html
Avatar billede little_kim86 Nybegynder
17. januar 2004 - 23:59 #13
Hvad så hvis jeg ikke kan komme til at sætte den før der kommer billede på skærmen??? Kan jeg ikke gøre noget med at åbne et vindue sætte cookien og lukke vinduet hurtigt igen???
Avatar billede phpwiz Nybegynder
18. januar 2004 - 00:01 #14
så har du kodet det forkert, for det er altid muligt at lave det så det virker, måske du kunne vise koden her
Avatar billede little_kim86 Nybegynder
18. januar 2004 - 00:03 #15
Det er fordi at jeg har bygget siden op sådan at alle sider bliver includet på en side, sådan at layoutet kun ksla være på den ene side... og derfor kan jeg altså ikke komme til at sætte setcookies ind før der kommer output...
Avatar billede phpwiz Nybegynder
18. januar 2004 - 00:04 #16
jo, du kan smide den i toppen i din index fil, hvor du checker via en if () ....
ligesom du gør der hvor du gemmer til databasen
Avatar billede little_kim86 Nybegynder
18. januar 2004 - 00:19 #17
Dette indsætter cookien:
<?php

$vote = $_REQUEST["vote"];
$side = $_REQUEST["side"];
$id = $_REQUEST["id"];

if ($side == 'Afstemning/afstemninger.php' or $side == 'forside.php') {

    if($vote == "vote1" or $vote == "vote2" or $vote == "vote3" or $vote == "vote4" or $vote == "vote5") {
   
    setcookie("$id","$vote",time()+30758400);

    }
}

?>

Dette laver en If på den:
if ($_COOKIE['$id'] == 1) {
Avatar billede little_kim86 Nybegynder
18. januar 2004 - 00:20 #18
Nej okay ikke helt

<?php

$vote = $_REQUEST["vote"];
$side = $_REQUEST["side"];
$id = $_REQUEST["id"];

if ($side == 'Afstemning/afstemninger.php' or $side == 'forside.php') {

    if($vote == "vote1" or $vote == "vote2" or $vote == "vote3" or $vote == "vote4" or $vote == "vote5") {
   
    setcookie("$id","afstemning",time()+30758400);

    }
}

?>


if ($_COOKIE['$id'] == 'afstemning')
Avatar billede little_kim86 Nybegynder
18. januar 2004 - 01:47 #19
Kan jeg ikke gøre sådan at hvis jeg opretter en nyhed så bliver det også smatidigt lavet en ny cookies til den afstemning... Så hvis man har stemt på den ene kan man stadig stemme på den anden... Altså en unik cookie for hver afstemning...

fx: setcookie("afstemning","$id",time()+30758400);

if ($_COOKIE['min'] == "$id")
Avatar billede phpwiz Nybegynder
18. januar 2004 - 11:27 #20
jo lige præcis,

men så hedder der :
setcookie("afstemning",$id,time()+30758400);
if ($_COOKIE['afstemning'] == $id)
Avatar billede little_kim86 Nybegynder
18. januar 2004 - 11:32 #21
Tak for det nu virker det som det skal... Jeg lavede bare en bare en side som man blev sendt hen til når man stemte og så med en hedder bliver man sendt tilbage igen...

Du få sku lige nogle points...
Avatar billede phpwiz Nybegynder
18. januar 2004 - 11:33 #22
tak
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