subdomain não reconhece sessões PHP

1

Eu tenho um site com um banco de dados do usuário e um formulário de login. Este sistema funcionou 100% sem falhas. Eu tenho um site principal com o nome = www.example.com e um subdomínio chamado accounts.example.com . Quando um usuário efetua login, ele efetua login no site principal, www.example.com/login.php .

Para ver o perfil e fazer edições, clique em um link para accounts.example.com/profile.php?user=theirusername . Quando a página é carregada, um botão de edição deve mostrar se eles estão visualizando sua própria conta. Eu vou fazer isso assim, <?php if($user == $dbusername){ echo"<a href='edit.php'>EDIT</a>";} . Esse recurso funciona bem se eu for para www.example.com/Accounts/profile.php?user=theirusername , mas no subdomínio ele não funciona. O accounts.example.com aponta para o mesmo caminho que www.example.com/Account/ faz.

Eu não tenho idéia do porquê isso está acontecendo e estou usando o padrão php SESSIONS. Quando olho dentro da aba Cookies no Safari Inspector, aparece 1 SESSION, accounts.example.com .

Existe uma maneira de "transportar" um cookie para outro subdomínio? Qualquer ajuda seria ótimo! Obrigado!

    
por Ryan 03.04.2015 / 12:43

1 resposta

2

Se você precisar usar o cookie nos dois subdomínios www.example.com e accounts.example.com , será necessário defini-lo no domínio raiz example.com . Você precisa alterar a configuração do PHP session.cookie_domain para ".example.com" .

  1. No php.ini você pode ter session.cookie_domain = ".example.com"
  2. variante do htaccess: php_value session.cookie_domain .example.com
  3. Ou dentro dos scripts PHP: ini_set('session.cookie_domain', '.example.com' );

Esta é a ordem preferida: se você tiver acesso à configuração do servidor, deverá fazer isso em php.ini do VirtualHost s envolvido. A terceira opção é a pior, já que você precisa alterá-la separadamente em cada script PHP.

    
por 03.04.2015 / 13:10