Avatar billede Amo85 Nybegynder
21. juni 2010 - 11:13 Der er 3 kommentarer og
1 løsning

Cookies kan ikke læses eller skrives

Jeg har et problem med denne kode. Den vil nemlig ikke oprette cookien. (eller så er det bare når jeg vil læse den at problemet opstår?)
    $random = noget
    setcookie("Cookie[$_GET[id]]", "$random", time()+3600*24);
    header("Location: http://xxxxxxxx.dk/?randomid=$random");

Når jeg så vil læse den igen:

foreach ($_COOKIE['Cookie'] as $name => $value) {
echo $name;
echo "<br/>";
echo $value;
}

Sig hvis i skal bruge hele scriptet. Cookien bliver nogle gange oprettet/læst. Det er ikke bare fordi at jeg lige skal genopfriske siden. Jeg skal være igennem siden som opretter cookien en 4-5 gange og så virker den 1 af gangene på den side som læser cookien.
Avatar billede showsource Seniormester
21. juni 2010 - 11:43 #1
Prøv:

<?php

setcookie("login[username]","showsource",0,"/");
setcookie("login[random]","random",0,"/");

setcookie("new[0]","fornavn",0,"/");
setcookie("new[1]","efternavn",0,"/");


echo"<pre>";
print_r($_COOKIE);
echo"</pre>";

if(empty($_COOKIE["testcookie"]))
{
echo"cookie 'testcookie' er ikke sat!<p>";
}

if(!empty($_COOKIE["login"]))
{
extract($_COOKIE["login"]);

echo "<p>\$username er ".$username.", \$random er ".$random;

}


if(!empty($_COOKIE["new"]) && count($_COOKIE["new"]) == 2)
{

$username = $_COOKIE["new"][0];
$random = $_COOKIE["new"][1];

echo "<p>\$username er ".$username.", \$random er ".$random;

}
?>
Avatar billede showsource Seniormester
21. juni 2010 - 11:48 #2
Men ellers:

    $random = noget // Her mangler " eller '

// Når en cookie sættes, så sæt path også !!!
// Og brug gerne kun " omkring det som ikke er php
    setcookie("Cookie[$_GET[id]]", "$random", time()+3600*24);

// ex.
//    setcookie("Cookie[".$_GET["id"]."]", $random, time()+3600*24, "/");

// Her bruger du "randomid" og ikke blot "id"
    header("Location: http://xxxxxxxx.dk/?randomid=$random");

//    header("Location: http://xxxxxxxx.dk/?randomid=".$random);
Når jeg så vil læse den igen:

// Prøv med print_r($_COOKIE) i stedet
foreach ($_COOKIE['Cookie'] as $name => $value) {
echo $name;
echo "<br/>";
echo $value;
}
Avatar billede Amo85 Nybegynder
22. juni 2010 - 19:50 #3
... Det var da utroligt det var det eneste der skulle til så virkede det :) (det med at sætte path og domain). Jeg har aldrig oplevet at det skulle være fejlen før... men tak for hjælpen :)
Avatar billede showsource Seniormester
23. juni 2010 - 05:35 #4
Det er browser bestemt, hvorvidt den SKAL sættes.
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

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