php中cookie的path和domain说明
在写日记本程序的时候因为登陆和注销模块是写在子文件夹下的,在写入cookie的时候这样写:setcookie('cookiename','cookiesample',time()+3600),删除cookie的时候这样写setcookie('cookiename','',time()-1)。然后就发现悲剧了,在我没有登陆之前输入首页地址的时候正常,输入密码建立cookie了之后也正常,但是如果我这个时候再输入首页地址,点击。好了,有跳转到登陆界面去了。为什么呢?
找了半天没有找到解决办法,后来没办法,只好先把登陆和注销模块都放在根目录,先治标下。晚上再次思考这个问题的时候在浏览器那里跟踪cookie的值才发现问题,原来cookie的路径是给我设置的我登陆和注销模块的那个文件夹路径,而不是根目录,原来如此。
再到病根于是开始解决,改为这样setcookie('cookname','cookiesample',time()+3600,'/')。注销模块改为setcookie('cookiename','',time()-1),'/')。测试,ok,正常,cookie的path变成'/',整个网站都有效了:)
不过我在本地测试的时候发现有一个bug,本地的地址为localhost,如果我的程序是放在folderA这个文件夹下的话,这样设置之后它的path是'/',域名是localhost。如何把域名变为localhost/folderA呢?我测试把setcookie('cookname','cookievalue',time()+3600,'/','localhost/folderA')可是并没有生成cookie,并没有起作用,不知道有谁能够解答下?不甚感激:)