Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: нужна помощь по сессиям
Форумы портала PHP.SU » » Вопросы новичков » нужна помощь по сессиям

Страниц (1): [1]
 

1. teddy - 27 Апреля, 2013 - 13:13:28 - перейти к сообщению
Здравствуйте, помогите пожалуйста разобраться в сессиях, сейчас опишу в чем именно заключается моя проблема. Прочитал статью на PHP.SU на тему Сессии и посмотрел несколько видеоуроков но так и не понял в чем моя проблема.

Практикуюсь в использовании сессий и решил для пробы взять себе за пример разработку банальных пошаговых тестов. Тоесть имеется 3 странички на каждой есть вопрос, ответы на который содержат чекбоксы или радиокнопки и кнопка "Дальше". Т.е нажав эту кнопку мы переходим на другую страничку и отвечаем на следующие вопросы...

Нужно сделать так, что бы сразу после ответа данные не отсылались сразу в БД, а записывались в сессию в зависимости от выбранного ответа. А на итоговой страничке выводились в бразуре для наглядности выбранные ответы и отправлялись в БД... Я делал так(пример одной из страничек):

PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['submit'])){
  2.  
  3. $firma = $_POST['firma'];
  4. $cafe = $_POST['cafe'];
  5. $club = $_POST['club'];
  6.  
  7. if(isset($_POST['firma'])){$_SESSION['firma']=$firma;}
  8. if(isset($_POST['cafe'])){$_SESSION['cafe']=$cafe;}
  9. if(isset($_POST['club'])){$_SESSION['club']=$club;}
  10.  
  11. }
  12.  
  13. <pre>
  14.  
  15. Выберите одно из...:
  16.  
  17. <form action='end.php' method='post'>
  18.  
  19. <input type='checkbox' name='firma' value='FIRMA'>Фирма
  20. <input type='checkbox' name='cafe' value='CAFE'>Кафе
  21. <input type='checkbox' name='club' value='CLUB'>Клуб
  22.  
  23. <input type='submit' name='submit' value='Завершить тест'>
  24.  
  25. </pre>


По идее при выборе того или иного варианта они должны записываться в сессию которая будет доступна из всех файлов и где я смогу сделать что мне нужно(вывести либо отправить в БД) session_start(); прописал во всех файлах.

Но ничего не выходит. На экран выводится только если на каждой страничке вывести так: echo $_SESSION['cafe']; Тогда мне в браузер выведется его value. Значит все записывается? Но почему я не имею доступ к этим сессиям на последней страничке?

Очень надо, помогите, пожалуйста... а то сижу и туплю со вчерашнего дня
(Добавление)
В последнем файле проверяю на isset и вывожу но ничего не выводится...
PHP:
скопировать код в буфер обмена
  1. if(isset($_SESSION['firma'])){echo $_SESSION['firma'];}

(Добавление)
Умные дяди, где вы? Голливудская улыбка
2. Мелкий - 27 Апреля, 2013 - 14:29:19 - перейти к сообщению
Дурацкое предположение - может вы форму пытаетесь обрабатывать не там?
Т.е. на страничке 1 есть обработчик формы с этот страницы, но в action формы указана сразу вторая страница - следовательно, переход на следующую страницу есть, но данные-то в обработчик на прошлой странице не попали.

Воткните var_dump($_SERVER);, увидите всё, что записалось в сессию.
3. DelphinPRO - 27 Апреля, 2013 - 14:30:24 - перейти к сообщению
в каждой форме передаете номер страницы
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="page" value=2>

в скрипте ловите
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['page'])) {
  2.   $_SSESSION['page'] = $_POST['page'];
  3.   // дальше сохраняем в сессии все данные из формы и показываем следующую
  4. }
  5.  

если форма последняя - сейвим в базу.
Параллельно данные можно хранить в LocalStorage чтобы пользователь мог продолжить заполнение анкеты с сместа остановки.

В общем примитивнейшая задача, не вижу никаких трудностей, как и остальные. Поэтому, и лень отвечать Улыбка
4. teddy - 27 Апреля, 2013 - 14:38:21 - перейти к сообщению
Мелкий
DelphinPRO
Спасибо вам, буду пробовать )

А по поводу примитивности задачи - я это понимаю Улыбка Знаю что в целом это легко, но так как вникать в сессии начал только сейчас, не все понимаю, но исходя из примеров понятное дело что это не так уж и сложно, как например регулярные выражения )

 

Powered by ExBB FM 1.0 RC1