3

我正在尝试使用 kohana2 文档 ( http://docs.kohanaphp.com/addons/auth ) 中提供的 ORM 示例为我的 kohana2 应用程序制作登录表单。我已经完成了 wiki 中的所有操作,但在提供用户名、密码并发送表单后,什么也没有发生。没有错误,没有例外,什么都没有!只是相同的形式没有任何错误。

这是控制器操作,我唯一更改的是添加模板功能: http: //pastebin.com/jEc4nqSP

第 42 行有一个die()函数,用于调试目的。发送表格后,它会显示Array ( [username] => invalid ) 1。我确定我在数据库中有该用户数据,并且我提供了正确的用户名和密码。角色设置为login。你知道我在做什么错吗?

谢谢。

4

2 回答 2

0

在第 39 行,您正在创建一个空的 ORM 用户对象。至少,你肯定想要:

ORM::factory('user', $post['username'])

尽管您可能想要重构它,但它实际上会检查用户名值是否已设置。

于 2011-06-30T03:40:39.697 回答
0

好的问题解决了!我们需要做的就是使用以下代码创建一个新用户(来自 kohana2 文档的注册控制器):

<?php
// grab relevant $_POST data
$username = $this->input->post('username');
$password = $this->input->post('password');

// instantiate User_Model and set attributes to the $_POST data
$user = ORM::factory('user');
$user->username = $username;
$user->password = Auth::instance()->hash_password($password);

// if the user was successfully created...
if ($user->add(ORM::factory('role', 'login')) AND $user->save()) {

    // login using the collected data
    Auth::instance()->login($username, $password);

    // redirect to somewhere         
    url::redirect('user/profile');
}

以前的管理员登录数据不起作用,因为密码未正确散列。

于 2011-10-08T12:36:20.983 回答