2016-10-10 72 views
1

我知道已经有一个与此相同的问题(How do I pass session to ckfinder in codeigniter 3?),但它根本没有帮助。只有1个答案,它不适合我,并提供了很少的解释。如何使用CodeIgniter 3.x将会话数据传递给CKFinder?

我有一个CI站点,用户可以在其中使用CKEditor登录和编辑一些内容。我也安装了CKFinder,但我无法将任何会话数据传递到CKFinder配置文件以验证登录的安全性。全局变量$_SESSION仅返回Array() 1并且不包含任何会话数据(是的,我正在使用session_start();)。

使用另一篇文章的答案作为基础,我尝试从$_COOKIE检索数据,但似乎没有什么特别有用。 Cookie数据中没有ci_session。最接近的是PHPSESSID,但我从中得不到任何有用的东西。

任何帮助将不胜感激。我已经花了很长时间在这个项目上了。谢谢!

+0

你能澄清一下你有什么问题吗?访问会话数据?设置Cookie数据?将数据传递给视图?在js中使用数据? – PaulD

+0

CKfinder在一个新窗口中打开,该窗口的源代码是'assets/ckfinder/ckfinder.html'的直接URL,因此在技术上属于CI框架之外。它由同一目录中的一个'config.php'文件初始化。 'config.php'文件具有用于保护CKfinder的认证功能,它没有看到在CI框架内创建的任何会话数据(例如加载具有打开CKfinder的编辑器的视图的控制器)。我需要将会话数据传递给'config.php'文件。 – vertigoelectric

回答

2

您不应该通过写入每个用户来更改配置文件。由于这是一个商业应用程序,我无法查看它的文档,但这可能有帮助。

  1. 设置用户页面CKfinder上的链接只有当用户登录显示。
  2. 设置控制器CKfinder链接到CI内检测用户是否登录或不并允许(即认证和授权),否则拒绝该请求。
  3. 或者为CKfinder创建一个CI库,从CI中运行它。

很清楚CKeditor很好,我相信CKfinder将被很好地记录下来,可以很容易地与框架和现有系统集成。 CKeditor是一个漂亮的脚本(虽然有限制),所以我会认为相同的质量适用于CKfinder。

是的,CI会话数据在CI之外不可用。像这样的第三方应用程序可以使用CI框架中的标准包括直接或与库等集成到CI中。事实上CI的一个重要特性就是编写小型库的能力,它可以很容易地包含几乎所有第三方应用程序,并且相对易于实现。

此链接将帮助: Codeigniter 3 - Access Session from Outside Codeigniter Installation

如果没有进一步的代码示例或问题的更准确的例子,我真的不知道我怎样才能帮助不止于此。我希望它可能有一些帮助,但它可能不是。抱歉。

+0

不幸的是你的3个解决方案都不适合我。有没有办法使用原生的PHP会话或在CI框架内外都可以使用的东西? – vertigoelectric

+0

当然,CI不会阻止你使用任何你想要的东西。然而,为此只重新工作整个会话库似乎并不正确。 CI使用php $ _SESSION超级全局,因此您可以随时进行查询。 – PaulD

+0

“询问”是什么意思?当我尝试使用$ _SESSION时,CKfinder仍然没有看到任何东西。 – vertigoelectric

相关问题