Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/64: Рейтинг темы: голосов - 64, средняя оценка - 4.63
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628

Массив cookie

19.10.2009, 21:45. Показов 12530. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!!!
Пытаюсь записать в куки массив из 4-х элементов, но он туда не записывается.
Вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   $session_id = rand().$_POST['user'].rand().date("yyyymmdd").time().rand();
   foreach(mysql_fetch_assoc($acc) as $access)
    $user = array($_POST['user'],$_POST['password'], $access, $session_id);
   $_SESSION[$session_id] = $user;
   if($_POST['store'] == "true")
   {
    $time = time()+900;
    setcookie(host, "", $time); 
    $_COOKIE[host] = $user;
   }
   else
   {
    setcookie(host, "");
    $_COOKIE[host] = $user;
   }
   header("Location: index.php?user=".$_POST['user']);
Попытался отдельно вне этого кода записать массив в куки, всё записалось нормально.
PHP
1
2
3
4
5
6
<?php
$set = array(123,34,56);
setcookie("user", "", time()+90);
$_COOKIE['user'] = $set;
print($_COOKIE['user'][rand(0,2)]);
?>
Заранее спасибо!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2009, 21:45
Ответы с готовыми решениями:

Работа с Cookie
Всем привет. Пишу счетчик посещений для сайта, интересует вопрос как при помощи куки сделать так что бы счетчик не крутился при каждом...

Codeigniter и COOKIE
Вопрос вот в чём: пишу сайт используя фреймворк Codeigniter 2.02 мне нужно поставить кукисы. я их записую вот таким способом: ...

Не работают cookie
&lt;?php setcookie(&quot;lab45&quot;, $cooly,time()+3600); ?&gt; &lt;form method=&quot;get&quot;&gt; Фон таблицы: &lt;select name=&quot;bgcolor&quot;&gt; &lt;option...

15
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
20.10.2009, 00:51
Куки должны устанавливаться до отправки в браузер заголовков или любого текста. Может в этом дело...?
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
20.10.2009, 16:49  [ТС]
Цитата Сообщение от FunDuck Посмотреть сообщение
Куки должны устанавливаться до отправки в браузер заголовков или любого текста. Может в этом дело...?
Нее, ведь заголовки в этом коде должный отправляться уже после установки куки.

Добавлено через 11 минут
Отдельно не работает суперглобальный массив $_COOKIE, т. е. пытаюсь ему присвоить значение $_COOKIE[host] = $myarray;, на это он не ругается, но и эффекта это не даёт.
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
21.10.2009, 16:03
Не доглядел setcookie(host, ""); - зачем пустые куки ставить??? надо так: setcookie(host, $user);
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
21.10.2009, 17:07  [ТС]
Цитата Сообщение от FunDuck Посмотреть сообщение
Не доглядел setcookie(host, ""); - зачем пустые куки ставить??? надо так: setcookie(host, $user);
Ааа, вот в том и проблема он ругается на массив в параметрах этой функции...
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
21.10.2009, 17:12
Можно так делать: setcookie('host', serialize($user)); , а при извлечении данных: $user = unserialize($_COOKIE['host']);
1
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
21.10.2009, 23:51  [ТС]
serialize() вводит массив в куку, но вывести с помощью unserialize() не получается, вот как пробавал:
PHP
1
2
3
4
5
6
<?php
$arr = array("first", "second", "third");
setcookie("user", serialize($arr), time()+100);
$usr = unserialize($_COOKIE['user']);
print($usr[0]);
?>
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
22.10.2009, 00:04
На сколько я знаю переменная 'user' в массиве $_COOKIE будет доступна при следующей загрузке страницы.

Добавлено через 2 минуты
А не... не в этом дело... там слеши добавляются.... так попробуй:
PHP
1
2
3
4
5
6
<?php
$arr = array("first", "second", "third");
setcookie("user", serialize($arr), time()+100);
$usr = unserialize(stripcslashes($_COOKIE['user']));
print($usr[0]);
?>
1
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
22.10.2009, 16:22  [ТС]
Теперь работает, спасибо большое!
0
1 / 1 / 0
Регистрация: 20.05.2010
Сообщений: 3
20.05.2010, 21:02
Здравствуйте!

При попытке записать в куки массив

PHP
1
2
$korz[$id] = $kol;
setcookie("user", serialize($korz), time()+604800);
вылетает сообщение об ошибке
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\menus1\buy.php:33) in Z:\home\localhost\www\menus1\buy.php on line 179

Подскажите пожалуйста где ошибка?
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
20.05.2010, 21:09
Перед этим что то уже выводится в браузер.
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
20.05.2010, 23:02  [ТС]
Это не при попытке записать массив в куки, а при попытке отправить куки после вывода HTML.

Можешь воспользоваться кешированием:
PHP
1
2
3
4
ob_start();
echo "Hello world!";
setcookie('cookie', 'value');
ob_end_flush();
Тогда ошибка возникать не будет.
0
1 / 1 / 0
Регистрация: 20.05.2010
Сообщений: 3
21.05.2010, 14:49
Здравствуйте!

При попытке записать в куки массив

PHP
1
2
$korz[$id] = $kol;
setcookie("user", serialize($korz), time()+604800);
вылетает сообщение об ошибке
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\menus1\buy.php:33) in Z:\home\localhost\www\menus1\buy.php on line 179

Подскажите пожалуйста где ошибка?
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
21.05.2010, 14:54  [ТС]
Цитирую вышесказанное:

Цитата Сообщение от VtaMC Посмотреть сообщение
Это не при попытке записать массив в куки, а при попытке отправить куки после вывода HTML.

Можешь воспользоваться кешированием:
PHP
1
2
3
4
ob_start();
echo "Hello world!";
setcookie('cookie', 'value');
ob_end_flush();
Тогда ошибка возникать не будет.
1
1 / 1 / 0
Регистрация: 20.05.2010
Сообщений: 3
22.05.2010, 11:57
VtaMC, спасибо! Но удалось решить чуть проще - перенес действие в самое начало, перед строкой
PHP
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
1
 Аватар для akaish
3 / 3 / 0
Регистрация: 23.05.2010
Сообщений: 28
23.05.2010, 20:05
Чебуру:
Вообще, куки есть заголовок, ввиду того, что заголовок можно посылать только один раз, куки, а также session_start(), header() и типичное, то этому надо уделять некоторое внимание.
Если у вас пхп код включён в хтмл, то вы не сможете инициализировать сессию или записать куки
Если у вас перед открывающим тегом стоит символ перевода строки, вы также не пошлёте заголовок
Если вы посылаете другой заголовок раньше, вы не запишите куки
Ну и т.п.
Что можно посоветовать: заголовки пусть посылает некоторый пхп скрипт, заключите всё, что посылает заголоки, в ob_start; ob_end_flush(); и радуйтесь жизни.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2010, 20:05
Помогаю со студенческими работами здесь

Random + cookie
Здравствуйте,форумчане. Требуется Ваша помощь. Необходимо сделать 2 рандомных числа,которые заносятся в куки на 15 минут,после истечения 15...

Проблема с Cookie
Создал простейший код: &lt;?php $access++; setcookie(&quot;access&quot;,$access); ?&gt; &lt;html&gt; ... &lt;?php

cookie в php
добрый день. встал вопрос о cookie. правильно я из прописал? &lt;? if (!defined(&quot;B_PROLOG_INCLUDED&quot;) ||...

Авторизация основанная на cookie
После нажатия &quot;Войти&quot; происходит вот такой краш: Warning: Cannot modify header information - headers already sent by (output started at...

Не устанавливаются и не удаляются cookie
Всем доброго, Я подключаю в index.php файл main.php который определяет какой файл должен быть подключен, и делаю запрос...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru