【问题标题】:Set different Session variables for sites on one domain为一个域上的站点设置不同的会话变量
【发布时间】:2017-02-21 09:24:19
【问题描述】:

我在一个域中有多个网站(虚拟主机): website.com/site1website.com/site2 等 在每个站点上都有一个身份验证,它将username 保存在Session 中。

问题是: 如果我在site1 上,比方说,亚历克斯从我的浏览器访问site2,site1 会认为我是亚历克斯。如果我做某事,Alex 将被写入 DB。

一种解决方案是检查Sessionusername 在每个操作上是否相同。

有没有解决方案为site1site2 设置不同的$_SESSION['name'],使用相同的$_SESSION['name'] 变量?

【问题讨论】:

  • 你能用$_SESSION['site1']['name']$_SESSION['site2']['name']吗?
  • 我想使用一个变量。实际上,我现在不想更改所有站点中的所有变量。还有很多其他的 Session 变量:)
  • 检查一下,(相同的域,不同的文件夹 PHP 会话):stackoverflow.com/questions/5479626/…
  • 不是不同的文件夹。只是不同的php文件。不过,谢谢,我会检查的。

标签: php session session-variables


【解决方案1】:

如果它对你有用,我有一个懒惰的解决方案。

website.com/site1

当您启动会话时,这意味着您执行一些功能,然后将其存储在数据库中,例如

//SQL things and finally
$_SESSION['username'] = $username;

你可以这样做

 $_SESSION['site1-username'] = $username;

在其他网站上类似

$_SESSION['site2-username'] = $username;

【讨论】:

  • 我现在不想更改所有 php 文件)
【解决方案2】:

找到了更好的解决方案:

JS 每 5 秒向他的服务器发送用户名。服务器检查它是否等于 Session。如果不是,则要求用户进行身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2012-08-07
    • 2014-09-22
    • 1970-01-01
    • 2010-11-11
    • 2016-05-02
    相关资源
    最近更新 更多