2010-03-22 30 views
2

J'ai un login PHP qui définit 2 cookies une fois que quelqu'un se connecte. Le problème est que si vous vous connectez à partir http://www.example.com et vous allez à http://example.com, vous ne serez pas connecté. Je pense que c'est parce que le navigateur envoie seulement les cookies à la première syntaxe.Pourquoi les cookies sont-ils uniquement envoyés à http://www.example.com et NON à http://example.com?

C'est seulement un domaine, la différence est le www. avant le nom de domaine, alors comment placer des biscuits à l'ensemble du domaine quoi qu'il soit www. ou pas?

<?php setcookie('username',$username,time()+3600); ?> 
+0

double possible de http://stackoverflow.com/questions/2345137/php-cookie-problem-www-or-without-www –

Répondre

8

setcookie (string $ name [, string $ value [, int $ expire = 0 [, $ path string [, string $ domain)

Utiliser le domaine $ = '.site.com' au lieu de 'www.site.com'

+0

Soyez conscient que cela envoie le cookie à ** tous ** vos sous-domaines, ce qui pourrait ne pas être le comportement souhaité. – Duncan

6

Il n'y a vraiment aucune raison d'utiliser les domaines www et non-www. Utilisez une redirection 301 pour tout envoyer à celui de votre choix. Je préfère le non-www parce que c'est plus court. Voici comment faire la redirection avec htaccess

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Questions connexes