【问题标题】:Same URL without www different session相同的 URL 没有 www 不同的会话
【发布时间】:2023-03-31 20:13:01
【问题描述】:

我有以下问题(我知道你们中的许多人可能有或曾经有过),但我仍然没有找到任何让我满意的解释,或者至少没有找到合适的解决方案。

在我创建的任何站点的会话脚本中,如果用户使用 www.domain.com 浏览域并登录,但随后在不同的选项卡中,他会转到没有 www 的同一页面。 (domain.com)该会话尚未启动。

我在 stackoverflow 上发现了这两个问题,但没有一个提供真正的解决方案,或者至少解释了为什么会出现这种行为。

different session with url's with-www and without-www

PHP session login different for url with www and without www?

好的,这个重定向和规则在我的情况下不起作用。

为什么?因为我正在与使用 cURL 检索我发送给他们的一些数据的支付提供商合作,当他们将响应发送回给我时,他们使用我必须提供给他们的默认 URL。目前他们将地址设置为www。但是,如果我的一个用户使用没有 www. 的域访问站点的特定页面怎么办?当我从提供商那里得到响应时,它会转到 www.site.com 并且那里的用户没有被记录。并且无法应用任何操作。

这方面有什么帮助吗?

谢谢 干杯。

【问题讨论】:

  • 其实this确实回答了
  • 是的,我从帖子中跳过了重要的一行,感谢您的注意,我现在设法解决了。

标签: php .htaccess url session web


【解决方案1】:

正如那里所说的http://www.php.net/manual/en/function.setcookie.php

可用于较低域的 Cookie,例如“example.com” 可用于更高的子域,例如“www.example.com”

就这样吧

session_set_cookie_params(0, '/', 'yourdomain.com');

没有www

【讨论】:

  • 感谢您的回答。我应该把我有点迷路的代码放在哪里。它适用于域中的每个 url 吗?
  • @DannyG,这个函数应该在你的脚本中session_start()之前被调用。是的,它适用于每个更高的域。实际上,您可以轻松验证这一事实:转到任何 stackoveflow 子域(例如 meta.stackoveflow.com)并查看 cookie。你会看到来自.meta.stackoverflow.com 的那些,也来自.stackoverflow.com。是的,你可以尝试在域名的开头加一个点,具体不知道,但可能更兼容。
  • 感谢@Arantir 我尝试了代码,现在可以正常工作了,非常感谢 :)
猜你喜欢
  • 2011-10-10
  • 1970-01-01
  • 2011-08-29
  • 2012-01-30
  • 2014-10-29
  • 1970-01-01
  • 2012-11-05
  • 2017-09-30
  • 1970-01-01
相关资源
最近更新 更多