[Закрыть]
 
popoff.donetsk.ua
Для утвердительного ответа достаточно слова «да». Все прочие слова придуманы, чтобы сказать «нет».
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Программирование на PHP - Проблемма с cookies ....

Проблемма с cookies ....

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
FireFly53
Андрей
Ноя, 2006
Сообщений: 3
FireFly53 url://forum.message:1660
Проблемма с cookies ....

Возникла проблемма. Пишу чат PHP+JS. Проблемма заключаеться в том, что некоторые пользователи не могут зайти в «темповую» версию чата. Вот код двух функций и страницы входа:

логин с установкой куков:

function login ($nick, $pass)
{
$wine = 30; // тут все ок. так надо. на 30 секунд.
     $nick = clear($nick);
     $pass = md5($pass);
     $check = mysql_fetch_array(mysql_query(SELECT id FROM users WHERE login='.$nick.' AND pass='.$pass.' LIMIT 0,1));
     if(!empty($check[id]))
     {
// Установка куков
         setcookie(firefly_chatid, $check[id], time()+$wine);
         setcookie(firefly_chatpass, $pass, time()+$wine);
//... тут еще пара фунуций для БД ...
    }
}


Функция, возвращающая ник пользователя, если он висит в онлайне:


function checklogin()
{
$wine = 30;
    if ((isset($_COOKIE[firefly_chatid])) AND (isset($_COOKIE[firefly_chatpass])))
    {
        $iid = clear($_COOKIE[firefly_chatid]);
        $pass = clear($_COOKIE[firefly_chatpass]);

        

$check = mysql_fetch_array(mysql_query(SELECT login FROM `users` WHERE id='.$iid.' AND pass='.$pass.' LIMIT 0,1));
        if (!empty($check[login]))
        {
             $ret = $check[login];
             setcookie(firefly_chatid, $iid, time()+$wine);
             setcookie(firefly_chatpass, $pass, time()+$wine);
        } else {$ret = false;}
    } else {$ret = false;}
return $ret;
}


Ну и страница входа:

if (checklogin() === false) // если юзер не вошел
{
     if(isset($_POST[btn_enter])) // если отправлена форма входа в чат
     {
          login($_POST[login], $_POST[pass]); // входим
          header(Location: index.php);
     }
// вывод страницы входа
} else // если куки установлены и проверены
{
// отображаем страницу входа
}


Извините пожалуйста, что написал много но это какой то биг трабл ... пробовал через setcookie(firefly[id], ...) ну т.е. с массивами .... тоже самое .... Экспериментально было выяснено, что при входе куки устанавливаються (true возвращают) но юзера кидает на страницу входа после попытки логина, т.е. функция checklogin() не хочет раблотать ... не видит кук... Я же со своей машины без пороблемм вхожу, и у всех протестированных cookies в браузере включены.

Помогите плиз! на вас последняя надежда!
Или предложите иной метод аутентификации и проверки логина с перезаписью кук. Заранее очень благодарен!!

popoff
Yuri
Июл, 2004
Сообщений: 941
popoff url://forum.message:1661

Здравствуйте!

Вам нужно посмотреть, какие шлются заголовки. Устанавливаются ли там куки. Шлются ли эти заголовки сервером и возвращаются ли эти куки браузером при следующем вызове. Как посмотреть заголовки, описано здесь:
http://phpfaq.ru/na_tanke#headers

Если заголовки шлются и куки возвращаются, Ваши скрипты следует отлаживать. Как это сделать - написано на этой странице:
http://phpfaq.ru/debug

Но я думаю, что на самом деле Вам не нужно вручную устанавливть куки. Используйте встроенный в РНР механизм сессий.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
FireFly53
Андрей
Ноя, 2006
Сообщений: 3
FireFly53 url://forum.message:1662

Спасибо .... не могли бы вы показать пример аутентификации с сессиями? а то инфы проситал много, а так и не понял ... например есть страница с логином и есть страница зашифрованная ... как тут сделать, чтобы на зашифрованной странице была проверка юзера?

popoff
Yuri
Июл, 2004
Сообщений: 941
popoff url://forum.message:1663

А что Вы прочитали? Можете привести несколько ссылок? По каким ключевым словам Вы искали информацию в поисковиках?

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
FireFly53
Андрей
Ноя, 2006
Сообщений: 3
FireFly53 url://forum.message:1664

Информация в поисковиках «Сессии в PHP» «Механизм сессий в PHP» и тому подобное.
Еще какие то книжки были электронные...я просто в сессии не совался, кукисы понравились а сессии как то не «притерлись», теперь уже понимаю, что они несколько удобнее...

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
Обмен электронных валют
money.dn.ua