не устанавливается кука

Slaughter

Новичок
не устанавливается кука

ну не хочет устанавливаться кука. Может что-то не так?

Вот код:
PHP:
$addr[$k]=index.php;
$id=$_POST[id];

if (isset($_COOKIE['cook_link[$id]']))
{
   header("Location: $addr[$k]");
}
else
{
   setcookie("cook_link[$id]", "$id", time()+3600);
   //увеличиваем счетчик на 1
   $counter=mysql_query("UPDATE `$table` SET `count`= `count` + 1 WHERE 

`id` = '$id'", $link);
   if ($counter)
   {
      header("Location: $addr[$k]");
   }
   else {echo "<br><br>Ошибка базы";}
}
помогите, плз.
спасибо
 

Фанат

oncle terrible
Команда форума
помогите - это в каком смысле?
куку за тебя установить?
 

Slaughter

Новичок
Автор оригинала: Фанат
помогите - это в каком смысле?
куку за тебя установить?
может что-то не правильно сделал.
вот я хочу понять, в коде проблема или нет.
 

Фанат

oncle terrible
Команда форума
процесс нахождения чего-то неправильного в коде, называется словом "отладка (debug)" и может осуществляться самим программистом, с применением подручных средств.
визуально отладка кода не производится.
 

Slaughter

Новичок
к сожалению, я не знаю как проверить (debug'нуть) данный код. не могли бы вы помочь?
 

Кром

Новичок
Slaughter, у тебя какая та путаница в массивах. Разберись сначала как ими пользоваться.
print_r($_COOKIE)
 

Slaughter

Новичок
в смысле путаница?
$id - это глобальный массив, передав. с помощь метода POST
$addr[$k] - это массив ссылки (сама ссылка в MySQL)
и, наконец, cook_link[$id] - массив куки
 

Фанат

oncle terrible
Команда форума
Slaughter
мне кажется, что тебе следует посмотреть значение слова "массив" в документации по пхп.
сдается мне, ты его не совсем к месту употребляешь.

-~{}~ 23.09.04 13:14:

Slaughter
все-таки, тебе лучше бы ознакомиться с таким понятием, как отладка, и научиться искать ошибки в коде самостоятеьлно.
В этом и заключена суть отладки.
вот, смотри - у тебя здесь кода на 15 строк.
и ты сидишь и гадаешь - а в каком месте ошибка?
может быть, в запросе?
а может - в опечатке?
а может - в выставлении куки?

А может - проверить каждый этап, а?
проверить - а выполняются ли условия, например.
проверить каждый этап по очереди.
 

Slaughter

Новичок
Фанат
хорошо.

я посмотрел.. кука устанавливается, (по крайней мере есть файл, а внем: cook_link[3]31/153641262220829663577307153787229663568*)
и команда "print_r($_COOKIE)"
выводит: Array ([cook_link] => Array ([3] => 3 ))

следоват., почему-то не проверяется условие isset($_COOKIE['cook_link[$id]'])

вопрос: почему isset($_COOKIE['cook_link[$id]']) не работает?
как тогда?
 

Кром

Новичок
Slaughter прочитай ман по массивам.
А потом подумай, как обратится к этому массиву:
Array ([cook_link] => Array ([3] => 3 ))
 

Фанат

oncle terrible
Команда форума
Slaughter
индексом массива у тебя может являться либо число, либо строка.
вот возьми, и выведи на экран тот индекс, по которому ты пытаешься обратиться к массиву.
и сравни с тем, что ты ожидаешь, что там должно быть.

-~{}~ 23.09.04 14:13:

кстати, все хотел спросить - нафига ид и в имени переменной и в значении?
 

Slaughter

Новичок
а можно просто написать, что надо поставить вместо if (isset($_COOKIE['cook_link[$id]'])), чтобы была правельная проверка.
просто надо срочно.
спасибо.
 

Фанат

oncle terrible
Команда форума
для этого надо ставить setcookie("cook_link", $id);
а проверять - if (isset($_COOKIE['cook_link'])),
 

Slaughter

Новичок
Фанат
Сделал, как ты сказал.
не работает (точнее работает, но не как надо)
мы устанавливаем эту одну куку для всех записей, т.е., нажав на запись, например, с id=3 у нас (зап. кука) при нажатии на запись с id=10 скрипт у нас считает, что кука есть (хотя мы для id=10 ее не устанавливали)
спасибо.
 

Oscar

Новичок
Slaughter

if (isset($_COOKIE['cook_link'][$id]))

-~{}~ 09.10.04 11:58:

А установка
setcookie("cook_link[$id]", "$id", time()+3600);
вроди правильная.
 

Фанат

oncle terrible
Команда форума
Slaughter
а сколько этих самых id может быть?
Если надо ставить больше одной похожей куки - это значит, что ты неправильно пользуешься куками.
Тебе известно, что кук можно поставить далеко не бесконечное количество?
 

Slaughter

Новичок
Автор оригинала: Фанат
Slaughter
а сколько этих самых id может быть?
Если надо ставить больше одной похожей куки - это значит, что ты неправильно пользуешься куками.
Тебе известно, что кук можно поставить далеко не бесконечное количество?
столько, сколько будет ссылок (может 10, а может 50)
понятно, что я не смогу поставить на домен больше 20 штук...
вот я и хочу это все сделать в одной куке

зы: знаю, что кука ограничена по размеру.

-~{}~ 10.10.04 21:11:

Oscar

так я , вроде, пробовал - не помогло

еще раз попробую..
 

fixxxer

К.О.
Партнер клуба
Похоже, что для твоей задачи лучше использовать сессии - кука тогда будет одна, и с фиксированным размером в 32 байта.
 
Сверху