2012-12-22 95 views
2

我是新來的會話和cookie。就像我想要將Cookie更改爲會話一樣。我只是從鏈接中獲取代碼:http://www.pixelconnect.com.au/web-design-blog/php-css-theme-switcher-with-cookies? 我試過一些方法,但沒有奏效。 DOCTYPE前如何將cookie更改爲會話?

<?php 
$theme1 = business; 
$theme2 = modern; 
$theme3 = web2; 
if(isset($_POST['style'])) 
{setcookie('style', $_POST['style'], time()+(60*60*24*1000)); 
$style=$_POST['style'];} 
elseif(isset($_COOKIE['style'])) 
{$style=$_COOKIE['style'];} 
else 
{$style=$theme1;} ?> 

頭:

<head> 
<link href="<?PHP echo $style; ?>.css" rel="stylesheet" type="text/css" /> 
</head> 

體:

<body> 
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> 
<select name="style"> <option <?php echo "value='$theme1'"; 
if($style == $theme1) 
{ 
echo "selected='selected'"; 
} 
?>><?php echo $theme1; ?></option> 
<option <?php 
echo "value='$theme2'"; 
if($style == $theme2) 
{ 
echo "selected='selected'"; 
} 
?>><?php echo $theme2; ?></option> 
<option <?php 
echo "value='$theme3'"; 
if($style == $theme3) 
{ 
echo "selected='selected'"; 
} 
?>><?php echo $theme3; ?></option> 
</select><input type="submit" /> 
</form> 
</body> 

我想這樣做:

session_start(); 
$theme1 
$theme2 
$theme3 
if(isset($_POST['style'])){ 
$style=$_POST['style'];} 
elseif(isset($_SESSION['style'])) 
{$style=$_SESSION['style'];} 
else 
{$style=$theme1;} 
?> 

頭:

<link rel="stylesheet" type="text/css" href="<?php echo $_SESSION['style']?>" /> 
+0

你是什麼意思的cookie與會話..你的意思是說cookiee應該會議結束時銷燬? –

+0

我的意思是,我只想使用會話,而不是cookie。將cookie更改爲會話。 – surisava

回答

1

如果你想使用的會話,而不是餅乾,改變你的開放代碼,這(未經測試):

<?php 
session_start(); 
$theme1 = business; 
$theme2 = modern; 
$theme3 = web2; 
if (isset($_POST['style'])) { 
    $_SESSION['style'] = $_POST['style']; 
    $style=$_POST['style']; 
} else if (isset($_SESSION['style'])) { 
    $style=$_SESSION['style']; 
} else { 
    $style=$theme1; 
} ?> 
1

如果你想破壞與會話cookiee,只是離開的時間參數爲空即

setcookie('style', $_POST['style']); 

就足夠了......