相关疑难解决方法(0)

跨子域的PHP会话

我想设置以下内容:

auth.example.com
sub1.example.com
sub2.example.com
Run Code Online (Sandbox Code Playgroud)

如果用户访问sub1.domain.com或sub2.domain.com且他们未登录,则会将其推送到auth.domain.com并登录.sub1.domain.com和sub2.domain.com是两个单独的应用程序但使用相同的凭据.

我尝试在php.ini中设置以下内容:

session.cookie_domain = ".example.com"
Run Code Online (Sandbox Code Playgroud)

但它似乎没有将信息从一个域传递到另一个域.

[编辑]

我尝试了以下方法:

sub1.domain.com/test.php

session_set_cookie_params(0, '/', '.example.com');
session_start();
print session_id() . "<br>";
$_SESSION['Regsitered'] = 1;
echo '<a href="http://auth.example.com/test.php">Change Sites</a>'
Run Code Online (Sandbox Code Playgroud)

auth.domain.com/test.php

session_set_cookie_params(0, '/', '.example.com');
session_start();
print session_id() . "<br>";
$_SESSION['Checked'] = 1;
print_r($_SESSION);
Run Code Online (Sandbox Code Playgroud)

会话ID完全相同但是当我转出$ _SESSION变量时,它不显示两个键,只是我在每个域下设置的任何键.

[编辑2]

我更新了[编辑]

php authentication session cross-domain

89
推荐指数
3
解决办法
8万
查看次数

允许php会话转移到子域

我为所有用户数据使用php会话(不是cookie,会话ID cookie除外),当用户访问他们的个人资料user.mydomain.com时,他们会立即"退出",直到删除子域.

有没有办法接受来自所有域的会话,只要它的*.mydomain.com

php apache cookies session

70
推荐指数
3
解决办法
7万
查看次数

保留不同域中的会话变量

我不确定这是否可行.

我公司的主要网站接受信用卡和其他付款信息.他们还有其他网站与我们托管的活动直接相关.例如,我们的主要网站是这样的:

http://www.etm124biz.com

但是有一个专门用于年度活动的另一个网站:

http://www.etm124annualgala.com

我的"活动"网站正在处理注册并保存到我们的数据库,但我们的主站点处理信用卡处理.在主网站上处理当前购买时,会话用于将数据传递到付款/ cc屏幕.

无需更改我的付款代码(接受,例如,$ _GET参数),我的$_SESSION变量不应该被遗漏吗?

例:

$_SESSION['s_address1'] = $_POST['address1'];
$_SESSION['s_address2'] = $_POST['address2'];
$_SESSION['s_city']     = $_POST['city'];
$_SESSION['s_state']    = $_POST['state'];
$_SESSION['s_zip']      = $_POST['zip'];

header('Location: https://www.etm124biz.com/payment.php?oid=' . $oid . '&src=conf&id=' . $seq);
Run Code Online (Sandbox Code Playgroud)

我的payment.php页面查找上面的地址会话变量.

php

19
推荐指数
2
解决办法
5万
查看次数

从ajax请求设置子域的cookie

我在www.example.com上有一个webapp,在api.example.com上有一个API.

webapp对API进行ajax调用.

在某个地方,我需要在api.example.com上放置一个cookie来保持会话跟踪.

为了跟踪我的问题,我在webapp和api的两个子域上设置了测试cookie.webapp在.exemple.com上设置了一个cookie,api在.exemple.com上设置了一个,在api.exemple.com上设置了另一个.Cookies仅使用Domain = .exemple.com设置.没有路径,没有HTTPOnly.

注意:最后我在api.exemple.com上只需要一个.但这些是用于测试的.

使用我的浏览器(Firefox 16)直接查询工作正常.查询api:设置并发送两个cookie.在www上查询:设置了cookie,并且也发送了来自api的两个.(当然我在api之后查询www).

现在,我清理浏览器cookie并仅查询www.在www上查询:工作正常,与以前一样.关于api的子查询,来自www的ajax请求:不发送cookie.Set-Cookies什么都不做.使用Firebug我在响应中看到了cookie.但是在后续请求或页面信息中没有它们的痕迹.

我事件试图在Firefox上启用cookie登录.绝对没有来自api的cookie的痕迹,甚至没有拒绝通知.

最后我只需要一种在api上存储一个cookie的方法.为此,我相当开放:)

信息:这两个服务器是NodeJS.我试图在客户端(document.cookies)设置服务器端的cookie(Set-Cookie标头),手动使用firebug.

其他帖子我已经检查过没有解决方案(以及其他许多我不记得的):

使用javascript设置跨子域cookie

Cookie和子域名

subdomain.example.com可以设置一个可以被example.com读取的cookie吗?

cookies subdomain

15
推荐指数
1
解决办法
1万
查看次数

在多个子域之间共享会话变量

我有一个网站www.example.com.这将有多个子域,可以与单个应用程序或程序一起使用.例如,login.example.com将允许用户登录该站点,而system.example.com将允许用户访问信息系统,而forums.example.com将允许用户访问论坛.

我们可能需要在子域之间传递信息,例如用户ID或用户首选项等.我们如何使用SESSION变量在sudomains之间传递信息?

编辑:我喜欢这个想法:

作为脚本中的第一件事:

ini_set('session.cookie_domain', '.example.com' ); 
Run Code Online (Sandbox Code Playgroud)

php subdomain session-variables

10
推荐指数
3
解决办法
4万
查看次数