gpt4 book ai didi

php - 访问者的 Codeigniter 用户跟踪

转载 作者:搜寻专家 更新时间:2023-10-31 21:33:41 25 4
gpt4 key购买 nike

我正在 Codeigniter 网站上工作,并尝试为访问者(非注册用户)实现用户跟踪功能

我想在每个页面重定向上跟踪(ip 地址、from_page、to_page、time_stamp),因为我只想跟踪临时用户,所以我也需要访问数据库,以检查帐户是否存在。

我的问题是在哪里编写我的代码,以便 Codeigniter 在每次重定向之前自动检查(请记住,那个地方应该有权访问数据库或 session )。

checkin 每个 Controller 文件会产生很多冗余代码,我认为 htaccess 文件做不到。

-谢谢

最佳答案

有多种方法可以做到这一点:

一种是在 helpers 文件夹中创建一个帮助文件,例如 trackuser_helper.php。在这个文件中创建一个函数来进行跟踪(例如 trackUser())。然后在 config/autoload.php 中自动加载此文件,如下所示:

/*
| -------------------------------------------------------------------
| Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['helper'] = array('url', 'file');
*/

$autoload['helper'] = array('trackuser'); //ignore the '_helper.php' portion of the filename

现在您可以在每个 Controller 中调用 trackUser()

在我看来,第二种更好的选择是使用 CodeIgniter 提供的 Hooks

这些是在 config/hooks.php 中定义的,如下所示:

$hook['pre_controller'][] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('param1', 'param2', 'etc')
);

数组索引与您要使用的特定 Hook 点的名称相关联。在上面的示例中, Hook 点是 pre_controller。下面列出了 Hook 点列表。应在关联 Hook 数组中定义以下项目:

1.Class - 您希望调用的类的名称。如果您喜欢使用 一个过程函数而不是一个类,将此项留空。

2.Function - 您要调用的函数名称。文件名 文件名 包含你的类/函数。

3.Filepath——目录名 包含您的脚本。注意:您的脚本必须位于 应用程序文件夹内的目录,所以文件路径是 相对于该文件夹。例如,如果您的脚本位于 application/hooks,你将简单地使用 hooks 作为你的文件路径。如果 您的脚本位于您将使用的 application/hooks/utilities 中 hooks/utilities 作为你的文件路径。没有尾部斜线。

4.Params - 您希望传递给脚本的任何参数。 此项目是可选的。

这指定了在每个 Controller 加载之前要执行的函数调用。这样您甚至不需要将 trackuser() 添加到每个 controller。这些钩子(Hook)可以是 pre_controllerpost_controller。您可以在 CI documentation. 阅读更多关于钩子(Hook)的信息。

关于php - 访问者的 Codeigniter 用户跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24979650/

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