gpt4 book ai didi

php - CodeIgniter 中的 Wordpress

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:22 24 4
gpt4 key购买 nike

我已遵循本指南:http://philpalmieri.com/2009/06/codeigniter-and-wordpress-play-well-together/

这基本上就是说,要安装 wordpress,让它工作,然后用 Code Igniters 替换 index.php 文件,然后在我们启动 CodeIgniter 之前的文件底部,需要 word press 的 wp-load 文件。

工作正常。

但是现在,我的 $_SESSION 不起作用。我已将代码点火器设置为使用数据库 session ,并记录 session 值,但它仍然不起作用。我无法登录到我的 CodeIgniter 系统管理面板,我无法做很多需要 session 的事情,因为 session 不起作用。哈哈。

如何解决这个问题?

最佳答案

我执行了以下操作以使其正常工作(我在 Wordpress 目录的单独目录中有一个 Code Igniter 应用程序)——我显然喜欢它的是我有修改 Wordpress 中的核心文件。

首先,我将我的 Code Igniter cookie 名称添加到 wp-includes/load.php 中的 $no_unset 数组中。在我的例子中,它是 ci_session:

    $no_unset = array( 'GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix','ci_session' );

其次,我发现 Wordpress 的 add_magic_quotes 函数正在破坏 $_COOKIE 全局变量。这导致 CodeIgniter 在每次页面加载或重定向时重新创建 cookie,从而破坏任何连续性。所以,我在 wp-includes.load.php 中评论了这一行(大约第 545 行)

//$_COOKIE = add_magic_quotes( $_COOKIE );

接下来,为了使所有其他 Wordpress 相关 cookie 保持此功能完整,我创建了一个 array_walk 函数来遍历 $_COOKIE 全局并将 add_magic_quotes 应用于 wp-includes/load.php 函数中除我之外的所有 cookie

/**
* Applies Magic Quotes to the $_COOKIE global but ignores Codeigniter's Cookie
* @param string $value Value passed by array_walk function
* @param string $key Key passed by array_walk function
*/
function ci_ignore_magic_quotes($value,$key)
{
if($key != "ci_session")
{
stripslashes_deep($value);
}
}

//Put this line in place of the commented out line above...
array_walk($_COOKIE, 'ci_ignore_magic_quotes');

执行此操作后,我的 ci_sessions 表中不再存储多个 cookie,并且 session 已成功保留。

希望对您有所帮助!

关于php - CodeIgniter 中的 Wordpress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com