我在php框架中使用CodeIgniter,在授权/注册中使用TankAuth。默认情况下,TankAuth将注册表单和登录表单放在不同的页面上。我想将登录表单放在每个页面上出现的导航栏中。还有一个注册页面,注册表单将与登录表单(位于导航栏中)同时出现。
我目前正在控制器/signup.php.index()中使用它...
$this -> load -> view('templates/header');
$this -> login();
$this -> register();
$this -> load -> view('templates/footer');它可以正确显示,但我有两个问题:
1我是否必须在每个具有登录表单的控制器中重新定义TankAuth的方法?
2当我尝试注册时,它告诉我登录表单也应该填写。这显然是个22条军规。
(如果这篇文章太过具体领域或含糊不清,我很抱歉;我希望它对那些使用过该框架的人有意义。)
发布于 2012-02-11 22:56:27
我不确定你试图通过组合登录和注册视图来达到什么目的,它们不是被设计成一起工作的,所以你肯定需要对基本的库身份验证结构做一些修改。
这真的不应该是一个令人困惑的问题,因为这只是你自己通过组合两个非常相似的表单而造成的问题。
要简单地浏览一下这段代码(我不知道您编写的代码会发生什么变化),首先必须创建您自己的登录(html),设置表单action="/auth/login"。
登录将提交,如果用户已经登录,您可以这样处理,如果他们登录失败,他们将被带到单页面登录(默认/或修改),在那里他们可以重试。
同样的方法也应该用于注册,设置表单action="/auth/register"并让它根据tank身份验证控制器提交。同样,如果注册成功,它们将穿梭在任何地方,否则将被带到单个注册页面。
使用原始的登录和registration视图开始您需要更改/更新的内容。
Tank Auth实际上是一个插件,你需要修改它以满足你的需要,它的代码是干净和清晰的,所以只需要通过它来理解在登录时发生了什么,在注册时发生了什么,激活时发生了什么,否则把这些东西混在一起是不会给你带来任何好处的。在我个人使用该库的经验中,我总是在初始设置之外对其进行修改,这只是因为它很容易做到。
发布于 2012-11-16 03:41:49
我不确定这是否仍然是一个问题,但如果你真的想这样做,你可以把一个视图作为一个IFRAME包含在另一个视图中,没有任何问题。
https://stackoverflow.com/questions/9238226
复制相似问题