Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как прочитать куки-массив
 
 автор: Владимир22   (18.12.2008 в 14:59)   письмо автору
 
 

Вот запись в куки-массив:
setcookie("kuki[first]",$first);
setcookie("kuki[second]",$second);
Вопрос: как потом при чтении того куки получить массив назад, типа:
$first=kuki[first];
$second=kuki[second];
Кто знает, подскажите, пожалуйста!

  Ответить  
 
 автор: Николай2357   (18.12.2008 в 15:21)   письмо автору
 
   для: Владимир22   (18.12.2008 в 14:59)
 

Вот тут всё подробно написано.

  Ответить  
 
 автор: Владимир22   (18.12.2008 в 16:36)   письмо автору
 
   для: Николай2357   (18.12.2008 в 15:21)
 

Там (как и везде) написано такое:
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        echo "$name : $value <br />\n";
    }}
Но как это применить к моему случаю, никто и ни в каких учебниках не пишет (все книги дают примерно такой же сухой и непонятный пример). Кроме того все примеры показывают как выводить куки с помощью echo в цикле. А зачем мне цикл, если заранее известно, что в массиве всего 2 значения. И надо просто - в переменные и без цикла!!!!!
Т.е., как сделать, чтобы:
$name_1= куки[1]
$name_2= куки[2]
Всё. Неужели никто не знает?

  Ответить  
 
 автор: Trianon   (18.12.2008 в 16:59)   письмо автору
 
   для: Владимир22   (18.12.2008 в 16:36)
 

print_r($_COOKIE) делать не пробовали?

  Ответить  
 
 автор: BinLaden   (18.12.2008 в 17:01)   письмо автору
 
   для: Владимир22   (18.12.2008 в 16:36)
 

http://ru2.php.net/manual/ru/language.types.array.php

  Ответить  
 
 автор: Николай2357   (18.12.2008 в 20:35)   письмо автору
 
   для: Владимир22   (18.12.2008 в 16:36)
 

Ну я же написал, что там подробно всё написано. Вы не сможете в куку затолкать массив, как бы не старались. Можно только разбить его на несколько кук, по количеству элементов. Это и есть кук-массив, как Вы написали. То есть это двухмерный массив, и обратиться к нему без разбора первого ($_COOKIE) в цикле, не выйдет. Попробуйте так:
<?
setcookie
("cookie[three]""cookiethree");
setcookie("cookie[two]""cookietwo");
setcookie("cookie[one]""cookieone");

// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
    foreach (
$_COOKIE['cookie'] as $name => $value) {
        
$arr[$name] =  $value ;
    }
}

$name $arr[three];
echo 
$name;

  Ответить  
 
 автор: darkozoid   (19.10.2010 в 15:54)   письмо автору
 
   для: Николай2357   (18.12.2008 в 20:35)
 

а не проще создать 2 кука?

setcookie('name1','value1');
setcookie('name2','value2');


а потом прочитать?


$name1=$_COOKIE['name1'];
$name2=$_COOKIE['name2'];

  Ответить  
 
 автор: WapMorgan   (19.10.2010 в 16:12)   письмо автору
 
   для: Владимир22   (18.12.2008 в 14:59)
 

чем не вариант
<?php
$array 
= array('first' => $first'second' => $second);
setcookie('data'serialize($array));

...
$array unserialize($_COOKIE['data']);
?>

только:
1. не хранить большие массивы
2. проверять данные, полученные в $array

  Ответить  
 
 автор: sim5   (19.10.2010 в 16:19)   письмо автору
 
   для: WapMorgan   (19.10.2010 в 16:12)
 

Сериализация, это много лишних данных, лучше в JSON формате тогда держать или строка с разделителем.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования