【发布时间】:2012-06-19 12:28:38
【问题描述】:
我有几个域指向同一个 php 脚本。 访问时,我想重定向用户做一个随机域,但只有一次。 为此,我设置了一个会话变量,重定向并检查该变量。
我的代码是这样的:
session_start(); if($_SESSION['seen'] != 1) { $_SESSION['seen'] = 1; header("位置:".$randomurl); }因此,如果用户从未看过该页面,它应该只重定向 1 次,因为之后会话变量将包含 1 并且它不会重定向。
但是,这将我重定向了大约 5 次,直到它停止在页面上,我无法解释原因。
有人知道吗?
【问题讨论】:
-
您可以为此使用 cookie。如果用户想再次查看随机页面,他们可以删除他们的会话 cookie,这只是在您的服务器上浪费查找。
-
所以您在每个域上或仅在 1 个入口点上都有此代码?如果在每个域上,那么这是非常合乎逻辑的,因为每个新域都无法读取为调用域放置的会话 cookie,并且它只会在您重定向到您已经访问过的域上的 url 时停止。 (因为它会有一个当前有效的会话 cookie)
-
就像 Harald 说的,我很确定在设置会话时它是每个域的,除非它是子域,在这种情况下你可以将值设置为“.domain”。也许这会有所帮助stackoverflow.com/questions/1064243/… 或这.. stackoverflow.com/questions/1339984/cross-domain-php-sessions
标签: php session redirect header