if (isset($_COOKIE['8']))
{
echo 'Кук есть.';
}
else
{
echo 'Кука нет.';
}
Если есть Cookie с именем 8, то все равно пишет что "Кука нет.". Тестирую на локальном сервере.
Спустя 5 минут, 31 секунда (11.01.2012 - 00:59) nugle написал(а):
Сделай
var_dump($_COOKIE) и посмотри что там есть
var_dump($_COOKIE) и посмотри что там есть
Спустя 21 секунда (11.01.2012 - 00:59) inpost написал(а):
xJlaIIax
Не называй куки числами, собственно, как и сессии. С сессиями 100% работать не будет, с куками, возможно, тоже.
Не называй куки числами, собственно, как и сессии. С сессиями 100% работать не будет, с куками, возможно, тоже.
Спустя 1 час, 52 минуты, 55 секунд (11.01.2012 - 02:52) xJlaIIax написал(а):
nugle, выдало: array(0) { }.
inpost, назвал Cookie8 всё равно не работает.
inpost, назвал Cookie8 всё равно не работает.
Спустя 4 минуты, 39 секунд (11.01.2012 - 02:57) waldicom написал(а):
Цитата (xJlaIIax @ 10.01.2012 - 22:53) |
Если есть Cookie с именем 8, то все равно пишет что "Кука нет.". Тестирую на локальном сервере. |
А как ставишь cookies?
Спустя 4 минуты, 20 секунд (11.01.2012 - 03:01) xJlaIIax написал(а):
setcookie('Cookie'. $id .'','Cookie');
Спустя 4 часа, 16 минут, 40 секунд (11.01.2012 - 07:18) NitroGenerate написал(а):
Откройте вашу страничку, на которой записывается кука оперой. И там пкм на странице, затем настройки сайта, после cookie, и смотрите, записалась ли кука в куках или нет. Странно то, что у вас isset($_COOKIE['8']) выдает ложь... У меня подобная проверка работала.
Спустя 5 часов, 41 минута, 26 секунд (11.01.2012 - 12:59) xJlaIIax написал(а):
В том то и дело что записалась.
Может быть у меня какая то функция отключена на локальном сервере?
Может быть у меня какая то функция отключена на локальном сервере?
Спустя 9 минут, 6 секунд (11.01.2012 - 13:08) Winston написал(а):
if (isset($_COOKIE['Cookie'. $id]))
{
echo 'Кук есть.';
}
else
{
setcookie('Cookie'. $id, 'Cookie');
echo 'Кука нет.';
}
Спустя 30 секунд Winston написал(а):
Откуда у тебя берется $id?
Спустя 10 минут, 48 секунд (11.01.2012 - 13:19) nugle написал(а):
попробую вместо проверки на существование, проверить на пустоту
if (!empty($_COOKIE['Cookie'. $id]))
{
echo 'Кук есть.';
}
else
{
echo 'Кука нет.';
}
Спустя 1 час, 49 минут, 16 секунд (11.01.2012 - 15:08) xJlaIIax написал(а):
Winston, я тут в коде не указал:
nugle, ошибся, то же не работает.
Почему Куки лучше цифрами не называть?
$id = $myrow["id"];
nugle, ошибся, то же не работает.
Почему Куки лучше цифрами не называть?
Спустя 24 минуты, 29 секунд (11.01.2012 - 15:33) nugle написал(а):
xJlaIIax
Цитата |
Почему Куки лучше цифрами не называть? |
с куками не пробовал, но с сессиями не работает
а перед установкой кука идет какойнибудь вывод?
поставь еще
error_reporting(E_ALL);
Спустя 1 минута, 13 секунд (11.01.2012 - 15:34) xJlaIIax написал(а):
Winston, работает, но если нет кука то он его записывает, а мне это не надо.
Мне нужно если кук есть то выдать одно сообщение, а если его нет то выдать другое.
Мне нужно если кук есть то выдать одно сообщение, а если его нет то выдать другое.
Спустя 6 минут, 25 секунд (11.01.2012 - 15:40) xJlaIIax написал(а):
nugle, я устанавливаю Куку на одной странице, а на другой проверяю существует она или нет.
Куда именно нужно вставить error_reporting(E_ALL); ?
Куда именно нужно вставить error_reporting(E_ALL); ?
Спустя 11 минут, 28 секунд (11.01.2012 - 15:52) nugle написал(а):
Заинтересовался этой темой)
покапался в нете и вот что оказывается
покапался в нете и вот что оказывается
Цитата |
Куки будут невидимы до тех пор, пока не будет загружена следующая страница. |
т.е. кукам требуется перезагрузка страницы
Спустя 24 минуты, 14 секунд (11.01.2012 - 16:16) xJlaIIax написал(а):
nugle, я записываю кук на одной странице, потом после записи перенаправляю человека на другую страницу и уже на этой странице проверяю у него наличие кука.
Значит условия для видимости кука выполнено?
Но почему не работает проверка, никак понять не могу.
Значит условия для видимости кука выполнено?
Но почему не работает проверка, никак понять не могу.
Спустя 11 минут, 25 секунд (11.01.2012 - 16:28) Winston написал(а):
Цитата (xJlaIIax @ 11.01.2012 - 14:34) |
Winston, работает, но если нет кука то он его записывает |
Значит убери setcookie из else.
Цитата (xJlaIIax @ 11.01.2012 - 14:40) |
Куда именно нужно вставить error_reporting(E_ALL); ? |
В самое начало файла.
Цитата (xJlaIIax @ 11.01.2012 - 15:16) |
Значит условия для видимости кука выполнено |
Да.
Цитата (xJlaIIax @ 11.01.2012 - 15:16) |
Но почему не работает проверка, никак понять не могу. |
Напиши на этой странице (на которую переправил)
prinat_r(COOKIE);
Спустя 18 минут, 29 секунд (11.01.2012 - 16:46) xJlaIIax написал(а):
prinat_r(COOKIE); выдаёт Fatal error: Call to undefined function prinat_r() in C:\WebServers\www\raz.php on line 10
error_reporting(E_ALL); ничего не выдаёт.
error_reporting(E_ALL); ничего не выдаёт.
Спустя 22 минуты, 22 секунды (11.01.2012 - 17:08) Winston написал(а):
Цитата (xJlaIIax @ 11.01.2012 - 15:46) |
prinat_r(COOKIE); выдаёт Fatal error: Call to undefined function prinat_r() in C:\WebServers\www\raz.php on line 10 |
Упс.. Ошибся на одну букву.
Но если вбить в гугл prinat_r(COOKIE) то он тебе правильный вариант выдаст, то есть этот
print_r($COOKIE);
Спустя 18 минут, 58 секунд (11.01.2012 - 17:27) xJlaIIax написал(а):
Фуф, я понял в чём дело!
Запись кука происходит на странице у которой путь test/raz.php
А проверка происходит на странице у которой путь raz.php
Что бы проверка работала нужно что бы страница на которой происходит запись и страница на которой происходит проверка были в одной директории.
Как я к этому выводу пришёл?
Создал файл raz.php в папке test с кодом
Создал второй файл raz.php и поместил его в корень.
С начало запускаю файл test/raz.php, он записывает кук, комментирую строку : setcookie('Cookie'. $id, 'Cookie'); .
Обновляю файл он пишет "Кук есть".
Захожу в Куки и вижу что он действительно записан.
Запускаю файл raz.php в корне, но он пишет "Кука нет".
Раз комментирую строку setcookie('Cookie'. $id, 'Cookie'); , он записывает кук, потом опять комментирую строку и обновляю страницу он пишет "Кук есть".
Захожу в Куки и вижу что присутствует два кука с одинаковыми названиями и значениями, НО с разными путями.
Теперь пробую то же самое, но два файла находятся в корне raz.php и raz_2.php.
В файле raz_2.php записываю кук, комментирую, обновляю, пишет "Кук есть".
В файле raz.php произвожу проверку, пишет "Кук есть", удаляю кук, обновляю страницу, пишет "Кука нет", то есть всё работает.
Из этого вывод, что файл где происходит запись и файл где происходит проверка должны находиться в одной директории.
Целая гора с плеч, я уже думал что не решу эту проблему!
Запись кука происходит на странице у которой путь test/raz.php
А проверка происходит на странице у которой путь raz.php
Что бы проверка работала нужно что бы страница на которой происходит запись и страница на которой происходит проверка были в одной директории.
Как я к этому выводу пришёл?
Создал файл raz.php в папке test с кодом
$id=8;
setcookie('Cookie'. $id, 'Cookie');
if (isset($_COOKIE['Cookie'. $id]))
{
echo 'Кук есть.';
}
else
{
echo 'Кука нет.';
}
Создал второй файл raz.php и поместил его в корень.
$id=8;
/*setcookie('Cookie'. $id, 'Cookie');*/
if (isset($_COOKIE['Cookie'. $id]))
{
echo 'Кук есть.';
}
else
{
echo 'Кука нет.';
}
С начало запускаю файл test/raz.php, он записывает кук, комментирую строку : setcookie('Cookie'. $id, 'Cookie'); .
Обновляю файл он пишет "Кук есть".
Захожу в Куки и вижу что он действительно записан.
Запускаю файл raz.php в корне, но он пишет "Кука нет".
Раз комментирую строку setcookie('Cookie'. $id, 'Cookie'); , он записывает кук, потом опять комментирую строку и обновляю страницу он пишет "Кук есть".
Захожу в Куки и вижу что присутствует два кука с одинаковыми названиями и значениями, НО с разными путями.
Теперь пробую то же самое, но два файла находятся в корне raz.php и raz_2.php.
В файле raz_2.php записываю кук, комментирую, обновляю, пишет "Кук есть".
В файле raz.php произвожу проверку, пишет "Кук есть", удаляю кук, обновляю страницу, пишет "Кука нет", то есть всё работает.
Из этого вывод, что файл где происходит запись и файл где происходит проверка должны находиться в одной директории.
Целая гора с плеч, я уже думал что не решу эту проблему!
Спустя 4 минуты, 50 секунд (11.01.2012 - 17:32) Гость_Winston написал(а):
Цитата (xJlaIIax @ 11.01.2012 - 14:27) |
Что бы проверка работало нужно что бы страница на которой происходит запись и страница на которой происходит проверка были в одной директории. |
Не задумывался почему массива $_COOKIE называется суперглобальным?
Свернутый текст
Потому, что этот массив можно использовать везде, независимо от файлов и директорий.
Спустя 4 минуты, 38 секунд (11.01.2012 - 17:37) xJlaIIax написал(а):
А теперь насчёт того что бы куки не называть числами.
Протестировал код:
Не смотря на то что число всё работает.
Протестировал код:
$id=8;
setcookie($id, 'Cookie');
if (isset($_COOKIE[$id]))
{
echo 'Кук есть.';
}
else
{
echo 'Кука нет.';
}
Не смотря на то что число всё работает.
Спустя 3 минуты, 31 секунда (11.01.2012 - 17:40) Гость_Winston написал(а):
Работать то оно будет. А вот склько геморра ты себе наживёшь когда будешь использовать куки с числовыми именами
Спустя 5 минут, 9 секунд (11.01.2012 - 17:46) xJlaIIax написал(а):
Например какого?
А можно использовать кук с именем Cookie_8 ?
Что бы файлы не держать в одной директории можно ли записывать кук с конкретным единым путём?
А можно использовать кук с именем Cookie_8 ?
Что бы файлы не держать в одной директории можно ли записывать кук с конкретным единым путём?
Спустя 20 часов, 5 минут, 16 секунд (12.01.2012 - 13:51) xJlaIIax написал(а):
Если быть точным то файл который записывает куки должен находиться в корне сайта и тогда проверка будет работать на всех страницах где бы они не находились.
Не обязательно что бы файл который записывает куки и файл в котором производится проверка находились в корне, самое главное что бы файл который записывает находился в корне.
Не обязательно что бы файл который записывает куки и файл в котором производится проверка находились в корне, самое главное что бы файл который записывает находился в корне.
Спустя 1 час, 21 минута, 25 секунд (12.01.2012 - 15:12) killer8080 написал(а):
Цитата (xJlaIIax @ 12.01.2012 - 12:51) |
Не обязательно что бы файл который записывает куки и файл в котором производится проверка находились в корне, самое главное что бы файл который записывает находился в корне. |
Не важно где лежит файл. Нужно правильно использовать функцию setcookie, у неё есть аргумент path
setcookie('name' ,'value', NULL, '/');
Спустя 8 часов, 48 минут, 54 секунды (13.01.2012 - 00:01) xJlaIIax написал(а):
killer8080, Вы правы на всё 100%, протестировал, всё прекрасно работает.
Спасибо, запомню!(+)
Спасибо, запомню!(+)