WordPress的会话管理(Wordpress session management)

2019-07-18 10:06发布

我使用的WordPress搭建一个网站,我想捎带上了会议。 但是我没有找到任何插件,甚至文档。 任何建议或引用之前,我开始盗号呢?

注:我想咨询一下是否以及如何WP使用标准的PHP会议本身,而不是如何添加PHP会话,例如使用在session_start()。 显然WP保持任何状态通过其他方式来完成。 所以,如果我想使用PHP会话我需要完全添加和维护它自己,用技术,如那些在线程。

谢谢大家!

Answer 1:

WordPress的似乎并没有调用session_start()因为它想成为无状态的,如果register_globals定义,它会自动破坏你$_SESSION



Answer 2:

这是一个非常糟糕的主意,修改WP核心文件来使用会话的能力。 我发现最好的方法是调用session_start()init动作钩。

function kana_init_session() {
  session_start();
}

add_action('init', 'kana_init_session', 1);

你可以把它functions.php你的主题文件。

详细的文章可以在这里找到: http://www.kanasolution.com/2011/01/session-variable-in-wordpress/



Answer 3:

考虑使用WordPress的瞬态API

利用瞬时API存储的值是可见的所有用户,而不仅仅是当前用户,取决于用于获取临时的唯一标识,可以在每次用户的唯一标识符,从而实质上导致一个短暂的行为非常像一个会话分配。

进一步考虑:

  • 这取决于用户的设置与对象缓存等,瞬变可能并不总是存储在数据库(如memcached的),使用会话瞬变可能意味着该数据能得到庞大且迅速填补内存(使用的memcached)。

  • 此外,似乎WP没有做自动垃圾收集瞬变: https://wordpress.stackexchange.com/questions/6602/are-transients-garbage-collected



Answer 4:

对于什么,我需要做的,最好的答案包括:

  1. 为了让WordPress的cookie的跨子网域坚持,安装根的Cookie 插件 。
  2. sub1.domain.com有WordPress的; sub2.domain.com是另一个网站。 从其他网站(SUB2),我读了cookie来识别用户是谁,如果用户登录。

我的饼干如下:

[wordpress_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|d0249fced9c323835c5bf7e84ad3ffea
[wordpress_logged_in_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|56e9c19541ecb596a1fa0995da935700

使用PHP,我可以遍历所有的饼干,解析key=>value对。 这些cookies让我知道[mshaffer]具有存储在WordPress的饼干,也被认证为logged_in 。 cookie的有效期为1255298821

SUB2,我可以查询的WordPress的数据库,并获取用户信息:

SELECT * FROM `wp_users` WHERE user_login = 'mshaffer' ...从这个查询抢USER_ID,USER_EMAIL

SELECT * FROM `wp_usermeta` WHERE user_id = '$user_id' ...抓住许多从WP等数据

有了这个信息,我可以添加到我的SUB2会话变量/ cookie,并做我想做的数据。 我能确定,如果我登录,我的用户名......这让是我抢许多不同的数据。 现在我可以在我的sub2.domain.com使用WordPress的认证,并相应地重定向。

蒙特

}然后,在顶部添加以下行header.php在session_start(); –  阿尔文 11月2日在'11 6:42



文章来源: Wordpress session management