[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Куки есть а авторизацию все ровно просит...
koala
создаю куки после авторизации, и по идее после повторного открытия страницы авторизация уже не должна вылезать, а она вылезает но можно заходить в кабинет пользователя.

Код:
if (isset($_COOKIE['enter']) && $_COOKIE['enter'] == 'yes')
{
//Подключаем контент
include ('./style/tpl/content.tpl');
setcookie ('enter', 'yes', time()+3600);
}
else
{
if (!isset($_COOKIE['enter']))
{
$buff = ob_start();
ob_clean();
header ('location: enter.php');
}
}




Спустя 10 минут, 5 секунд (10.12.2010 - 17:46) Invis1ble написал(а):
Что за двойная проверка? По теме: у setcookie есть еще 4-й и 5-й параметр (путь и домен), попробуй с ними похимичь

Спустя 20 минут, 18 секунд (10.12.2010 - 18:07) koala написал(а):
Invis1ble
Да и без двойной проверки все ровно авторизация вылетает. В скриптах только здесь идет проверка на существование кук и авторизация если их нету.

Спустя 1 час, 21 минута, 52 секунды (10.12.2010 - 19:29) Sanchopansa написал(а):
ну а это зачем? не понимаю...
$buff = ob_start();
ob_clean();


И может вот так будет правильнее...
if (!isset($_COOKIE['enter']) || $_COOKIE['enter'] != 'yes')
{
header ('location: enter.php');
}
//Подключаем контент
include ('./style/tpl/content.tpl');
setcookie ('enter', 'yes', time()+3600);

Спустя 4 часа, 1 минута, 30 секунд (10.12.2010 - 23:30) koala написал(а):
Написал код по другому:

 if (!isset($_COOKIE['enter']) || $_COOKIE['enter'] != 'yes')
{
header ('location: enter.php');
}
else
{
//Подключаем контент
include ('./style/tpl/content.tpl');
setcookie ('enter', 'yes', time()+3600);
}


Аналогично выбивает на аутентификацию...

Спустя 10 минут, 13 секунд (10.12.2010 - 23:40) Invis1ble написал(а):
koala
Ну ладно, давай попоробуем разобраться )))

1. До этого работали скрипты с использованием куков? (возможно дело в настройках в php.ini)
2. Посмотри вручную в браузере наличие кука. Например, в опере Инструменты -> Дополнительно -> Управление cookies.

т.е. убедись сначала, что куки действительно были установлены

Спустя 1 день, 13 часов, 45 минут, 17 секунд (12.12.2010 - 13:26) koala написал(а):
Ваша правда, куки у меня на локалхосте работают криво, залил файлы на хост, там все нормально =)

Что исправить в php.ini?

Спустя 5 часов, 20 минут, 8 секунд (12.12.2010 - 18:46) Invis1ble написал(а):
koala
точно не помню, попробуй посмотри session.use_cookies и установи на 1, если не установлено

Спустя 7 минут, 34 секунды (12.12.2010 - 18:53) koala написал(а):
Так стоит 1.

Вот еще есть строки, может в них что то не так?

Цитата

session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php


Вот еще когда удаляю куки то они не удаляються (мозила), и когда навожу на "Удалить" в низу показывает ссылку example.com хотя в куках хост отображает "localhost".

Спустя 2 часа, 25 минут, 31 секунда (12.12.2010 - 21:19) koala написал(а):
Вроде со всем разобрался, там надо было расскоментировать строку.

Теперь все работает кроме одного, все ровно выбивает авторизацию :D

Кусок кода:

 if ($_COOKIE['enter'] == 'yes')
{
//Подключаем контент
include ('./style/tpl/content.tpl');
}
else
{
header ('location: enter.php');
}


Вроде должно быть так: есть куки со значением yes отображаем контент, нету - на авторизацию. Но почему то выбивает авторизацию.

Вот на скрине показаны куки и они истекают аж через 4 дня:

user posted image

Ну и вот как я создаю куки:

setcookie ('enter', 'yes', time() +333600);

Спустя 2 часа, 10 минут, 17 секунд (12.12.2010 - 23:29) Invis1ble написал(а):
Проверь так:
echo (isset($_COOKIE['enter']) && $_COOKIE['enter'] == 'yes') ? 'Ага! Щас покушаем =)' : 'Нет печенек :(';

Спустя 16 часов, 11 минут, 10 секунд (13.12.2010 - 15:40) koala написал(а):
Проверил, выходит:

Цитата
  Ага! Щас покушаем =)


Но когда закрываю вкладку и снова захожу на локалхост - выбивает авторизацию. Хотя я уже могу просматривать страницу с данными пользователя.

Может все таки настройки сервера? Киньте свой php.ini, пожалуйста ))

Спустя 4 часа, 49 минут, 50 секунд (13.12.2010 - 20:30) Invis1ble написал(а):
koala
Цитата
Киньте свой php.ini, пожалуйста

Зачем? у меня все тоже самое:
Цитата
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php

только вместо session.cookie_path = / стоит session.cookie_path =
Попробуй поменяй на всякий случай...
А сессии у тебя работают вообще?

Спустя 58 минут, 28 секунд (13.12.2010 - 21:28) koala написал(а):
Поменял, не помогло. Сессии работают. Может проблема в том что сессия закрывается при закрытии вкладки?

Я кажется догадался. Куки есть, поэтому и есть доступ к данным пользователя. А вот сессия закрывается после закрытия вкладки. Значить осталось только сделать закрытия сессии по велению пользователя ))

============================================

Спасибо за помощь Invis1ble. Со всем разобрался кроме сессий.

Пробую задать время жизни сессии. Трогать php.ini не хочу, ведь если заливать на хост то тебе там доступ к php.ini не дадут. Пробую в скрипте сделать так:


ini_set('session.gc_maxlifetime', 2592000);
ini_set('session.cookie_lifetime', 2592000);
session_start();


Не помогло. Пробую так:


session_set_cookie_params (3600);
session_start();


Тоже не помогло. Может есть другой способ? Нагуглил еще один способ с созданием отдельной папки и в ней хранить сессии (толи куки?). Но пишут что дает большую нагрузку и не рекомендовано.

Спустя 5 дней, 18 часов, 18 минут, 37 секунд (19.12.2010 - 15:47) alex12060 написал(а):
У меня чет не ставит тоже оО
setcookie('login', "$login", time()+3600);

В принципе, в другом скрипте все нормально, тут - виг вам


_____________
Vi Veri Veniversum Vivus Vici
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.