【问题标题】:Style Switcher PHP and MySQL样式切换器 PHP 和 MySQL
【发布时间】:2014-05-10 14:46:42
【问题描述】:

我试图从我的管理面板制作一个样式切换器,我添加了:

index.php

<link rel="stylesheet" type="text/css" media="screen" href="<?php echo($thestyle);?>.css" >
<?php
$thestyle = $_GET['set'];
if ($thestyle == "style1")
    {
    $thestyle = "style2";
    }
else
    {
    $thestyle = "style1";
    }
?>

在管理面板的 dashboard.php

<a href="index.php?set=style1">Style Sheet One</a>
<a href="index.php?set=style2">Style Sheet Two</a>

这会更改我网站上的样式表,但我怎样才能使更改也存储在 MySQL 中?

此代码仅适用于管理面板中的语言,不适用于用户,我想在 mysql 中制作一个简单的 0-1 样式

【问题讨论】:

  • 将值保存在数据库中并在网站上读取?
  • 最好使用cookies。
  • 最好的方法是在用户配置文件中选择样式,当他保存配置文件时,您将选择的样式放入数据库中。或者,您可以验证用户是否在选择您保存时选择了 DB 上的样式。
  • 这仅适用于我,不适用于用户...此切换器仅适用于管理面板

标签: php html mysql css


【解决方案1】:

一种方法是为站点首选项或存储键值对的东西创建一个 MySQL 表。然后你可以更新key为“style”的行,并将值设置为1或2。

我担心的是,将首选项设为全局并能够这样设置有点奇怪。这似乎更有意义:

  1. 使用与我上述类似的方法将此首选项存储为用户表的一部分
  2. 将此首选项存储在 cookie 中。

我会按照以下方式做一些事情:

将值存储到 cookie

function updateStylePreference($style) {
    $_COOKIE['stylePref'] = $style;
}

从 cookie 中检索值

function getStylePreference() {
    if(isset($_COOKIE['stylePref'])) {
        return $_COOKIE['stylePref'];
    }

    else {
        // set a default
        updateStylePreference('style1');
        return 'style1';
    }
}

既然你说你只需要这个,那为什么不是文本文件(如果你反对 cookie)?

将值写入文本文件

    function updateStylePreference($style) {
        file_put_contents("stylepref.txt", $style);
    }

### Retrieving values from a text file
    function getStylePreference() {
        return file_get_contents("stylepref.txt");
    }

我真的在这里推荐 cookie。

【讨论】:

  • 你能给我一个演示吗? tnx
  • 添加了一个使用 cookie 的基本示例 - 尝试一下并发布您尝试过的内容和遇到的问题以寻求更多帮助。
  • 我只需要在管理面板中为我执行此操作,而不是为用户执行此操作
【解决方案2】:

您可以使用会话、cookie 或数据库。

关于它如何与会话一起工作的非常简单的示例

<?php
session_start();

if(!isset($_SESSION['style'])){
  $_SESSION['style'] = "style1";
}

if(isset($_GET['set'])){
  $_SESSION['style'] = $_GET['set'];
}
?>
<link rel="stylesheet" type="text/css" media="screen" href="<?php echo $_SESSION['style']; ?>.css" >

或者正如我现在所读的,您需要在 db 中执行此操作,然后在单击链接后创建一个类似的 sql:

UPDATE table SET style='$variable' WHERE someid = id 

【讨论】:

  • 我只需要我而不是用户..一个简单的 mysql 0 - 1 选择
  • 然后这样做:UPDATE table SET style='style1' WHERE id = 1 和样式 2:UPDATE table SET style='style2' WHERE id = 1。
【解决方案3】:

当您切换主题时,您可以在数据库或会话或 cookie 中更新当前样式主题的值。 所以下次你读取内存中的值来加载你当前选择的主题

【讨论】:

  • 没有会话或cookies...在mysql中值为1或2...我有style1.css和style2.css
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多