在我的网站的登录系统中,我希望在验证完成后加载用户选择的CSS。唯一的问题是我的PHP位于body元素中,我在那里ECHOed用户的CSS链接。我知道这是“坏事”,但我还能做些什么呢?
if (isset($_SESSION['loggedin'])){
ECHO $_SESSION['style'];
}
else
{
ECHO 'green';
}
ECHO ".css' />";
PHP脚本在用户登录后回显正文中的一些文本,这就是为什么我不能将PHP脚本放在标题中。
答案 0 :(得分:1)
我假设您根本不熟悉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注入到您需要的地方。
答案 1 :(得分:0)
您可以在使用jQuery加载文档后加载用户css。
<script>
$(document).ready(function() {
$(head).append('<style>
<?php echo($user_css); ?>
</style>');
});
</script>
虽然只是添加一个部分来输出头部中的CSS将来会更容易维护,并且不需要加载页面。在慢速(ish)连接上有足够大的变化,用户会在CSS加载其样式时看到闪烁。
答案 2 :(得分:-1)
您可以使用一些jQuery在<head>
:
$(head).append('<style><?php echo user_css ?></style>');