CSS主题从验证的cookie切换

时间:2017-04-20 21:50:56

标签: php css validation cookies

基于处理我在此处找到的信息Validate cookie matches a list of hard-coded values以及OP的原始问题,我已经有了一个基本的主题切换器工作。

CSS-swap.php

<?php
  $required = array('black', 'green', 'pink', 'red');
  $style_name = 'black';
  if(!empty($_COOKIE['style']) && in_array( $_COOKIE['style'] , $required ))
  $style_name = $_COOKIE['style'];
?>
<link rel="stylesheet" type="text/css" href="css/<?php echo (!isset($_COOKIE['style'])?$style_name:$_COOKIE['style']) ?>.css" />
</head>
<body>
 <form action="process-css-swap.php" method="get">
    <select name="choice">
      <option value="black" selected>Black</option>
      <option value="green">Green</option>
      <option value="pink">Pink</option>
      <option value="red">Red</option>
    </select>
<input type="submit" value="Apply">
</form>

过程-CSS-swap.php

<?php
  $year = 31536000 + time();
  setcookie('style', $_GET['choice'], $year);
  header('Location: css-swap.php');
  exit();
?>

我不确定我是否正确解释了验证部分,特别是在我添加了两个不在所需数组中的选项时,主题会更改为这些选项的样式。

<option value="blue">Blue</option>
<option value="purple">Purple</option>

我还尝试使用GET代替POST,因为我希望能够为选择添加书签,但选项不会显示在网址中。

那么,我是否错误地验证了cookie?为什么它似乎像POST而不是GET处理?

0 个答案:

没有答案