2

我是会话和 cookie 的新手。就像我想将 cookie 更改为会话的磁贴一样。我只是从这里的链接中获取代码:http ://www.pixelconnect.com.au/web-design-blog/php-css-theme-switcher-with-cookies ?我尝试了一些方法,但没有奏效。

在文档类型之前:

<?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']?>" />
4

3 回答 3

1

如果你想用会话销毁cookiee,只需将时间参数留空,即

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

就够了……

于 2012-12-22T05:18:06.223 回答
1

这真的很简单。从 PHP,只需调用setcookie

如果您想禁用PHP 会话的 cookie,只需调用ini_set("session.use_cookies",0);ini_set("session.use_trans_sid",1);

于 2012-12-22T05:18:23.547 回答
1

如果您想使用会话而不是 cookie,请将您的打开代码更改为此(未经测试):

<?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;
} ?>
于 2012-12-22T05:21:17.137 回答