FAQ: Проблема со входом/выходом (настройки cookie)
Добавлено: 04.08.2004 10:13
Проблема в следующем: когда я вхожу под ником, ввел логин и пароль, нажал "вход" и я уже вроде отображаюсь на форуме как пользователь, а у меня в окне опять табличка с входим висит, и когда я хочу написать что-то, пишет, что я еще не вошел. Все работает только после повторного ввода логина и пароля. В чем проблема?
==================================
Ответ
Причины этой и подобных проблем
- после логина вас выбрасывает на пустой экран или на страницу 404, но после клика в браузере "назад" вы оказываететсь залогиненым
- вас выбрасывает на страницу 404 при попытке логина в административную панель
- вам приходится повторно вводить логин/пароль
- вас перебрасывает непонятно, куда, когда вы логинитесь или пытаетесь зайти в административную панель
- не работает автологин
- темы не отмечаются как прочитанные
- ...
в подавляющем большинстве случаев кроются в неверной настройке кук (cookies) на сервере или в неверно сохраненных куках на клиентском компьютере. По второй причине сказать что-либо более определенное, чем "прочистите куки", без анализа конкретной системы трудно, а вот избавление от первой причины целиком и полностью в руках админа форума. Итак, как настраивать куки.
Важно! После любых манипуляций с параметрами кук на сервере необходимо удалить куку форума с клиентского компьютера и перезагрузить браузер. Кука -- это файл. Применительно к NT based Windows куки лежат в каталоге %USERPROFILE%\Cookies (этот каталог имеет атрибут hidden, поэтому разрешите показ скрытых и системных каталогов в вашем файловом менджере). Имя файла куки формируется как
%USERNAME%@<начало_имени_вашего_домена>[<номер>].txt
Обратите внимание на [<номер>] -- удалять надо все куки вашего сайта (если честно, то нет, но если вы понимаете, о чем идет речь, то сами разберетесь, какой файл удалить, а если нет -- то уж удалите все, так проще будет). Если написанное для вас непонятно, то идите в настройки вашего браузера, ищите то место, которое относится к cookies и удаляйте все куки (для IE это Tools -> Internet options -> General tab -> Delete Cookies... Для русскоязычных интерфейсов систем/браузеров ищите по подобию, у меня их нет). Но помните -- при этом вы удалите куки всех сайтов, на которых вы были, со всеми вытекающими.
В базе знаний на сайте разработчиков есть англоязычная статья по правильной настройке кук (http://www.phpbb.com/kb/article.php?article_id=324). Ее перевод на русский язык опубликован на http://myphpbb.com.ru/go/viewtopic.php?t=13939. Этот перевод грешит мелкими неточностями, поэтому я рискну все-таки предложить его вашему вниманию в слегка переработаном и дополненом виде.
Итак. Для настройки кук у вас есть два пути. Во-первых, можно установить мод Auto Cookies (http://www.phpbb.com/phpBB/viewtopic.php?t=228741). Скачать с phpbbGuru Это если вы себя в установке модов чувствуете сильнее, чем в ковырянии в базе данных. Во-вторых, можно все установить вручную. На этом пути может быть три случая.
1. Вы такой умный и прилежный админ, что с какого-то перепугу прочли эту статью еще до установки форума. Тогда вам нужно только правильно ответить на вопросы в процессе инсталяции. Между прочим, у очень заметного числа админов (включая автора) замечательным образом работают дефолтные значения...
2. Вы хотите исправить настройку кук и еще не потеряли доступа к панели администрирования форума (ACP). В этом случае все выполняется из этой панели в разделе Общие настройки -> Конфигурация.
3. Вы наковырялись до такой степени, что потеряли доступ к ACP. В этом случае исправления вносим прямо в базу. Либо хостер вам предоставляет для этого некий фронт-энд (скорее всего, phpMyAdmin), либо вы оный инструмент должны установить сами (http://www.phpmyadmin.net вам в руки). Все параметры, о которых мы говорим, находятся в таблице ***config, где *** -- заданный вами при установке форума префикс таблиц (по умолчаниюphpbb_). Эту таблицу и редактируем. И не надо вопить "У меня в ней нет таких полей!!!". Обратите внимание на то, что таблица длинная, выводится по-странично и на странице есть навигация для перемещения вглыбь и обратно.
Теперь о правилах записи.
1. Если у вас (у хостера) не стоит какой-нибудь уж слишком уродский веб-софт, всегда используйте во всех записях прямой слеш "/" (slach, forward slash). Обратный слеш "\" (back slash) используйте тогда и только тогда, когда вам на это прямо указано.
2. При вводе Имени сервера (Domain Name) форума нельзя писать http:// -- эта часть записи, скопираванной вами из адресной строки браузера, является не частью имени, а обозначением протокола.
3. Аналогично, если веб-сервер работает на нестандартном порту (в конце адресной строки вам надо вводить что-то типа :1234), не надо считать этот номер порта частью доменного имени. Для записи номера порта, на котором откликается сервер, есть специальное отдельное поле.
3. Путь к форуму (Script Path) обязательно начинается слешем и слешем заканчивается.
4. Если вы задаете Домен куки (Cookie Domain), то в нем не пишется www. Кроме того, в этом параметре должно быть как минимум две точки. Если в существующем имени содержится только одна точка, необходимо поставить еще одну прямо перед именем домена.
5. В Пути куки (Cookie Path) слеш пишется только в начале.
6. В Имени куки (Cookie Name) не может быть пробелов и точек.
Ну, а теперь самое интересное -- примеры. В скобках к каждому термину приведено его написание в русскоязычном интерфейсе и имя поля в таблице ***config базы данных.
Адрес форума: http://www.yoursite.com/forum/
Рекомендуемые настройки:
Domain Name (Имя сервера, server_name): http://www.yoursite.com (не содержит http://, это имя протокола)
Script Path (Путь к форумам, script_path): /forum/ (путь от корня сайта к папке форума со слешами в начале и в конце)
Cookie Domain (Домен куки, cookie_domain): .yoursite.com (обратите внимание на точку в начале, домен куки всегда содержит минимум две точки)
Cookie Path (Путь куки, cookie_path): /forum (путь к форуму без слеша в конце)
Cookie Name (Имя куки, cookie_name): my_site_cookie (любое имя без пробелов и точек)
Session Length (seconds) (Длина сессии (в секундах), session_lenght): 3600 (может быть разным, но значение по умолчанию 3600 вполне разумно)
Адрес форума: http://forum.coolforums.net/
Рекомендуемые настройки:
Domain Name (Имя сервера, server_name): forum.coolforums.net (не содержит http://, это имя протокола)
Script Path (Путь к форумам, script_path): / (поскольку никаких дополнительных каталогов нет, просто слеш)
Cookie Domain (Домен куки, cookie_domain): forum.coolforums.net (две точки уже есть и дополнительная в начале не нужна)
Cookie Path (Путь куки, cookie_path): / (путь к форуму без слеша в конце)
Cookie Name (Имя куки, cookie_name): cool_cookie (любое имя без пробелов и точек)
Session Length (seconds) (Длина сессии (в секундах), session_lenght): 3600 (может быть разным, но значение по умолчанию 3600 вполне разумно)
Адрес форума: http://www.discussionforums.co.uk/phpBB2/forum/
Рекомендуемые настройки:
Domain Name (Имя сервера, server_name): http://www.discussionforums.co.uk (не содержит http://, это имя протокола)
Script Path (Путь к форумам, script_path): /phpBB2/forum/ (путь от корня сайта к папке форума со слешами в начале и в конце)
Cookie Domain (Домен куки, cookie_domain): discussionforums.co.uk (две точки уже есть и дополнительная в начале не нужна)
Cookie Path (Путь куки, cookie_path): /phpBB2/forum (путь к форуму без слеша в конце)
Cookie Name (Имя куки, cookie_name): my_site_cookie (любое имя без пробелов и точек)
Session Length (seconds) (Длина сессии (в секундах), session_lenght): 3600 (может быть разным, но значение по умолчанию 3600 вполне разумно)
/DiOs
==================================
Ответ
Причины этой и подобных проблем
- после логина вас выбрасывает на пустой экран или на страницу 404, но после клика в браузере "назад" вы оказываететсь залогиненым
- вас выбрасывает на страницу 404 при попытке логина в административную панель
- вам приходится повторно вводить логин/пароль
- вас перебрасывает непонятно, куда, когда вы логинитесь или пытаетесь зайти в административную панель
- не работает автологин
- темы не отмечаются как прочитанные
- ...
в подавляющем большинстве случаев кроются в неверной настройке кук (cookies) на сервере или в неверно сохраненных куках на клиентском компьютере. По второй причине сказать что-либо более определенное, чем "прочистите куки", без анализа конкретной системы трудно, а вот избавление от первой причины целиком и полностью в руках админа форума. Итак, как настраивать куки.
Важно! После любых манипуляций с параметрами кук на сервере необходимо удалить куку форума с клиентского компьютера и перезагрузить браузер. Кука -- это файл. Применительно к NT based Windows куки лежат в каталоге %USERPROFILE%\Cookies (этот каталог имеет атрибут hidden, поэтому разрешите показ скрытых и системных каталогов в вашем файловом менджере). Имя файла куки формируется как
%USERNAME%@<начало_имени_вашего_домена>[<номер>].txt
Обратите внимание на [<номер>] -- удалять надо все куки вашего сайта (если честно, то нет, но если вы понимаете, о чем идет речь, то сами разберетесь, какой файл удалить, а если нет -- то уж удалите все, так проще будет). Если написанное для вас непонятно, то идите в настройки вашего браузера, ищите то место, которое относится к cookies и удаляйте все куки (для IE это Tools -> Internet options -> General tab -> Delete Cookies... Для русскоязычных интерфейсов систем/браузеров ищите по подобию, у меня их нет). Но помните -- при этом вы удалите куки всех сайтов, на которых вы были, со всеми вытекающими.
В базе знаний на сайте разработчиков есть англоязычная статья по правильной настройке кук (http://www.phpbb.com/kb/article.php?article_id=324). Ее перевод на русский язык опубликован на http://myphpbb.com.ru/go/viewtopic.php?t=13939. Этот перевод грешит мелкими неточностями, поэтому я рискну все-таки предложить его вашему вниманию в слегка переработаном и дополненом виде.
Итак. Для настройки кук у вас есть два пути. Во-первых, можно установить мод Auto Cookies (http://www.phpbb.com/phpBB/viewtopic.php?t=228741). Скачать с phpbbGuru Это если вы себя в установке модов чувствуете сильнее, чем в ковырянии в базе данных. Во-вторых, можно все установить вручную. На этом пути может быть три случая.
1. Вы такой умный и прилежный админ, что с какого-то перепугу прочли эту статью еще до установки форума. Тогда вам нужно только правильно ответить на вопросы в процессе инсталяции. Между прочим, у очень заметного числа админов (включая автора) замечательным образом работают дефолтные значения...
2. Вы хотите исправить настройку кук и еще не потеряли доступа к панели администрирования форума (ACP). В этом случае все выполняется из этой панели в разделе Общие настройки -> Конфигурация.
3. Вы наковырялись до такой степени, что потеряли доступ к ACP. В этом случае исправления вносим прямо в базу. Либо хостер вам предоставляет для этого некий фронт-энд (скорее всего, phpMyAdmin), либо вы оный инструмент должны установить сами (http://www.phpmyadmin.net вам в руки). Все параметры, о которых мы говорим, находятся в таблице ***config, где *** -- заданный вами при установке форума префикс таблиц (по умолчаниюphpbb_). Эту таблицу и редактируем. И не надо вопить "У меня в ней нет таких полей!!!". Обратите внимание на то, что таблица длинная, выводится по-странично и на странице есть навигация для перемещения вглыбь и обратно.
Теперь о правилах записи.
1. Если у вас (у хостера) не стоит какой-нибудь уж слишком уродский веб-софт, всегда используйте во всех записях прямой слеш "/" (slach, forward slash). Обратный слеш "\" (back slash) используйте тогда и только тогда, когда вам на это прямо указано.
2. При вводе Имени сервера (Domain Name) форума нельзя писать http:// -- эта часть записи, скопираванной вами из адресной строки браузера, является не частью имени, а обозначением протокола.
3. Аналогично, если веб-сервер работает на нестандартном порту (в конце адресной строки вам надо вводить что-то типа :1234), не надо считать этот номер порта частью доменного имени. Для записи номера порта, на котором откликается сервер, есть специальное отдельное поле.
3. Путь к форуму (Script Path) обязательно начинается слешем и слешем заканчивается.
4. Если вы задаете Домен куки (Cookie Domain), то в нем не пишется www. Кроме того, в этом параметре должно быть как минимум две точки. Если в существующем имени содержится только одна точка, необходимо поставить еще одну прямо перед именем домена.
5. В Пути куки (Cookie Path) слеш пишется только в начале.
6. В Имени куки (Cookie Name) не может быть пробелов и точек.
Ну, а теперь самое интересное -- примеры. В скобках к каждому термину приведено его написание в русскоязычном интерфейсе и имя поля в таблице ***config базы данных.
Адрес форума: http://www.yoursite.com/forum/
Рекомендуемые настройки:
Domain Name (Имя сервера, server_name): http://www.yoursite.com (не содержит http://, это имя протокола)
Script Path (Путь к форумам, script_path): /forum/ (путь от корня сайта к папке форума со слешами в начале и в конце)
Cookie Domain (Домен куки, cookie_domain): .yoursite.com (обратите внимание на точку в начале, домен куки всегда содержит минимум две точки)
Cookie Path (Путь куки, cookie_path): /forum (путь к форуму без слеша в конце)
Cookie Name (Имя куки, cookie_name): my_site_cookie (любое имя без пробелов и точек)
Session Length (seconds) (Длина сессии (в секундах), session_lenght): 3600 (может быть разным, но значение по умолчанию 3600 вполне разумно)
Адрес форума: http://forum.coolforums.net/
Рекомендуемые настройки:
Domain Name (Имя сервера, server_name): forum.coolforums.net (не содержит http://, это имя протокола)
Script Path (Путь к форумам, script_path): / (поскольку никаких дополнительных каталогов нет, просто слеш)
Cookie Domain (Домен куки, cookie_domain): forum.coolforums.net (две точки уже есть и дополнительная в начале не нужна)
Cookie Path (Путь куки, cookie_path): / (путь к форуму без слеша в конце)
Cookie Name (Имя куки, cookie_name): cool_cookie (любое имя без пробелов и точек)
Session Length (seconds) (Длина сессии (в секундах), session_lenght): 3600 (может быть разным, но значение по умолчанию 3600 вполне разумно)
Адрес форума: http://www.discussionforums.co.uk/phpBB2/forum/
Рекомендуемые настройки:
Domain Name (Имя сервера, server_name): http://www.discussionforums.co.uk (не содержит http://, это имя протокола)
Script Path (Путь к форумам, script_path): /phpBB2/forum/ (путь от корня сайта к папке форума со слешами в начале и в конце)
Cookie Domain (Домен куки, cookie_domain): discussionforums.co.uk (две точки уже есть и дополнительная в начале не нужна)
Cookie Path (Путь куки, cookie_path): /phpBB2/forum (путь к форуму без слеша в конце)
Cookie Name (Имя куки, cookie_name): my_site_cookie (любое имя без пробелов и точек)
Session Length (seconds) (Длина сессии (в секундах), session_lenght): 3600 (может быть разным, но значение по умолчанию 3600 вполне разумно)
/DiOs