1

我有一个带有自己的登录系统的 CakePHP 网站。在同一台服务器(但不同的文件夹)中,我有一个 Wordpress 博客。已经登录 CakePHP 网站的用户可以单击一个链接,将他带到 WP 博客并同时将他登录到博客。这一切都完美无缺。

当回到原来的 CakePHP 网站时,问题就来了。如果我在博客中放置一个指向该网站的链接并且用户单击它,他会被带到该网站,但他的会话丢失了,这意味着他必须重新登录。

有什么办法可以防止这种情况发生吗?即使用户离开网站,会话不应该仍然有效吗?不是说过期,我把它设置为30分钟。

即使用户没有通过网站中的链接访问博客,也会发生这种情况。如果我登录网站,然后打开一个新标签并进入博客(甚至没有登录),然后单击该网站的链接,则该网站中的会话丢失。好吧,实际上有一个新会话(我一直在打印会话 id并且它发生了变化)。

关于如何保持会话开放的任何想法都会很有用。

另外,以防万一,这是我用来将用户从网站登录到博客的脚本:

$sid = $_GET['sid'];
session_id($sid);
session_start();

if (isset($_SESSION['Auth']['User']['username'])) {

    require('../blog/wp-blog-header.php'); //includes wordpress functions

    $username = $_SESSION['Auth']['User']['username'];

    $user = get_userdatabylogin($username);
    wp_set_current_user($user->ID);
    wp_set_auth_cookie( $user->ID );
}

header("Location: http://myblog.com/"); //Redirect user to the blog
4

1 回答 1

1

检查您的安全级别。在某些情况下,它会检查“推荐人”网站。如果您来自 WP 博客,那么它可能适合您。这就是我假设正在发生的事情,因为它正在生成一个新的会话 ID。

于 2012-10-15T16:09:27.733 回答