PHP+Apache实现二级域名之间共享cookie的方法
程序员文章站
2022-06-14 14:27:03
本文实例讲述了php+apache实现二级域名之间共享cookie的方法。分享给大家供大家参考,具体如下:
简介
login.koastal.com设置domain为k...
本文实例讲述了php+apache实现二级域名之间共享cookie的方法。分享给大家供大家参考,具体如下:
简介
login.koastal.com设置domain为koastal.com,则www.koastal.com即可访问该cookie。
也就是说二级域名(或者三级域名)之间可以通过这种方式共享cookie。
其实cookie的domain属性的用法跟path有些类似,比如我们将cookie的path设置为/,则/user目录下也可以访问该cookie。
实践
apache同一端口对应不同域名
httpd-vhosts.conf
<virtualhost 127.0.0.1:80> servername koastal.com serveralias www.koastal.com documentroot d:\wamp64\vhosts\www <directory "d:\wamp64\vhosts\www"> options +indexes +includes +followsymlinks +multiviews allowoverride all require local </directory> </virtualhost> <virtualhost 127.0.0.1:80> servername login.koastal.com documentroot d:\wamp64\vhosts\login <directory "d:\wamp64\vhosts\login"> options +indexes +includes +followsymlinks +multiviews allowoverride all require local </directory> </virtualhost>
修改本机hosts
windows
c:windows/system32/drivers/etc/hosts
linux
vim /etc/hosts
在最后添加
127.0.0.1 www.koastal.com login.koastal.com
编写php代码进行测试
d:\wamp64\vhosts\www\index.php
<?php if(isset($_cookie['username'])){ echo "welcome to ".$_cookie['username']; var_dump($_cookie); }else{ ?> <h1><a href='http://login.koastal.com'>login</a></h1> <?php }
d:\wamp64\vhosts\login\index.php
<form action="#" method="post"> <p>username:<input type="text" name="username"></p> <p>password:<input type="password" name="password"></p> <p><input type="submit" name="submit" value="submit"></p> </form> <?php if(isset($_post['submit'])){ setcookie('username',$_post['username'],0,'/','koastal.com'); setcookie('password',$_post['password'],0,'/','koastal.com'); header('location:http://www.koastal.com'); }
亲测可用,全文完~