仅在子域FROM域上设置PHP会话

时间:2016-10-27 12:25:34

标签: php ajax session

我有一个系统,每个客户端都有自己的子域。用户可以直接从他们自己的子域登录系统,但我想添加直接从域登录的机会,然后将它们发送到子域。 重要的是,会话仅在实际子域上设置,而不是在任何其他子域或主域上设置。

所有登录过程都是通过jQuery / AJAX完成的。

我尝试了以下内容:

  • 在domain.com上,用户填写登录表单,并致电domain.com/ajax/front-login.php
  • 从这个AJAX文件中验证用户,找到用户所属的子域,并对subdomain.domain.com/ajax/sub-login.php进行PHP POST调用(通过file_get_contents)。此文件验证并设置SESSION。
  • 从回调看,所有内容都已正确完成,但未在subdomain.domain.com上设置会话

我希望这是有道理的。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

ini_set('session.cookie_domain', $subdomain.'.domain.com');添加到subdomain.domain.com/ajax/sub-login.php的开头,您可以在其中为$ subdomain提供名称。

session_start()删除front-login.php,或者如果没有子域,至少将其包装在if ()语句中。