Использование куки и php для изменения таблиц стилей (CSS) - PullRequest
1 голос
/ 11 февраля 2009

У меня есть код, который работает и меняет таблицу стилей с помощью формы. Это работает, пока вы держите окно браузера открытым. Вы можете вернуться на другой сайт, и стиль будет тем, который вы выбрали, это нормально, но если вы закроете браузер и вернетесь, он будет установлен по умолчанию. Это связано с тем, что я каждый раз начинаю новую сессию, или с тем фактом, что я не установил срок действия cookie? Это вопрос один.

Вопрос 2: у меня есть выпадающее меню, которое в настоящий момент работает и выбирает правильную таблицу стилей, но у меня также есть несколько переключателей для размера текста. Я хочу, чтобы они были несовместимы, но они будут работать с использованием других таблиц стилей, в которых просто есть только размеры текста, поэтому размер текста по умолчанию является стандартным, и пользователь может изменять их вместе с таблицей стилей, но они работают независимо. Может ли кто-нибудь предложить немного кодирования спасибо.

Ниже приводится то, с чем я сейчас работаю. Приветствия

Php установка стиля:

  if (isset($_COOKIE["selectedStyle"])) // has the cookie already been set
  {
    $style=$_COOKIE["selectedStyle"];
  }else{
$style = spring;
}

  if (isset($_POST["changeStyle"]))  // changing the style
  {
    $style=$_POST["changeStyle"];
  }

  setcookie("selectedStyle",$style); // update or create the cookie
 ?>

Форма с выпадающим списком и переключателями для переключателя текста:

<div id="headerInfo">
<p><strong>User Controls</strong></p>
  <form method="post" action="<?= $_SERVER["PHP_SELF"];?>">
Select Page Style:<br/>
<select name="changeStyle">
<option value="spring">Spring (Green)</option>
<option value="summer">Summer (Yellow)</option>
<option value="winter">Winter (Blue)</option>
<option value="autumn">Autumn (Orange)</option>
</select>
<input type="submit" name="submitstyle" value="Set Style">
  </form>
    <form method="post" action="<?= $_SERVER["PHP_SELF"];?>">
Select Font Size:<br/>
<span class="smallText">A</span><input type="radio" name="changeFontSize" value="small"/>
<span class="standardText">A</span><input type="radio" name="changeFontSize" value="standard"/>
<span class="largeText">A</span><input type="radio" name="changeFontSize" value="large"/>
<span class="xLargeText">A</span><input type="radio" name="changeFontSize" value="extraLarge"/>
</select>
<input type="submit" name="submitfont" value="Set Size">
</div>

Ответы [ 3 ]

2 голосов
/ 11 февраля 2009

setcookie имеет параметр expire, который можно использовать для установки желаемой даты истечения срока годности. в документах есть пример того, как это сделать.

просто создайте другой файл cookie с информацией о размере шрифта и вызовите соответствующую таблицу стилей. переключатель должен находиться внутри тега form, чтобы отправлять его как часть запроса http.

1 голос
/ 11 февраля 2009

Было бы лучше использовать $_SESSION, чтобы сохранить стиль на всех страницах. Таким образом, он работает, даже если у пользователя отключены файлы cookie, поскольку он перезапишет URL-адреса с идентификатором сеанса.

1 голос
/ 11 февраля 2009

Когда дело доходит до изменения размера шрифта, я бы сказал, что вам лучше изменить размер на стороне клиента, с помощью jQuery, например . Я думаю, что в целом, если кому-то требуется больший размер шрифта на каждой странице (для доступности), размер шрифта в браузере увеличивается.

Хотя вы также можете сделать вызов AJAX, чтобы установить cookie-файл / сохранить запись в БД, если вы хотите изменить элементы таблицы стилей / установить постоянный больший размер шрифта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...