我目前有一个网站,用户可以在其中选择自定义主题.选择主题后,会创建一个cookie.cookie包含正确的数据并指向正确的CSS文件.出于某种原因,在重新访问该网站时,主题未加载.我应该指出我是PHP的新手,所以这可能是一个非常容易犯的错误.请帮忙.谢谢.
这是我的代码:
<?php
$stylesArr = array('Default', 'Black', 'Pink', 'Green', 'Red');
if(isset($_GET['theme']) && in_array($_GET['theme'], $stylesArr)) {
$style = 'CSS/' . $_GET['theme'] . '.css';
setcookie("theme", $style, time()+(60*60*24*30));
} else {
if(isset($_COOKIE['theme']) && in_array($_COOKIE['theme'], $stylesArr)) {
$style = 'CSS/' . $_COOKIE['theme'] . '.css';
} else {
$style = 'CSS/Default.css';
}
}
?>
<link rel="stylesheet" href="<?php echo $style>" type="text/css"media="screen" />
Run Code Online (Sandbox Code Playgroud)
你是把一个字符串CSS/Default.css到一个cookie,但你正在检查对字符串Default的$stylesArr.改变这一行:
$style = 'CSS/' . $_GET['theme'] . '.css';
Run Code Online (Sandbox Code Playgroud)
对此:
$style = $_GET['theme'];
Run Code Online (Sandbox Code Playgroud)
它会没事的.
另外,我必须警告您在应用程序中直接使用来自$ _GET的数据.你永远不应该这样做,因为它可能导致严重的安全问题.始终清理用户输入.
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |