Avatar billede way3000 Nybegynder
04. juli 2007 - 11:18 Der er 7 kommentarer og
1 løsning

Flere cookies på 1 gang

Hejsa. Jeg sidder med det problem at jeg ikke kan have mere end 1 cookie ad gangen. Her kommer lige et par kode uddrag:

setcookie("adgang", "OK", time()+3600);
setcookie("bruger", "$bruger", time()+3600);

Jeg kører ovenstående i en IF sætning. altså hvis brugeren kommer fra min login side (hvis $adgang er udfyldt med en speciel værdi og $bruger er udfyldt, så lav disse to cookies.) både $adgang og $bruger bliver sendt med via denne HTML formel

<form action="<?echo "http://" . $_SERVER['HTTP_HOST'] . "/1/2/index.php"?>" method="get">
<input type="hidden" name="adgang" value="OK">
<input type="hidden" name="bruger" value="<?$bruger?>">
<input type="submit" value="Fortsæt til startside">
</form>

Men når jeg kikker i min cookie folder så ser jeg kun 1 cookie. og åbner jeg den finder jeg enkelte gange begge værdier skrevet ind efter hinanden i samme cookie selvom at jeg gerne skulle have 2 forskellige cookies. Mit problem er nemlig at jeg skal kunne læse fra cookie[bruger] hvem der er logget på konstantl.

Jeg ved ikke om det giver mening men ellers spørg mig bare :)

tusind tak for hjælpen.
Avatar billede showsource Seniormester
04. juli 2007 - 11:40 #1
Jamen kan du ikke få fat i dem?

echo "Adgang: ". (isset($_COOKIE["adgang"]) ? $_COOKIE["adgang"] : "adgang ikke sat!");


echo "<p>Bruger: ". (isset($_COOKIE["bruger"]) ? $_COOKIE["bruger"] : "bruger ikke sat!)";
Avatar billede showsource Seniormester
04. juli 2007 - 11:41 #2
Og det er nu en go' ide at sætte path på, har oplevet spm. hvor cookie ikke blev sat, (firefox, vistnok) hvor en path løste problemet

setcookie("adgang", "OK", (time()+3600), "/");
Avatar billede way3000 Nybegynder
04. juli 2007 - 11:43 #3
Ahh god ide. tusind tak skal du have. prøver den lige af :)
Avatar billede way3000 Nybegynder
04. juli 2007 - 13:02 #4
Ok har fundet en del af fejlen her. jeg bad den sætte begge cookies hver gang man rørte min index side (hvilket man altid gør når man navigerer da jeg  bruger SWITCH)
dvs. første gang var der data at sætte i den men ikke de andre gange da jeg ikke sendte $bruger med rundt. OK så jeg ændrede det og satte den setcookie() der skríver $bruger helt frem til der hvor man logger ind. MEN oh ve. der er jo andet der er i headeren før jeg kan sætte denne header info. dvs. den siger bare:

"Warning: Cannot modify header information - headers already sent by"  :'(

Hvordan er det lige jeg bruger ob_start ? kan jeg bruge den her ellers har jeg misforstået noget ? syntes det er lidt svært at oversætte hvad der står på php.net om det.
Avatar billede way3000 Nybegynder
04. juli 2007 - 14:06 #5
Ok tak for hjælpen. jeg aner ikke hvad der er galt. 100% men jeg har skiftet over til sessions. det virker vist også til at være en bedre ide :P nu har jeg kun et lille problem med hensyn til at logge ud hehe. men det klarer jeg nok :) tak for hjælpen.

og showscource. bare gi et svar så får du points for dit slid :) tak for hjælpen.
Avatar billede showsource Seniormester
05. juli 2007 - 07:57 #6
For at logge ud:

<?php

    session_start();

    setcookie(session_name(), "", (time()-3600), "/");
    $_SESSION = array();
    session_destroy();

?>

Og ja, jeg synes også session kan være bedre/nemmere at bruge, end cookies

Men svar selv, og accepter dit eget svar
Avatar billede coderdk Praktikant
05. juli 2007 - 14:19 #7
Desuden burde:

<input type="hidden" name="bruger" value="<?$bruger?>">

være:

<input type="hidden" name="bruger" value="<?= $bruger ?>">

eller:

<input type="hidden" name="bruger" value="<?php echo $bruger; ?>">
Avatar billede way3000 Nybegynder
27. februar 2013 - 16:08 #8
lukket
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