1

我想允许用户通过单击按钮更改我的网站主题颜色。目前我将css指针保存到url上。但是当跳转到其他页面时,css指针从新页面的url中消失了,所以主题颜色恢复为默认值。如何让每个页面都记住当前选中的css?我可以将 css 指针保存到 php 会话吗?怎么做?

代码:

<html>
<head>
    <link rel="stylesheet" href="css/theme-<?php if ($css=="blue" || $css == "") echo "blue"; else echo $css; ?>.css" type="text/css" media="screen" title="csstheme" /> 
    <?php require_once("session.php"); ?>       
</head>
    <body>
        <a href="<?php print $_SERVER['PHP_SELF'];?>?<?php print $querystring;?>&css=blue" ><img src="http://plekz.com/images/layouts/blue.jpg" /></a>
        <a href="<?php print $_SERVER['PHP_SELF'];?>?<?php print $querystring;?>&css=green" ><img src="http://plekz.com/images/layouts/green.jpg" /></a> 
        <a href="<?php print $_SERVER['PHP_SELF'];?>?<?php print $querystring;?>&css=pink" ><img src="http://plekz.com/images/layouts/pink.jpg" /></a>
        <a href="<?php print $_SERVER['PHP_SELF'];?>?<?php print $querystring;?>&css=white" ><img src="http://plekz.com/images/layouts/white.jpg" /></a>
        <a href="<?php print $_SERVER['PHP_SELF'];?>?<?php print $querystring;?>&css=red" ><img src="http://plekz.com/images/layouts/red.jpg" /></a>     
    </body>
</html>
4

1 回答 1

2

是的,会议将是一个不错的地方:

您可以创建一个被调用来设置主题会话的文件。例如,通过 QueryString 将所选主题传递给该文件。然后将用户返回到他们来自的页面。

这是未经测试的,但是是这样的:

if (isset($_GET["theme"]))
{
    session_start();
    $_SESSION["theme"] = $_GET["theme"];
}

header('Location: ' . $_SERVER['HTTP_REFERER']);

您也可以添加一个 switch 或 if 语句,以确保主题会话只能设置为几个预定义的值。

然后你阅读每一页的会话。如果设置了主题变量,则使用该主题,否则将回退到默认主题。

为您提供更多信息:

于 2012-05-06T16:54:02.477 回答