CodeIgniter - 每页上的登录表单

时间:2011-03-06 19:23:04

标签: php codeigniter login

我试图用CodeIgniter写一个应用程序遇到一个小问题,基本上我想在网站顶部的每个页面上都有一个登录表单,但我发现很难找出逻辑与验证功能。

根据我的理解,验证规则(set_rules)必须从控制器设置,现在如果我想在每个页面上登录表单,这是否意味着我必须在我写的每个控制器上设置规则?这看起来有点奇怪。我可以在视图中设置验证规则吗?

我目前所拥有的是登录框的一个视图,我从我的视图中调用了

<?php $this->load->view('includes/members_login'); ?>

命令。

任何关于此的帮助或指导都会很棒....我非常困难。

干杯,

4 个答案:

答案 0 :(得分:1)

不,您只需在控制器功能中设置接收/处理登录表单的规则。我通常会保留一个专用的“Auth”控制器来执行相关操作,如login / logout / reset password / etc ......

对于布局,您可以将其包含在一致标题中,但只需将表单指向处理登录的controller/function

对于登录表单,我不确定您为什么要“验证”它们。用户/通道匹配或不匹配。

答案 1 :(得分:0)

我想到的一个想法是为您的所有页面创建基本布局,这将加载让我们说5,6个其他文件并为每个页面构建视图。 其中一些部分将在每个页面上调用,如标题,导航...因此您可以在这些部分中使用您的登录表单,并在每次请求时加载它。

答案 2 :(得分:0)

我认为您应该通过javascript尝试使用AJAX来验证任何用户登录。基本上登录按钮将由onclick事件处理,该事件将获取按钮的详细信息并将其传递给您的“Auth”(或登录或者UserAuth - 由您决定)控制器,它将进行验证。

答案 3 :(得分:-1)

如果确实想要在每个页面上使用登录表单,您可以创建自己的My_Controller并在构造函数中进行表单验证。或者,正如您所说,您也可以在视图中执行此操作。 CI不强制遵守MVC。如果将代码放入您的视图中可以加快开发速度并简化维护,那么没有理由不这样做。