无论如何,这就是这个想法,网站已构建,并使用<link rel="stylesheet" href="https://example.com/darkmode.css">添加darkmode.css ,然后在页面上显示了暗模式。

我对其他想法持开放态度,例如设置简单的cookie以及仅在true时才激活样式表。 我不想在每个页面上都进行切换,因为这意味着手动编辑所有页面,并且仅对某些用户可用。

我认为必须在设置页面上将变量设置为true,但它需要在整个网站上使用,因此

 <?php if ($darkmode = $true) echo "<link rel="stylesheet" href="https://example.com/darkmode.css">"; ?> 

我假设需要将类似的内容添加到每个页面,然后在样式正确的情况下仅回显样式?

任何帮助将不胜感激,在此先感谢。

UPDATE 1

这些代码均无效,仅作为示例。 管理员将选中一个复选框,如果勾选了该复选框,页面将以“是/否”读取文件,然后将链接回显到其他样式表。

 <form action="preference.php" method="post"> <input type="checkbox" id="preference" name="preference"> </form> <?php $preference = $_POST["preference"]; $file = fopen("./preference.html","w"); fwrite($file, $preference); fclose($file); ?> <?php echo readfile("http://example.com/admin/preference.html"); ?> 

Update 2

那是应该发生的。 1用户打开暗模式。 2黑暗模式被存储。 3如果暗模式为true,则每个页面都会进行检查,然后在样式表中使用PHP echo。

Update 3

 <form action="preference.php" method="post"> <input type="checkbox" id="preference" name="preference"> <input type="submit" id="update" name="update" placeholder="Update Preference"> </form> <?php if (isset($_COOKIE['darkmode'])) { if ($_COOKIE['darkmode'] == "true") { echo '<link rel="stylesheet" href="https://example.com/admin/darkmode.css">'; } else { echo '<!--Not Enabled-->'; } } ?> 

我已经为表单添加了代码,该代码将更新首选项和要添加到每个页面的echo函数。 我只需要能够将其保存到Cookie中即可。

Update 4

设置页面:

 <form action="preference.php" method="post"> <input type="checkbox" id="preference" name="preference"> <input type="submit" id="update" name="update" placeholder="Update Preference"> </form> 

Preference.php:

 <?php if (isset($_POST['preference']) { // If a checkbox is checked in the form, set a cookie setcookie('isDarkMode', '1'); } else { // Otherwise -- delete cookie setcookie('isDarkMode', '', time() - 3600); } ?> 

添加到每个页面:

 <? if (isset($_COOKIE['isDarkMode']) && $_COOKIE['isDarkMode']) { ?> <link rel='stylesheet' type='text/css' href='https://example.com/stylesheet.css'> <link rel='stylesheet' type='text/css' href='https://example.com/darkmode.css'> <? } else { ?> <link rel='stylesheet' type='text/css' href='https://example.com/stylesheet.css'> <? } ?> 

提交表单时,首选项页面显示500错误。 任何想法为什么会这样?

preference.php

<?
if (isset($_POST['preference'])) {
  // If a checkbox is checked in the form, set a cookie
  setcookie('isDarkMode', '1');
} else {
  // Otherwise -- delete cookie
  setcookie('isDarkMode', '', time() - 3600);
}

在每个页面的头文件中:

<html>
<head>
  ...
  <? if (isset($_COOKIE['isDarkMode']) && $_COOKIE['isDarkMode']) { ?>
    <link rel='stylesheet' type='text/css' href='darkmode.css'>
  <? } else { ?>
    <link rel='stylesheet' type='text/css' href='normal.css'>
  <? } ?>
  ...
</head>
查看全文
  相关解决方案