У меня есть веб-сайт с базой данных пользователей и формой входа. Эта система сработала на 100% безупречно. У меня есть основной сайт с названием = www.example.com
и поддомен под названием accounts.example.com
. Когда пользователь входит в систему, он или она входит в систему на основном сайте, www.example.com/login.php
.
Чтобы просмотреть свой профиль и внести изменения, они нажимают ссылку, которая ведет их на accounts.example.com/profile.php?user=theirusername
. Когда страница загружается, кнопка редактирования должна показать, просматривают ли они свою учетную запись. Я делаю это так, <?php if($user == $dbusername){
echo"<a href='edit.php'>EDIT</a>";}
. Эта функция отлично работает, если я перейду на www.example.com/Accounts/profile.php?user=theirusername
, но на поддомене не работает. В accounts.example.com
указывает на тот же путь, что www.example.com/Account/
делает.
Я не понимаю, почему это происходит, и использую стандартные СЕССИИ php. Когда я заглядываю во вкладку Cookies в Safari Inspector, он показывает 1 SESSION, accounts.example.com
.
Есть ли способ «перенести» файл cookie в другой поддомен? Любая помощь была бы замечательной! Спасибо!
Если вам нужно использовать cookie в обоих поддоменах www.example.com
и accounts.example.com
, вам нужно установить его в корневом домене example.com
. Вам нужно изменить настройку PHP session.cookie_domain к ".example.com"
.
session.cookie_domain = ".example.com"
php_value session.cookie_domain .example.com
ini_set('session.cookie_domain', '.example.com' );
Это предпочтительный порядок: если у вас есть доступ к конфигурации сервера, вы должны сделать это в php.ini
из VirtualHost
вовлечены. Третий вариант наихудший, так как вам придется менять его отдельно для каждого PHP-скрипта.