Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
1

PHP session

17.11.2014, 19:04. Показов 443. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Пытаюсь создать трехстраничное приложение с использованием сессии
Вот код
1.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<body>
<h1> Добрый день! </h1>
  <form method="post" action="2.php">
   <table>
    <tr><td>Фамилия:</td>
    <td><input type="text" name="fam" value="<?php echo $fam; ?>"></td></tr>
    <tr><td>Имя:</td>
    <td><input type="text" name="name" value="<?php echo $name; ?>"></td></tr>
    <tr><td>Отчество:</td>
    <td><input type="text" name="otch" value="<?php echo $otch; ?>"></td></tr>
    <tr><td>Специальность:</td>
    <td><input type="text" name="spets" value="<?php echo $spets; ?>"></td></tr>
    <tr><td>Возраст:</td>
    <td><input type="text" name="age" value="<?php echo $age; ?>"></td></tr> 
    <tr><td colspan="2"><input type="submit" value="Далее">
    </td></tr>
   </table>
  </form>
</body>
</html>
2.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<?php
  session_start();
  $_SESSION['username'] = $_POST['name'];
  $_SESSION['userspets'] = $_POST['spets'];
  echo "Привет, ".$_SESSION['username']." <p>Выберите хобби:<br>";
?>
<form method="post" action="3.php">
<input type="radio" name="hobbi" value="<?php echo $hobbi; ?>">Коллекционирование
<p><input type="radio" name="hobbi" value="<?php echo $hobbi; ?>">Историчкская реконструкция
<p><input type='radio' name='hobbi' value="<?php echo $hobbi; ?>">Роспись стекла
<p><input type='radio' name='hobbi' value="<?php echo $hobbi; ?>">Живопись
<p><input type='radio' name='hobbi' value="<?php echo $hobbi; ?>">Литературное творчество
</form>
  <a href="3.php">Далее</a>
</html>
3.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
<html>
<?php
  session_start();
  $_SESSION['userhobbi']=$_POST['hobbi'];
  echo $_SESSION['username'].", вы пришли на другую страницу этого сайта!";
  echo "<br>"; 
  echo $_SESSION['userspets']."- ваша специальность";
  echo "<br>";
  echo $_SESSION['userhobbi']." - ваше хобби";
?>
</html>
Вторая страница работает хорошо. Но на третьей не выводятся значения "хобби". В чем может быть дело? Помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2014, 19:04
Ответы с готовыми решениями:

PHP session
Здравствуйте! Разбираюсь с сессиями, не получается(( не могу понять что и как(( подскажите,...

PHP Session
тут недавно столкнулся с такой проблемой - На сайте есть 3 страницы на первой пользователь выбирает...

Ошибка php session-start
Здравствуйте! При запуске сайта в браузере выдает следующую запись: Warning: session_start()...

Начинающий - переменные PHP: include, session не работают
Нужна помощь - не передаюся переменные через инклюде, сессии, похоже, тоже. Просто переделал...

11
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.11.2014, 22:35 2
КсенияК, функция session_start должна быть вызвана до начала вывода
вот в этой теме подробнее
0
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
17.11.2014, 23:03  [ТС] 3
Ведь функция session_start и так стоит до начала ввода. Но это не помогает. Выводить значения радиокнопок с хобби все равно не выходит...
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.11.2014, 23:04 4
Цитата Сообщение от КсенияК Посмотреть сообщение
Ведь функция session_start и так стоит до начала ввода.
Цитата Сообщение от КсенияК Посмотреть сообщение
<html>
это уже вывод. А session_start находится после
0
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
17.11.2014, 23:08  [ТС] 5
Даже если убрать <html> это не на что не влияет. Проблема не уходит
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.11.2014, 23:10 6
Цитата Сообщение от КсенияК Посмотреть сообщение
<input type="radio" name="hobbi" value="<?php echo $hobbi; ?>">Коллекционирование
<p><input type="radio" name="hobbi" value="<?php echo $hobbi; ?>">Историчкская реконструкция
<p><input type='radio' name='hobbi' value="<?php echo $hobbi; ?>">Роспись стекла
<p><input type='radio' name='hobbi' value="<?php echo $hobbi; ?>">Живопись
<p><input type='radio' name='hobbi' value="<?php echo $hobbi; ?>">Литературное творчество
не закрыты теги p.
$hobbi - используется, но не определена
1
2 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
17.11.2014, 23:11 7
Цитата Сообщение от Jewbacabra Посмотреть сообщение
это уже вывод. А session_start находится после
Тут в какой то мере господин прав. Т.к. автор как я понимаю выбрал способ передачи сессий в куках.
А куки - это заголовки, а каждая web-страница должна начинаться с заголовков.
Но проблема может крыться не только в этом, а в том что сессии вообще не создают куки.
Смотри в сторону
1) Ini_set('session.use-cookies',1);
2) Настройки register_globals
И по коду:
Всегда заголовки пиши сверху, и вообще возьми за правило весь вывод делать в конце выполнения скрипта.
Если нет желания вникать в это и писать что и где хочеться то используй буферизацию вывода
ob_start();
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
17.11.2014, 23:14 8
посмею предположить, что проблема вот здесь:
PHP
1
$_SESSION['userhobbi']=$_POST['hobbi'];
а сюда делаеться переход по ссылке
HTML5
1
<a href="3.php">Далее</a>
а это $_GET а не $_POST

Добавлено через 1 минуту
и не какого отношения к форме не имеет

Добавлено через 1 минуту
КсенияК, обварачевай код ото трудно читать его
0
2 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
17.11.2014, 23:16 9
Цитата Сообщение от Виталюска Посмотреть сообщение
а сюда делаеться переход по ссылке
HTML5
1
<a href="3.php">Далее</a>
а это $_GET а не $_POST
А даже в этом проблема )) Вообще он тут даже в GET не передается, а просто переход по ссылке, если иное не заскриптовано конечно
1
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
17.11.2014, 23:17 10
Цитата Сообщение от lestat89 Посмотреть сообщение
А даже в этом проблема )) Вообще он тут даже в GET не передается, а просто переход по ссылке, если иное не заскриптовано конечно
ну вот об этом и говорю
1
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
18.11.2014, 00:28  [ТС] 11
Спасибо вам. Разобралась!
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
18.11.2014, 01:02 12
Цитата Сообщение от КсенияК Посмотреть сообщение
Спасибо вам. Разобралась!
есть кнопочка для спасибо
0
18.11.2014, 01:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2014, 01:02
Помогаю со студенческими работами здесь

Как задать время сессии для PHP-session ?
Как задать время сессии для PHP-session ? Стоит IIS+PHP-фильтр. Спасибо.

Warning: session_start(): in C:\Server\www\session.php on line 1
Создаю файл session.php со следующим содержанием: &lt;?php session_start();?&gt; Получаю в ответ: ...

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by
session_start(); if (!isset($_SESSION)) $_SESSION=0; echo &quot;вы обновили страницу &quot;.$_SESSION++.&quot;...

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent
Открыл движок а точне файл index.php та начало кода &lt;?php /** * Файл index.php расположен в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru