2011-12-31 3 views
0

У меня есть веб-сайт, который требует, чтобы вы вошли в систему. Он использует сеансы codeigniter. Вот страницы в контексте: http://dancedric.fourthdraft.com/ и http://www.fourthdraft.com/index.php/frontend/index/dancedriccodeigniter сеанс умирает, когда он не должен

Для того, чтобы показать вам проблемы, вы должны будете фактически войти в систему. user 'demo' (без кавычек) в качестве имени пользователя и пароля. Теперь загрузите две ссылки еще раз.

Это та же самая страница. более короткий - просто перетащить на вторую ссылку.

Если вы заметили по первой ссылке в правом верхнем углу, она говорит «Войти». На втором, вместо входа в систему, оно показывает ваше имя и показывает, что вы уже вошли в систему.

Моя проблема в том, что они - одна и та же страница, и на этом углу у меня есть оператор if: if($this->session->userdata('xxx')) затем укажите свое имя, затем ссылку на панель управления; если нет, просто покажите 'login'.

Я не знаю, вмешивается ли htaccess и mod_rewrite и завершает сеанс в первой ссылке. Я не думаю, что сеанс мертв, потому что даже если он говорит «login» по первой ссылке, он все равно переходит к вашей панели управления, когда вы нажимаете на нее, даже если она просто говорит «login». Я хочу, чтобы первая ссылка работала как вторая. Если пользователь вошел в систему, показать свое имя и т.д. по какой-то причине он не работает, как было запланировано ...

ответ

0

попробовать установить $config['cookie_domain'] = ""; to $config['cookie_domain'] = ".fourthdraft.com"; в config.php

+0

не работает. Это становится хуже. Я тоже выхожу на вторую ссылку – user657896

+0

привет, я думаю, проблема в том, что вы не можете получить доступ к файлу cookie из-за пределов другого домена, например, вы не можете получить доступ к веб-сайту www.fourthdraft.com session cookie от dancedric.fourthdraft.com возможно, попробуйте установить домен cookie в $ config ['cookie_domain'] = "4thdraft.com"; * обратите внимание на отсутствующую точку. – Artis

+0

Я пробовал, но он тоже не работает. Я действительно очень ценю помощь. Теперь я не могу войти в систему. Он попадает на мой скрипт аутентификации, тогда он терпит неудачу. – user657896

0

У меня была такая же проблема, в конце была очевидна, проблема была в моем HTAccess, я кэширование HTML, CSS, и т.д. Если вы поместите это в конце вашего файла .htaccess:

<ifModule mod_headers.c> 
<filesMatch "\\.(html|htm|php)$"> 
Header set Cache-Control "max-age=1, private, must-revalidate" 
</filesMatch> 
</ifModule> 

вы получите сеанс нормально. Это связано с тем, что, например:

  • Вы вводите на свой сайт и не регистрируетесь. Но вы уже просмотрели страницу для пользователей, которые не вошли в систему.
  • Тогда вы забудете
  • Но когда вы вернетесь на предыдущую страницу, вы увидите то же, что и на предыдущей странице, как будто вы не вошли в систему , Это связано с тем, что браузер показывает предыдущую и кэшированную страницу, даже если ваш сеанс существует ... Но если вы перезагрузите, вы увидите правильную страницу.
Смежные вопросы