欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP+Apache实现二级域名之间共享cookie的方法

程序员文章站 2023-11-09 20:16:58
本文实例讲述了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');
}

亲测可用,全文完~