-1

在我网站的登录系统中,我希望在验证完成后加载用户选择的 CSS。唯一的问题是我的 PHP 位于 body 元素中,我在那里回显了用户的 CSS 链接。我知道这很“糟糕”,但我还能做什么?

if (isset($_SESSION['loggedin'])){
ECHO $_SESSION['style'];
}
else
{
ECHO 'green';
}
ECHO ".css' />";

用户登录后,PHP 脚本会在正文中回显一些文本,这就是为什么我不能将 PHP 脚本放在标题中的原因。

4

3 回答 3

1

我假设您根本不熟悉 PHP 的基础知识,所以我将尽可能简单地对其进行分解。如果您的文档能够执行 PHP(这听起来像是因为您在正文中发生了一些事情),那么您需要做的就是将 PHP 代码包装为 PHP<?php并将?>其解析PHP。

你不应该把样式表放在你的身体里。确实,这是没有人会推荐的。但是,您可以做的是在文档的头部执行 PHP。

<!DOCTYPE html>  
<html lang="en">  
  <head>  
    <meta charset="utf-8">  
    <title>title</title>  
    <link rel="stylesheet" href="style.css">  
<?php
echo "<link rel='stylesheet' href='{$_SESSION['user_css']}'>";
?>
    <script src="script.js"></script>  
  </head>  
  <body>  
<?php
echo 'body text';
?>
  </body>  
</html>  

无论您决定将 PHP 代码注入到文档的哪个位置,它都会按照您的意愿呈现我建议使用 MVC 解决方案,但如果这只是一个小的一次性文件,请随时根据需要随时注入 PHP。

http://php.net/manual/en/language.basic-syntax.phptags.php

于 2012-09-25T19:59:40.733 回答
0

您可以在使用 jQuery 加载文档后加载用户 css。

<script>

$(document).ready(function() {

  $(head).append('<style>
  <?php echo($user_css); ?>
  </style>');

});

</script>

虽然只是在头部添加一个部分来输出 CSS,但将来会更容易维护,并且不需要加载页面。在慢速(ish)连接上发生足够显着的变化,当 CSS 加载他们的样式时,用户会看到闪烁。

于 2012-09-25T19:56:15.463 回答
-1

您可以使用一些 jQuery 将样式附加到<head>

$(head).append('<style><?php echo user_css ?></style>');
于 2012-09-25T19:45:30.097 回答