【发布时间】:2015-03-07 17:54:28
【问题描述】:
我需要访问者使用一个简单的下拉菜单主题选择器来更改主题颜色和背景。选择菜单将使用 GET 字符串 ?theme=choice 将表单发送到 index.php,PHP 将获取此 GET 并将其转换为站点的 css 主题。我有 5 个不同的 CSS 文件(主题)。
选择菜单已完成,但现在我需要 PHP 以正确且安全的方式处理表单。我不知道 Cookies 是否是一个好方法,但很多人说 cookie 不是一个好主意,所以我的想法是也许只是将 ECHO 主题和 GET 主题添加到所有页面。
这是我拥有但不起作用的东西。我不知道如何使它变得更好,欢迎任何想法和帮助。
<head>
<?php
$theme = $_GET['theme'];
$security = mysqli_real_escape_string($theme);
//don't know if needed because database will not be used for this
$onlynumbersandletters = preg_replace('/[^A-Za-z0-9\-]/', '', $security);
//allow only letters and numbers for more safety is needed ?
// No database used but can someone hack a GET for this like in MySQL ?
//CODE
if(!empty($_GET['theme'])){
echo '<link rel="stylesheet" type="text/css" href="css/default.css" />';
}
else {
echo '<link rel="stylesheet" type="text/css" href="css/$onlynumbersandletters.css" />';
}
?>
<!-- other elements in head -->
</head>
我是 PHP 新手,我不知道代码是否安全或可以改进,但从选择菜单更改时我没有得到正确的主题。
有什么想法吗?
【问题讨论】:
标签: php html css security themes