28. januar 2007 - 18:08
Der er
16 kommentarer og 1 løsning
Slet Cookie
Jeg er ved at lave et login system. Men en ting der driller, som har drillet før, er at logge ud igen. Systemet er baseret på cookies. Logind.php : <? setcookie ("cok_bruger", $_GET['bruger'], time()+60*60*24*365*2); setcookie ("cok_kodeord", $_GET['kodeord'], time()+60*60*24*365*2); echo ("<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=index.php\">"); ?> logud.php : <? setcookie ("cok_bruger", "loggetud", time()-3600); setcookie ("cok_kodeord", "loggetud", time()-3600); echo ("<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=index.php\">"); ?> Men det virker bare ikke! Efter man har trykket på "log ud" er man stadig logget ind, og cookie's har stadig samme information. Jeg har prøvet at ændre tiden til endnu mere -, og til +0 uden resultat. Hva kan man gøre?
Annonceindlæg fra Infor
28. januar 2007 - 18:34
#1
jeg kender ikke meget til cookies, men fandt ud af, da jeg lavede et autologin til min side, at det kun virkede hvis jeg slettede cookien på samme side som den er oprettet.
28. januar 2007 - 19:01
#2
echo ("<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=index.php\">"); == header("location: index.php"); 60*60*24*365*2 = 63072000 - 3600 = 63068400 - Dette skal skal være <= 0... Man kan sagtens slette cookies på andre sider, end de er oprettet.
28. januar 2007 - 19:24
#3
dvs hvis jeg ændrer logud til 60*60*24*365*20 f.eks. så burde det virke? Prøver lige..
28. januar 2007 - 19:25
#4
virker stadig ik..
29. januar 2007 - 00:10
#5
Sæt en path på! ( + sæt en cookie med samme navn !!! ) setcookie ("cok_bruger", $_GET['bruger'], (time()+60*60*24*365*2), "/"); setcookie ("cok_bruger", $_GET['bruger'], (time()-3600)), "/");
29. januar 2007 - 10:01
#6
path er det den sidste "/". prøver det når jeg kommer hjem..
29. januar 2007 - 12:00
#7
hov ville ha formuleret det som et spørgsmål. "path er den sidste "/", ik?"
29. januar 2007 - 12:54
#8
Nåh, mig som var tåget! Det med path, er mest fordi der har været nogle spm. om cookie der ikke har virket, men når path blev sat, virkede det. ( firefox, mener jeg ) Og for at slette en cookie skal den jo IKKE ha' nogen værdi, samt en tid som er datid Sæt cookie: setcookie ("cok_bruger", $_GET['bruger'], (time()+60*60*24*365*2), "/"); Slet cookie setcookie ("cok_bruger", "", (time()+60*60*24*365*2), "/"); Og der må ikke være noget output til brugeren før cookien sættes/slettes. ( Kan dog omgås med ob_start() )
29. januar 2007 - 16:14
#9
nu når du siger at når man sletter den ska den ha datid, mener du vel os setcookie ("cok_bruger", "", (time()-60*60*24*365*2), "/"); i stedet for + time ik? Prøver nu.,
29. januar 2007 - 17:12
#10
Ja, selvf........ ( ren tåge )
29. januar 2007 - 17:18
#11
Kan man ikke slette den ved hjælp af unset: unset($_COOKIE["cok_bruger"]); ?
30. januar 2007 - 19:20
#12
setcookie ("cok_bruger", "", (time()-60*60*24*365*2), "/"); <- virker ikke Den fjerner stadig ik cookien, så man er stadig logget ind når man trykker log ud :(
31. januar 2007 - 07:37
#13
Måske fordi serveren kører med register_globals on, og du bruger en var som hedder $cok_bruger ??? Men du kan jo prøve dette, det burde virke: <?php if(isset($_GET["saet_cookie"])) { if($_GET["saet_cookie"] == "ja") { setcookie("navn", "cookienavn", time()+3600, "/"); }else{ setcookie("navn", "", time()-3600, "/"); } header("Location:". $_SERVER["PHP_SELF"] .""); exit; } if(isset($_COOKIE["navn"])) { echo "Cookie navn er sat, ". $_COOKIE["navn"] ." - <a href=\"". $_SERVER["PHP_SELF"] ."?saet_cookie=nej\">Slet cookien</a>"; }else{ echo "Cookie navn er ikke sat, - <a href=\"". $_SERVER["PHP_SELF"] ."?saet_cookie=ja\">Sæt cookien</a>"; } ?>
31. januar 2007 - 19:14
#14
well, selvom serveren kører med globals on, burde jeg jo godt ku bruge cok_bruger som string navn, så længe jeg bruger $_COOKIE osv. Men prøver lige det andet og vender tilbage :)
02. februar 2007 - 20:41
#15
så virker det sq!! kanon! tak for hjælpen. lægger du et svar showsource?
02. februar 2007 - 21:04
#16
"selvom serveren kører med globals on, burde jeg jo godt ku bruge cok_bruger som string navn, så længe jeg bruger $_COOKIE" NIX!!!!! GET, POST, COOKIE, SESSION, (ENV ?) hvis du har en af værdierne defineret, (sat), og register_globals er on, så finder dit script "næste" streng defineret med samme navn. Og jeg vil ikke ha' point, ellers mange tak! :O)
03. februar 2007 - 12:39
#17
cool nok. men tak for hjællpen :)
Vi tilbyder markedets bedste kurser inden for webudvikling