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

$_SESSION массивы

29.08.2011, 17:11. Показов 10784. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Други подскажите как сделать так что бы в $_SESSION заносился ассоциативный массив.
Где в качестве ключа и значения будут использоваться значения переменных.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2011, 17:11
Ответы с готовыми решениями:

Массивы и $_SESSION
Здравствуйте, подскажите, пожалуйста. Заполняю массив следующим образом и записываю его в...

$_post и $_session в форме index.php. передача переменных из $_post в $_session
пока начал это делать... это в качестве примера. есть: <?...

$_SESSION
есть такое бд (на картинке можите посмотреть). И я сделаю проверку, если у пользователя статус...

Использование $_SESSION
Как мне можно будет использовать $_SESSION в авторизации. Потому как даже когда я ему присвоил...

9
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 17:14 2
PHP
1
2
3
4
5
6
$_SESSION['arr'] = array(
    'foo' => 42,
    'bar' => array(37, 23),
);
$_SESSION['arr']['bar'][] = 19;
$_SESSION['arr']['lol'] = 41;
0
1 / 1 / 0
Регистрация: 25.08.2011
Сообщений: 18
29.08.2011, 17:17  [ТС] 3
Цитата Сообщение от Vovan-VE Посмотреть сообщение
PHP
1
2
3
4
5
6
$_SESSION['arr'] = array(
    'foo' => 42,
    'bar' => array(37, 23),
);
$_SESSION['arr']['bar'][] = 19;
$_SESSION['arr']['lol'] = 41;
а можете прокомментировать?(я PHP совсем недавно учу)
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 17:20 4
$_SESSION - Это суперглобальная переменная. Если Вы уже запустили сессию, то с $_SESSION можно работать, как с обыной переменной. Всё, что в нее запишете - всё сохранится в сессию при завершении скрипта и будет прочитано ри следующем запуске сессии.
0
1 / 1 / 0
Регистрация: 25.08.2011
Сообщений: 18
29.08.2011, 17:26  [ТС] 5
А еще такой вопрос, а как осуществляется добавление данных в ассоциативный массив?
PHP
1
$_SESSION['answer'][$order] = $variant;
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 17:46 6
Цитата Сообщение от Antoshken Посмотреть сообщение
PHP
1
$_SESSION['answer'][$order] = $variant;
Antoshken, В этом случае в массиве answer создастся элемент, ключом которого будет являться значение переменой $order, со значением равным значению переменой $variant.

Если не уверены, можно для себя вывести весь массив, чтобы посмотреть:
PHP
1
print_r($_SESSION);
1
1 / 1 / 0
Регистрация: 25.08.2011
Сообщений: 18
29.08.2011, 17:50  [ТС] 7
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Antoshken, В этом случае в массиве answer создастся элемент, ключом которого будет являться значение переменой $order, со значением равным значению переменой $variant.

Если не уверены, можно для себя вывести весь массив, чтобы посмотреть:
PHP
1
print_r($_SESSION);
я так и делал,у меня почему-то данные перезаписываются,а не добавляются как новые
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
session_start();
$host = "***";
$use = "***";
$pass = "****";
$db = "***";
$cnt=1;
$final_testing="Тест окончен";
$final_testing2="Вы уже проходили тестирование!";
$conn=mysql_connect($host, $use, $pass)////подключаемся к бд
or die("не могу соединиться: " . mysql_error());
mysql_select_db($db);
$_SESSION['count'];
 
$ip=$_SERVER['REMOTE_ADDR'];
$_SESSION['answer'] = array();
$_SESSION['answer_rez'];//переменная для названия ответов
$_SESSION['last_user'];//переменая для последнего пользователя
 
 
/*$counter=1;*///счетчик для вопросов
/*$ques_quantity='SELECT id,name FROM voteq WHERE id='.$counter.'';//выбираем все вопросы*/
$answer_name="SELECT VA.name FROM  votea AS VA, voteq AS VQ  WHERE VA.vote_id=VQ.id;";//выбираем текст ответов
/*$answer_name2="SELECT VA.name FROM  votea AS VA, voteq AS VQ  WHERE VA.vote_id="//выбираем текст ответов*/
if (!isset($_COOKIE['Test']))
{
SetCookie("Test","Value");
if (SetCookie("Test","Value")) echo "<h3>Cookies успешно установлены!</h3>";
?>
<form action="test_M.php" method="post" name="test">
Имя: <br><input type="text" name="Reg_name"><Br>
Фамилия:<br><input type="text" name="Reg_surname"><Br>
<input type="submit"   value="Начать тестирование"> <br>
</form>
<?
}
/*print_r($_POST);*/
if (isset($_POST["Reg_name"]) or isset($_POST["variant"]))
{
if (isset($_POST["Reg_name"]) and isset($_POST["Reg_surname"]))
{
$_SESSION['user_name']=$Reg_name;
$_SESSION['user_surname']=$Reg_surname;
}
/*echo $Reg_name;
echo $Reg_surname;
$user=mysql_query('INSERT INTO user VALUES (NULL,'.$Reg_name.','.$Reg_surname.','.$ip.')');//добавялем в пользователя в БД*/
 
/*if (($_POST["variant"]))
{*/
 
$_SESSION['answer'][$order] = $variant;
/*$_SESSION['answer'][] = $order;*/
 
/*print_r($_SESSION['answer']);
}
/*foreach ($_SESSION['answer'] as $value)
{
/*$user_last=mysql_query('SELECT id FROM user ORDER BY id DESC limit 1');
while ($user_last_id=mysql_fetch_assoc($user_last))
{
$id_last=$user_last_id["id"];
echo "$id_last";//
}*/
 
$_SESSION['count']++;
$counter=$_SESSION['count'];
$ques_name=mysql_query('SELECT * FROM voteq WHERE id='.$counter.'');//выббираем названия вопросов где id вопроса='.$counter.'
while ($ques_kol=mysql_fetch_assoc($ques_name))
{
$name_vote=$ques_kol["name"];
$order_question=$ques_kol["order"];//идентификатор вопроса
////сюда
 
 
echo "$name_vote";//выводи название вопроса
 
/*$_SESSION['answer_rez']=$name_vote;*/
 
?>
[HTML]<form action="test_M.php" enctype="multipart/form-data" method="post" name="vote">
<table>
<tr><td>Верно</td><td><input type="radio" name="variant" value="1" checked></td></tr>
<tr><td>Не верно</td><td><input type="radio" name="variant" value="0"></td></tr>
<input type="hidden" name="order" value="<?=$order_question?>">
</table>
<input type="submit" value="Ответить"> <br />
</form>[/HTML]
<?
}
print_r ($_SESSION['answer']);
 
if ($name_vote=="")//условие когда заканчиваются вопросы-добваляем все в БД
{
echo "конец";
$Reg_name2=$_SESSION['user_name'];
$Reg_surname2=$_SESSION['user_surname'];
$ip=$_SERVER['REMOTE_ADDR'];
 
$que1="INSERT INTO user VALUES (NULL,'{$Reg_name2}','{$Reg_surname2}','{$ip}')";
/*echo "$que1";*/
/*'INSERT INTO user VALUES (NULL,'.$Reg_name2.','.$Reg_surname2.','.$ip.')');//добавялем в пользователя в БД*/
$user=mysql_query($que1);//добавялем в пользователя в БД
echo mysql_errno() . ": " . mysql_error(). "\n";
$user_last=mysql_query('SELECT id FROM user ORDER BY id DESC limit 1');//выбираем id последнего пользователя
while ($user_last_id=mysql_fetch_assoc($user_last))
{
$id_user_last=$user_last_id["id"];//последний id в таблице
/*/$_SESSION['last_user']=$id_user_last;*/
}
$answer_rez=$_SESSION['answer_rez'];
/*$id_last2=$_SESSION['last_user'];*/
$ar_rez=$_SESSION['answer'];
foreach($ar_rez as $key=>$values3)
{
$que="INSERT INTO rezult VALUES (NULL,'.$id_user_last.','.$key.','.$values3.')";
/*echo $que;
/*$up=mysql_query('INSERT INTO rezult VALUES (NULL,'.$id_user_last.','.$key.','.$values3.')');//переменная для добавления записей в таблицу*/
$up=mysql_query($que);//переменная для добавления записей в таблицу
echo mysql_errno() . ": " . mysql_error(). "\n";
}
}
 
}
?>
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 17:54 8
Что-то я не нашел, где у Вас $order инициализируется.
0
1 / 1 / 0
Регистрация: 25.08.2011
Сообщений: 18
29.08.2011, 17:58  [ТС] 9
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Что-то я не нашел, где у Вас $order инициализируется.
В форме с вариантами ответов
HTML5
1
<input type="hidden" name="order" value="<?=$order_question?>">
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 18:07 10
Цитата Сообщение от Antoshken Посмотреть сообщение
В форме с вариантами ответов
Тогда $_POST['order'] , а не $order .
0
29.08.2011, 18:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2011, 18:07
Помогаю со студенческими работами здесь

$_SESSION не перезаписывается
Здравствуйте. $_SESSION = &quot;Ошибка проверочного кода!&quot;; - создаем сессию if(isset($_SESSION) &amp;&amp;...

Кнопка в $_SESSION
Хотелось бы узнать можно ли отобразить кнопку на странице сайта, после проверки пользователя по...

session_register и $_SESSION
В чём разница между $_SESSION=$login и $user=$login; session_register(&quot;user&quot;) ? Чем...

Авторизация и $_SESSION['id']
Такой вопрос: есть таблица пользователей id (автоинкремент), login, password при входе на сайт...


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

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