关于session,cookie跨站使用的问题

关于session,cookie跨站使用的问题

离去的眼神 发布于 2021-11-25 字数 1972 浏览 918 回复 16

我现在是2个子域名 网站,放在同一个主机服务器上

域名是

a.hk.cn

b.hk.cn

比如我想在a.hk.cn设置了一个session值,怎么在b.hk.cn里直接拿到

下面是我网站的布局(本地虚拟测试的)

a站点(a.hk.cn)下有a.php,b站点(b.hk.cn)下有b.php

他们都引common.php 

common.php

<?php
define("COOKIE_PATH",dirname(__FILE__)."/cookie/");
define('SESSION_SAVE_PATH',dirname(__FILE__)."/session/");
define("DOMAIN",'.hk.cn');  
$cookie_set=array(
	'cookie_lifetime'=>300,
	'cookie_path'=>'/',
	'cookie_domain'=>DOMAIN,
	'cookie_secure'=>false,
	'cookie_httponly'=>false,
	);
session_set_cookie_params($cookie_set['cookie_lifetime'],$cookie_set['cookie_path'],
	$cookie_set['cookie_domain'],$cookie_set['cookie_secure'],$cookie_set['cookie_httponly']);
session_save_path(SESSION_SAVE_PATH);

a.php

<?php
include '../common.php';
session_start();
$_SESSION['a']='ajax';
echo "<a href='http://b.hk.cn/b.php'>b</a>";
var_dump($_SESSION);
var_dump($_COOKIE);

b.php

<?php
include '../common.php';
session_start();
var_dump($_SESSION);
var_dump($_COOKIE);

问题:1.为什么
session_set_cookie_params 设置子域名时 不管用,连session_start()时 连cookie都存不了?

2.如果子站点都在同一台服务器上,子站点可以向我上面那样 共享session信息吗

3.像京东那样的 在一个站点登陆了,访问其它所有站点都获取到了用户的登陆信息,他们session存在哪,如果session存在数据库里,在a站点登陆了,链接到b子站点 根据什么去找在a站点登陆用户的信息呢?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(16

断爱 2021-12-01 16 楼

不行啊

岁吢 2021-12-01 15 楼

ini_set
(
'session.cookie_domain'
,

'.hk.cn'
);

不谢

偏爱自由 2021-12-01 14 楼

谢谢您提供的信息,我会去看的,您能帮看下,我上面代码错哪了吗?

冷弦 2021-12-01 13 楼

其实你说的这个,有一个方案叫 cas 的解决方案,单点登录。

cas 的原理一时半会也解释不清楚,叫我来给你说,还不如你自己去查查资料。

这里只是跟你说有这样一个东西 叫做 cas 希望能帮助到你

灵芸 2021-12-01 12 楼

怎么传过去的,怎么跨二级域名?

疾风者 2021-12-01 11 楼

cookies没问题。session对象不行。

京东的那种是在COOKIES里面取的值。

然后后台验证信息的.

静谧 2021-12-01 10 楼

能指教下我上面错哪了吗

恋你朝朝暮暮 2021-12-01 9 楼

经典问题 网上应该已经很多“单点登录”的教程了

飘过的浮云 2021-12-01 8 楼

是啊
@红薯大叔 ,我就是那样设置的,那样设置后 session_start()时 连cookie都生成不了了,您看我上面提问的有,问题1里就是对这个的疑问呢

悲喜皆因你 2021-12-01 7 楼

回复
php 我不懂哦:)

酷到爆炸 2021-12-01 6 楼

回复
哦,红薯大叔不是全通的吗?

倚栏听风 2021-11-30 5 楼

怎么每次提问都到不了首页
@红薯

千笙结 2021-11-30 4 楼

设置个所有域可用的cookie值,这个值为一个加密字符串

冬天旳寂寞 2021-11-30 3 楼

确保 php.ini 中 session.save_path 位置都一样.


session_set_cookie_params() 把 domain 设为 .hk.cn

这样位于同一服务器的 a.hk.cn 和 b.hk.cn 应该就能共用 $_SESSION 数据了.

掩饰不了的爱 2021-11-29 2 楼

哪里有相关资料,谢谢

疾风者 2021-11-28 1 楼

看单点登录