Не могу залогиниться в Gii

Привет всем.

У меня такая проблема: решил подключить к проекту Gii, настроил все как написано здесь, захожу на страницу логина http://sitename/gii/default/login.html, ввожу пароль, меня перебрасывает обратно на страницу логина. Если ввести неверный пароль, то ругается.

Конфиг:




...

    'modules'=>array(

        'gii'=>array(

            'class'=>'system.gii.GiiModule',

            'password'=>'password',

            'ipFilters'=>array('127.0.0.1',),

        ),

    ),

...



Пробовал в разных браузерах, чистил кэш. Yii 1.1.6.

Вот абсолютно такая же тема: http://www.yiiframework.com/forum/index.php?/topic/13321-cannot-login-to-gii

Правда люди не стали утруждать себя описанием решения проблемы… Попробуйте для начала убрать все настройки UrlManager’а. Если не помогает, то сгенерируйте новое приложение, работает ли там обычная авторизация (site/login)?

Данную тему видел, пробовал генерить новое приложение, без настроек UrlManager’а, - там тоже не работает (каждый раз переправляет на страницу с авторизацией). Авторизация в самом приложении срабатывает только если стоит галочка Remember me next time.

Проверьте, работает ли механизм сессий вообще (создайте какой-нибудь простенький тест).

Немного о сессиях.

Ссылка к сожалению не доступна. Потестил сессии - они не работают. Но понять в чем проблема не могу. Файлы сессий создаются когда ее устанавливаешь, а когда пытаешься прочитать ее она не находится.

Вот так выглядят настройки сессий:




Session Support 	        enabled

Registered save handlers 	files user

Registered serializer handlers 	php php_binary wddx


Directive	       Local Value	Master Value

session.auto_start	Off	           Off

session.bug_compat_42	On	            On

session.bug_compat_warn	On	            On

session.cache_expire	180	            180

session.cache_limiter	nocache	           nocache

session.cookie_domain	no value	   no value

session.cookie_httponly	Off	            Off

session.cookie_lifetime	0	             0

session.cookie_path	\	             \

session.cookie_secure	Off	            Off

session.entropy_file	no value	   no value

session.entropy_length	0	             0

session.gc_divisor	1000	             1000

session.gc_maxlifetime	86400	             86400

session.gc_probability	1	             1

session.hash_bits_per_character	5	     5

session.hash_function	0	             0

session.name	PHPSESSID	             PHPSESSID

session.referer_check	no value	     no value

session.save_handler	files	             files

session.save_path	C:/php5/sessions     C:/php5/sessions

session.serialize_handler	php	     php

session.use_cookies	On	             On

session.use_only_cookies	Off	     Off

session.use_trans_sid	0	             0



Вообще PHP должен генерировать какие-то ошибки в таких случаях, так что стоит включить их вывод либо посмотреть файлы логов.

Еще посмотрите, установлено ли какое-нибудь значение для open_basedir.

open_basedir закомментирован,


error_reporting = E_ALL | E_STRICT

поэтому все возможные ошибки должны выводится.

Написал скрипт, в котором сначала устанавливается переменная сессии, а потом читается.

Единственная ошибка возникает при чтении этой переменной:


Notice: Undefined index: user in test.php on line 3

В логах ничего нет.

А в других приложениях проблем с сессиями не было? Или это ваше первое использование сессий на этой машине? :)

Я с такой проблемой не сталкивался, тем более в Windows. Если никто тут больше не подскажет, то вероятно стоит поднять старую тему, особенно учитывая, что решения там так и не нашлось.

Как водится, после переустановки винды решил обновить софт, поставил апач 2.2 и пхп 5.3.3, ранее проблем не было, но и пхп был версии 5.2.х. Видимо не все новое одинаково полезно, попробую откатить пхп на более раннюю версию.

andy_s, спасибо за Ваши советы.

Сам установил только что последние версии Apache + PHP + MySQL на Windows XP (msi инсталлеры с официальных сайтов). Всё работает без каких-либо дополнительных хитрых настроек. Вот текущая настройка сессий:




Session Support	enabled

Registered save handlers	files user

Registered serializer handlers	php php_binary wddx


Directive	Local Value	Master Value

session.auto_start	Off	Off

session.bug_compat_42	Off	Off

session.bug_compat_warn	Off	Off

session.cache_expire	180	180

session.cache_limiter	nocache	nocache

session.cookie_domain	no value	no value

session.cookie_httponly	Off	Off

session.cookie_lifetime	0	0

session.cookie_path	/	/

session.cookie_secure	Off	Off

session.entropy_file	no value	no value

session.entropy_length	0	0

session.gc_divisor	1000	1000

session.gc_maxlifetime	1440	1440

session.gc_probability	1	1

session.hash_bits_per_character	5	5

session.hash_function	0	0

session.name	PHPSESSID	PHPSESSID

session.referer_check	no value	no value

session.save_handler	files	files

session.save_path	C:\WINDOWS\Temp	C:\WINDOWS\Temp

session.serialize_handler	php	php

session.use_cookies	On	On

session.use_only_cookies	On	On

session.use_trans_sid	0	0



Решил сравнить Ваши настройки со своими и обнаружил ошибку!!!

вместо


session.cookie_path \

надо


session.cookie_path /

Большое спасибо за наводку!

Надо же, никогда бы не подумал, что проблема в этом, но я рад, что у этого топика счастливый конец :lol:

Оффтоп: Если бы раньше зашёл в тему то ответил бы… Была аналогичная ситуация… Клиент заказал скрипт, я сделал, сбросил, а он - "не работает, чини!"… Просидел 3 дня, убедил поставить линукс… Через неделю хостер в тикет ответил что ошибка была в этом)

У меня была другая проблема, с настройками cookies всё было в порядке, но PHP и Yii+проект находились на разных драйвах, а в настройках php session.save_path = /tmp в итоге сессии писались в /tmp на каждом диске :)

Дай действительно, также столкнулся с такой проблемой.

Что бы решыть для начала нужно сделать:

  1. где-то в контроллере,например здесь /yii/framework/gii/controllers/DefaultController.php - в функции actionLogin

добавляем

phpinfo();

die;

  1. потом посмотреть вывод, и найти session.save_path, к примеру session.save_path C:\WINDOWS\Temp C:\WINDOWS\Temp

убедится что ети директори существуют и процесс имеет право на запись., если Линус как вариант для гарнтии сделать chmod -R 777 <имя директории указанной в пути session.save_path>

Одна маленькая ошибка, портит работу такого большого приложения ::)

Столкнулся с этой проблемой, прочел весь топик, перепробовал все описанные варианты, но ничего не помогло. На компе стоит у меня mint. Не могу залогиниться при создании нового приложения и не могу зайти в gii. Вот что говорит про сессии phpinfo:


session


Session Support	enabled

Registered save handlers	files user

Registered serializer handlers	php php_binary wddx


Directive	Local Value	Master Value

session.auto_start	Off	Off

session.cache_expire	180	180

session.cache_limiter	nocache	nocache

session.cookie_domain	no value	no value

session.cookie_httponly	Off	Off

session.cookie_lifetime	0	0

session.cookie_path	/	/

session.cookie_secure	Off	Off

session.entropy_file	/dev/urandom	/dev/urandom

session.entropy_length	32	32

session.gc_divisor	1000	1000

session.gc_maxlifetime	1440	1440

session.gc_probability	0	0

session.hash_bits_per_character	5	5

session.hash_function	0	0

session.name	PHPSESSID	PHPSESSID

session.referer_check	no value	no value

session.save_handler	files	files

session.save_path	/var/lib/php5	/var/lib/php5

session.serialize_handler	php	php

session.upload_progress.cleanup	On	On

session.upload_progress.enabled	On	On

session.upload_progress.freq	1%	1%

session.upload_progress.min_freq	1	1

session.upload_progress.name	PHP_SESSION_UPLOAD_PROGRESS	PHP_SESSION_UPLOAD_PROGRESS

session.upload_progress.prefix	upload_progress_	upload_progress_

session.use_cookies	On	On

session.use_only_cookies	On	On

session.use_trans_sid	0	0



В чем может быть проблема?

В чем проблема не разобрался, но все начало работать после того как я сменил версию фреймворка с 1.1.13 на 1.1.12.

Подтверждаю, проблема решается в 1.1.13 под Win путем установки: session.save_path = "C:/php/tmp"