Мои переменные сеанса теряются, когда я перенаправляю на главную страницу с http - PullRequest
0 голосов
/ 18 января 2012

У меня очень странная проблема.
У меня есть 3 страницы:
home.php
forums.php
projects.php

На каждой странице есть такое меню:

<ul>
 <li><a href='http://www.mysite.com'>Homepage</a></li>
 <li><a href='forums.php'></a>Forums</li>
 <li><a href='projects.php'></a>Projects</li>
</ul>

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

Мне кажется, проблема в первой ссылке Домашняя страница . Когда я делаю это index.php все работает нормально, но с этим http:// это не работает. На самом деле сессии все еще там, но не отображаются.


UPDATE
Я думаю, что нашел проблему
Я преобразовал все ссылки меню в полные ссылки с http, а не только php-файлы, как это
<ul>
 <li><a href='http://www.mysite.com'>Homepage</a></li>
 <li><a href='http://www.mysite.com/forums.php'></a>Forums</li>
 <li><a href='http://www.mysite.com/projects.php'></a>Projects</li>
</ul>

И все отлично работает.
Мне любопытно, и я хочу расширить свои знания. Если кто-нибудь знает, почему это происходит, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 18 января 2012

преобразовал все ссылки меню в полные ссылки

Нет

http://www.mysite.com не является допустимым URL, некоторые веб-серверы предполагают, что путь является '/',некоторые браузеры предполагают, что путь равен '/', но большинство браузеров отправляют URL-адрес как есть, и веб-сервер обычно отправляет перенаправление обратно в браузер.

Пока хост является одинаковым во всех случаяхили опущен, тогда код будет вести себя так, как вы ожидаете - но вам действительно следует использовать правильные URL-адреса, чтобы избежать тонких семантических проблем, например

<ul>
 <li><a href='http://www.mysite.com/'>Homepage</a></li>
 <li><a href='http://www.mysite.com/forums.php'></a>Forums</li>
 <li><a href='http://www.mysite.com/projects.php'></a>Projects</li>
</ul>

или ...

<ul>
 <li><a href='/'>Homepage</a></li>
 <li><a href='/forums.php'></a>Forums</li>
 <li><a href='/projects.php'></a>Projects</li>
</ul>
...