2011-12-16 3 views
1

Я довольно новичок в PHP, сейчас я занимаюсь занятия в техникуме. При этом одно из наших назначений требует от нас использования сеансов для изменения 4 CSS-свойств. body background-color, a: цвет ссылки, цвет hover и цвет h1. Идея состоит в том, чтобы в основном иметь 3 страницы -1, являющуюся формой, с 4 выпадающими списками, заполненными цветами, один из которых устанавливает фактические сеансы с данными $ _POST, а конечная - страница, на самом деле использующая CSS.Настройка свойств CSS через сеансы PHP?

У меня он работает с печеньем, но назначение явно говорит использовать сессии, как вы можете увидеть:

текущий код у меня есть, что устанавливает сеансы является:

session_start(); 
$_SESSION['bgColor']= $_POST['bgColor']; 
$_SESSION['lColor']=$_POST['lColor']; 
$_SESSION['hoverColor']=$_POST['hoverColor']; 
$_SESSION['h1Color']=$_POST['h1Color']; 

На той же странице, есть код под тем, что echo выводит значения переменных сеанса ... Я могу видеть цвета, которые сохраняются. Но, когда я пытаюсь повторить вне CSS, как это:

echo "a:link {color: ".$_SESSION['lColor'].";}"; 
echo "a:hover {color: ".$_SESSION['hoverColor'].";}"; 
echo "body {background-color: ".$_SESSION['bgColor'].";}"; 
echo "h1 {color: ".$_SESSION['h1Color']."; text-align:center;}"; 

Ее не работает, когда я проверить исходный код страницы через мой веб-браузер, он показывает пустые свойства:

a:link {color: ;}a:hover {color: ;}body {background-color: ;}h1 {color: ; text-align:center;}  

Я бы на самом деле оцените любую помощь, которую вы, ребята, готовы дать, и, пожалуйста, имейте в виду, что это мой первый класс в PHP.

+1

убедитесь, что у вас есть session_start на всех страницах – Galen

+0

Вы можете [принять полезные ответы] (http://meta.stackexchange.com/a/5235/160062). Не редактируйте разрешенную Dsiclaimer в текст. – oers

ответ

1

Вы обязательно запустите каждую страницу, использующую сеанс с session_start();

Он должен быть объявлен перед попыткой вызвать любые сеансовые вары.

Является ли ваша форма использованием метода = "сообщение" и не получается?

Кроме того, вы, вероятно, будете предупреждены многими людьми, чтобы убедиться, что вы дезинфицируете все, что вы получаете от $ _POST. В этом случае вы, вероятно, безопасны, так как это просто назначение, а не живой сайт.

+0

WOW. Я не знал, что должен иметь session_start(); на всех страницах, использующих сеансы. Его работа сейчас, спасибо! Решение было всего лишь session_start() ;. – user1102700

1

Добавить session_start() в File3.

Убедитесь, что PHPSESSID (или независимо от того, какая ваша переменная сессия вызывается) переносится из File2 в File3 через GET, если пользователь отключил файлы cookie.

+0

Спасибо! Проблема session_start() была проблемой, я не могу поверить, что решение было таким простым. Вы, ребята, спасатели жизни! – user1102700