13. juli 2004 - 16:26
Der er
41 kommentarer og 1 løsning
Theme system med cookie
Jeg er ved at lave et theme system som på
www.madsass.dk... Indtil vidre ser min kode således ud:
<?
if ($style == blue){
setcookie ("style", "", time() - 3600);
setcookie("style", "blue.css");
echo $_COOKIE[style];
} else if ($style == standard ){
setcookie ("style", "", time() - 3600);
setcookie("style", "style.css");
echo $_COOKIE[style];
}else{
echo $style;
}
?>
Så kunne godt tænke mig at vide hvad jeg har gjort galt da den ikke gemmer noget i en cookie, eller i hvert fald henter den ikke oplysningen frem.
Håber der er nogen der vil hjælpe!
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du trækker jo en time fra den aktuelle tid - Så udløber cookien jo. setcookie ("style", "", time() + 3600);
if ($style == blue){ setcookie ("style", "blue.css", time() + 3600); echo $_COOKIE[style];
Ok, har du mulighed for lave hele koden om til det du mener det skal være, er ikke helt sikker på jeg forstår hvad du mener? Please, be be, be om :D
<?php if ($style == "blue"){ setcookie ("style", "blue.css", time() + 3600); echo $_COOKIE[style]; } else if ($style == "standard" ){ setcookie ("style", "standard.css", time() + 3600); echo $_COOKIE[style]; }else{ echo $style; } ?>
<?php if (isset($_GET["style"]) && $_GET["style"] == "blue"){ setcookie ("style", "blue.css", time() + 3600); echo $_COOKIE[style]; } else if (isset($_GET["style"]) && $_GET["standard"] ){ setcookie ("style", "standard.css", time() + 3600); echo $_COOKIE[style]; }else{ echo $_GET["style"]; ?>
Det virker heller ikke helt logisk det du har skrevet anden gang :/ synes jeg?!
Vil du egentlig prøve at få tilsendt filen?
14. juli 2004 - 10:02
#10
hvor kommer $style fra - er det noget som står i sidens adressefelt? Taster brugerne det ind i en formular eller er det noget helt andet?
14. juli 2004 - 10:02
#11
ah...nu ser jeg det. Så kan jeg lære at kigge bedre efter :-)
14. juli 2004 - 10:12
#12
Har du prøvet med den her: <?php include("include/ressources.php"); $style = $_GET['style']; switch($style) { case "blue": { setcookie ("style", "", time() + 3600); setcookie("style", "blue.css"); testVar("blue cookie", $_COOKIE[style]); };break; case "standard": { setcookie ("style", "", time() + 3600); setcookie("style", "style.css"); testVar("standard cookie", $_COOKIE[style]); };break; default: { echo ($style); } } ?>
14. juli 2004 - 10:12
#13
sorry - var lidt for hurtig. Det skulle have været <?php $style = $_GET['style']; switch($style) { case "blue": { setcookie ("style", "", time() + 3600); setcookie("style", "blue.css"); testVar("blue cookie", $_COOKIE[style]); };break; case "standard": { setcookie ("style", "", time() + 3600); setcookie("style", "style.css"); testVar("standard cookie", $_COOKIE[style]); };break; default: { echo ($style); } } ?>
14. juli 2004 - 10:15
#14
...og så får du lige den HELT rigtige kode: <?php $style = $_GET['style']; switch($style) { case "blue": { setcookie ("style", "", time() + 3600); setcookie("style", "blue.css"); echo($_COOKIE[style]); };break; case "standard": { setcookie ("style", "", time() + 3600); setcookie("style", "style.css"); echo($_COOKIE[style]); };break; default: { echo ($style); } } ?>
14. juli 2004 - 10:28
#15
Det virker heller ikke, tror jeg har lavet en fejl et andet sted, har du ikke en e-mail jeg kan sende det til?! Hvis du altså har tid og lyst til at se på det?
14. juli 2004 - 10:42
#16
prøv den her: perez@mail.dk
14. juli 2004 - 10:46
#17
jeg ved godt det lyder tåbeligt, men hvis jeg klikker 2 gange på enten blue eller standard på
www.zniffer.dk/v81/theme.php så virker det...
14. juli 2004 - 10:50
#18
men send mig bare theme.php så kigger jeg på det
14. juli 2004 - 13:35
#19
Har sendt filerne, fra mail tim@zniffer.dk <-- bare så du ik tror det er noget spam crap :D OG TUSINDE TAK
14. juli 2004 - 15:03
#20
Der er da ikke noget skummelt i det. Du skifter jo ikke theme før cookien er sat og det bliver den jo første gang og kan så først aflæses anden gang. <?php if ($style == "blue"){ setcookie ("style", "blue.css", time() + 3600); header("location:".$_SERVER["REQUEST_URI"]); } else if ($style == "standard" ){ setcookie ("style", "standard.css", time() + 3600); header("location:".$_SERVER["REQUEST_URI"]); }else{ echo $style; } ?>
14. juli 2004 - 15:03
#21
<?php if (isset($_GET["style"]) && $_GET["style"] == "blue"){ setcookie ("style", "blue.css", time() + 3600); header("location:".$_SERVER["REQUEST_URI"]); } else if (isset($_GET["style"]) && $_GET["standard"] ){ setcookie ("style", "standard.css", time() + 3600); header("location:".$_SERVER["REQUEST_URI"]); }else{ echo $_GET["style"]; ?>
14. juli 2004 - 17:17
#22
virker sq ik du :/
14. juli 2004 - 18:59
#23
hvis det ikke virker så er din server da helt kaput.
14. juli 2004 - 19:09
#24
skulle ikke undre mig, det er b-one.dk :( DET SUX
14. juli 2004 - 19:26
#25
Prøv at vise lidt mere af koden. Der må være noget galt andetsteds måske. <?php if (isset($_GET["style"]) && $_GET["style"] == "blue"){ setcookie ("style", "blue.css", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErSguSatDu"); } else if (isset($_GET["style"]) && $_GET["standard"] ){ setcookie ("style", "standard", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErSguSatDu"); }else{ echo $_COOKIE["style"]; } ?>
14. juli 2004 - 20:20
#26
Hvis du gir mig din mail kan jeg sende dig filen så du kan se på det?
14. juli 2004 - 20:23
#27
Det her bør virke. Hvordan vælger du style?
15. juli 2004 - 00:49
#29
Jeg kan jo ikke se din php kode.
15. juli 2004 - 09:49
#30
Har du en mail jeg kan sende til?
15. juli 2004 - 13:05
#31
nikolajdu3@hotmail.com
15. juli 2004 - 15:03
#32
Tak, har sendt dig en mail fra tim@zniffer.dk :D TUSINDE TAK FORDI DU GIDER!
15. juli 2004 - 21:43
#33
Så har jeg kigget på din kode, og jeg kan kun give nikolajdu ret - hvis du læser punkt 1 under "Common Pitfalls" her:
http://dk2.php.net/manual/en/function.setcookie.php så står der at cookies først bliver aktiveret ved reload af siden. Mit forslag ligger også tæt op af nikolajdu - nemlig at du opretter en side som opretter cookien og sætter den til hvad du nu vælger at kalde siden med. Derefter kan du bruge funktionen header() som nikolajdu foreslår og kalde din egen side, eller kalde en ny php-side hvor du henter dit stylesheet med <link rel="stylesheet" type="text/css" href="<?php echo $_COOKIE[style]; ?>" />
16. juli 2004 - 10:16
#34
opretter en side som opretter cookien <-- kan jeg få dig til at uddybe det? er ikke sikker på at jeg ved hvad du mener ?!
16. juli 2004 - 10:37
#35
<?php if (isset($_GET["style"]) && $_GET["style"] == "blue"){ setcookie ("style", "blue.css", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErBlaa"); } else if (isset($_GET["style"]) && $_GET["standard"] || !$_COOKIE["style"]){ setcookie ("style", "standard", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErSguStandard"); } $style = $_COOKIE["style"]; ?> <?php $starttime = microtime(); $startarray = explode(" ", $starttime); $starttime = $startarray[1] + $startarray[0]; ?> <? include "ipblock/tjek.php"; ?> <html> <head> <meta http-equiv="Content-Language" content="da"> <link rel="shortcut icon" href="ico/favicon.ico"> <link rel=stylesheet href='<? echo $style; ?>'>
16. juli 2004 - 10:38
#36
if (isset($_GET["style"]) && $_GET["style"] == "blue"){ setcookie ("style", "blue.css", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErBlaa"); } else if ((isset($_GET["style"]) && $_GET["standard"]) || !$_COOKIE["style"]){ setcookie ("style", "standard", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErSguStandard"); }
16. juli 2004 - 11:06
#37
<?php if (isset($_GET["style"]) && $_GET["style"] == "blue"){ setcookie ("style", "blue.css", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErBlaa"); } else if (isset($_GET["style"]) && $_GET["style"] == "standard" || !$_COOKIE["style"]){ setcookie ("style", "style.css", (time()+3600), "/"); header("location:".$_SERVER["PHP_SELF"]."?styleErSguStandard"); } $style = $_COOKIE["style"]; ?> Har ændret lidt i den så den kunne finde standard theme, ville den ikke før?! Og nu skal man trykke 2 gange igen før den skifter, er det derfor?
16. juli 2004 - 13:06
#38
fatter simpelthen ikke hvis det her ikke virker. if (isset($_GET["style"]) && $_GET["style"] == "blue"){ setcookie ("style", "blue.css", (time()+3600), "/"); header("location:$_SERVER[PHP_SELF]?styleErBlaa"); } else if (isset($_GET["style"]) && $_GET["style"] == "standard" || !$_COOKIE["style"]){ setcookie ("style", "style.css", (time()+3600), "/"); header("location:$_SERVER[PHP_SELF]?styleErSguStandard"); }
16. juli 2004 - 18:10
#39
hehe, ok! Men kom med et svar så kan du få nogle point! Fortjener i begge 2 efter at have prøvet at hjælpe mig så iherdigt! Skal i sq have tak for! boomshanka og nikolajdu kom med et svar hver!
16. juli 2004 - 22:00
#40
Ja det er meget mystisk. Jeg har selv B-one og hos mig virker det fint...men siden det var nikolajdu som kom med løsningen giver du bare point til ham...sgu :-)
16. juli 2004 - 22:33
#41
ok, så venter jeg bare på et svar
17. juli 2004 - 05:53
#42
JEg synes da vi ka dele. Vi har begge to kæmpet for at fatte en brik :))
Vi tilbyder markedets bedste kurser inden for webudvikling