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

Форум PHP

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

 

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

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

тема: дозапись в cookie
 
 автор: seregarulez   (27.07.2008 в 14:57)   письмо автору
 
 

Здравствуйте! подскажите пожалуйста, как дописать информацию в cookie. Т.е. массив, полученный из формы, сравнивается при помощи array_diff c массивом, который лежит в cookie, и недостающая информация дописывается.

  Ответить  
 
 автор: Trianon   (27.07.2008 в 15:00)   письмо автору
 
   для: seregarulez   (27.07.2008 в 14:57)
 

в cookie не может лежать массив. Только строка.

  Ответить  
 
 автор: seregarulez   (27.07.2008 в 15:10)   письмо автору
 
   для: Trianon   (27.07.2008 в 15:00)
 

я знаю. Забыл сказать, что использую ф-ии explode и implode

  Ответить  
 
 автор: Trianon   (27.07.2008 в 15:13)   письмо автору
 
   для: seregarulez   (27.07.2008 в 15:10)
 

и что Вам мешает воспользоваться array_merge()?

  Ответить  
 
 автор: seregarulez   (27.07.2008 в 18:56)   письмо автору
 
   для: Trianon   (27.07.2008 в 15:13)
 


<?
if(isset($_POST['Submit']))
{
$id_post[]=$_POST['id[]'];
$id_cookey[]=$_COOKIE['str'];
$differ=array_diff($id_post,$id_cookey);
$id=array_merge($differ,$id_cookey);
$str_id=implode("|",$id);
setcookie("str",$str_id,mktime(0,0,0,1,25,2020));
print 
"<html><head>\n";
print 
"<meta HTTP-EQUIV='Refresh'
CONTENT='0;URL=index.php'>\n"
;
print 
"</HEAD></HTML>";
}
?>

я вот так делаю. Cookie не создается.

  Ответить  
 
 автор: Trianon   (27.07.2008 в 20:33)   письмо автору
 
   для: seregarulez   (27.07.2008 в 18:56)
 

еще бы он создавался. Ошибка на ошибке.
вот эти две строки, к примеру, что означают?
$id_post[]=$_POST['id[]'];
$id_cookey[]=$_COOKIE['str'];


Попробовали бы сперва вывести содержимое массивов
echo '<pre>';
print_r($_POST);
print_r($_COOKIE);

  Ответить  
 
 автор: seregarulez   (27.07.2008 в 21:03)   письмо автору
 
   для: Trianon   (27.07.2008 в 20:33)
 


<?
if(isset($_POST['Submit']))
{
$id[]=$_POST['id[]'];
$str_id=implode("|",$id);
setcookie("str",$str_id,mktime(0,0,0,1,25,2020));
}
?>

Вот такой код работает)) Но мне надо, чтобы в куки дописывалась информация

К Вашему вопросу:
$id_post[]=$_POST['id[]']; -в массив кладем переданные данные из формы.
$id_cookey[]=$_COOKIE['str']; -извлекаем уже имеющееся содержимое куки

  Ответить  
 
 автор: Trianon   (27.07.2008 в 21:09)   письмо автору
 
   для: seregarulez   (27.07.2008 в 21:03)
 

>Вот такой код работает))
Хрен там. :)
Но мне надо, чтобы в куки дописывалась информация

>К Вашему вопросу:

>$id_post[]=$_POST['id[]']; -в массив кладем переданные данные из формы.

Ничего подобного. Начать с того, что элемента $_POST[ с ключом id[] у Вас просто не окажется.
Кроме того, это не "в массив кладем данные из формы".
Это, буквально: создаем еще один элемент массива, в который целиком записываем значение поля.


>$id_cookey[]=$_COOKIE['str']; -извлекаем уже имеющееся содержимое куки

Здесь та же ошибка.
Плюс к тому Вы забыли про explode

  Ответить  
 
 автор: seregarulez   (27.07.2008 в 21:23)   письмо автору
 
   для: Trianon   (27.07.2008 в 21:09)
 

Trianon, спасибо большое)) Нашел ошибку. Блин, надо внимательней быть...
А на счет
$id_post[]=$_POST['id[]'];

Я не сказал, что в форме галочки отмечаются...у которых
name=id[]

А про
$id_cookey[]=$_COOKIE['str'];
- Вы совершенно правильно сказали..)

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

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