Не могу разобраться с cookie. Помогите

Patrul

Новичок
Не могу разобраться с cookie. Помогите

При нажатии на кнопку с одной страницы на другую передаю 4 переменные ($id, $name, $price, $kolvo) методом post.
переменные доходят.

for ($i=1;$i<3;$i++)
{
If (""==$_COOKIE["name.$i"])
{
setcookie("id.$i","$id",time()+3600);
setcookie("name.$i","$name",time()+3600);
setcookie("price.$i","$price",time()+3600);
setcookie("kolvo.$i","$kolvo",time()+3600);
}
}

далее вывожу, а оно не находит куки с таким именем. Да и еще ругается, что я чего-то вывел до вывода куки... хотя ничего не выводил. (Этой строчкой: If (""==$_COOKIE["name.$i"]))

print $_COOKIE["id.1"];
print $_COOKIE["name.1"];
print $_COOKIE["price.1"];
print $_COOKIE["kolvo.1"];

Может фигню написал в
If (""==$_COOKIE["name.$i"])

Но не понимаю как можно еще проверить существование кукисов с таким именем.
Подскажите, плиз.
 

Patrul

Новичок
Фанат
Ругается, что в строчке: If (""==$_COOKIE["name.$i"])

mit
Это он съел, но запись кукие не произвел...
При попытке вывода - пишет:
Notice: Undefined index: id.1 in a.php
 

Patrul

Новичок
Хотел id.1, но все заработало на id1, поэтому оставлю так. Всем спасибо!
 

White Rabbit

белый кролик
Сделай так:
Код:
setcookie('id.1',1);
echo"<pre>";print_r($_COOKIE);echo"</pre>";
Интересный результат получается.
 

Patrul

Новичок
Все заработало, но вот что странно:
При цикле выводится первые значения, потом почему-то "Конец!" ??? А потом продолжается выполнение цикла и выводятся все значения уже без слова Конец!

Непойму почему?!


for ($i=1;$i<100;$i++)
{
if(isset($_COOKIE["name$i"]))
{
}
Else
{
setcookie("id$i","$id",time()+3600);
setcookie("name$i","$name",time()+3600);
setcookie("price$i","$price",time()+3600);
setcookie("kolvo$i","$kolvo",time()+3600);
break(1);
}
}
for ($k=3;$k<100;$k++)
{
$n=$k;
if(isset($_COOKIE["name$n"]))
{
echo "<p align='left'><font style='color:red'>Вы заказали: ";
print $_COOKIE["name$k"];
echo "</font><br><font style='color:blue'>Цена: ";
print$_COOKIE["price$k"];
echo "</font><br><font>В колличестве: ";
print $_COOKIE["kolvo$k"];
echo "</font></p><br>";
}
else
{
echo "Конец!";
}
}
 

Beetle(c)]u$

Новичок
http://www.php.net/manual/ru/language.operators.logical.php

смотри про "!"
согласно твоего кода получается: если куки такой-то есть, то выполняем 1, иначе "echo "Конец!";"

в первом случае делай:

for ($i=1;$i<100;$i++)
{
if(!isset($_COOKIE["name$i"]))
{
setcookie("id$i","$id",time()+3600);
setcookie("name$i","$name",time()+3600);
setcookie("price$i","$price",time()+3600);
setcookie("kolvo$i","$kolvo",time()+3600);
break(1);
}
}
во втором:
if(!isset($_COOKIE["name$n"]))
и т.д.
кстати, $n ты не меняешь, так что не обязательно ее вводить
 
Сверху