我到处搜索并尝试了一切。 如果您登录http://r4ge.ro,则可以正常运行。如果您访问www.r4ge.ro,则会阅读并运行cookie。 如果您注销,请尝试登录www.r4ge.ro,从不创建cookie。
$data = "name=" . $jucatoru . "&pass=" . md5($passw);
$date_of_expiry = time()+60*60*24 ;
setcookie ( $cookie, $data, $date_of_expiry, "/", ".r4ge.ro");
echo "Succesfully logged in";
exit();
我已经检查过,这不是一个阅读问题,如果您尝试从www.r4ge.ro登录,则该cookie不存在。在chrome和firefox上测试(网站在IE上不起作用)
这是注销的完成方式
$date_of_expiry = time() - 60 ;
setcookie( $cookie, "nothing", $date_of_expiry, "/", ".r4ge.ro");
echo "Succesfully logged out!
这就是读取cookie的方式
$data = $_COOKIE[$cookie];
parse_str($data, $output);
$name = $output['name'];
$pass = $output['pass'];
测试凭据:测试:test1如果你想自己尝试
答案 0 :(得分:0)
您的浏览器不允许您为比您当前所使用的网址“更高”的域设置Cookie。您正尝试在r4ge.ro
上设置Cookie,当您 on {/ em> r4ge.ro
时,该功能正常,但是当您从www.r4g3.ro
加载页面时,您可以仅为www.r4ge.ro
或以下设置Cookie(例如foo.www.r4ge.ro
)。如果你想象你有一个网站example.co.uk
就会变得更加明显,并且在那个网站上你试图为co.uk
域设置一个cookie:这肯定是危险的,因为那个cookie可以被读取(并且用于跟踪任何 .co.uk
域中的浏览习惯。
如果省略setcookie()
中的最终参数,那么它将为当前站点设置,这将起作用(如果您登录www
子域,则不会登录到顶部域,但所有其他排列将起作用。)
答案 1 :(得分:0)
我会继续回答这个,即使答案也不尽如人意。
我已经给我的托管服务提供商写了一封信,他们提供了两个解决方案:
为www和非www(哑)
使用.htaccess从www重定向到非www(仍然很愚蠢,但显然每个人都这样做,因为有重复的内容[你甚至可以尝试www.stackoverflow.com])
为了解决此问题的其他所有人谷歌搜索,这里是您需要添加到.htaccess的脚本,以便在不指定域名的情况下从www重定向到非www。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
如果有人知道cookie问题的答案,请发布。