Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php kohana2身份验证-登录问题_Php_Model View Controller_Kohana_Kohana Auth - Fatal编程技术网

Php kohana2身份验证-登录问题

Php kohana2身份验证-登录问题,php,model-view-controller,kohana,kohana-auth,Php,Model View Controller,Kohana,Kohana Auth,我正在尝试使用kohana2文档()中的ORM示例为我的kohana2应用程序创建一个登录表单。我在维基上做了所有类似的事情,但在提供用户名、密码和发送表单后,什么也没发生。没有错误,没有例外,什么都没有!完全相同,没有任何错误 这是控制器操作,我唯一更改的是添加模板功能: 第42行中有一个die()函数,用于调试。发送表单后,它会显示数组([username]=>invalid)1。我确信我在数据库中有那个用户数据,并且我提供了一个正确的用户名和密码。角色设置为login。你知道我做错了什么吗

我正在尝试使用kohana2文档()中的ORM示例为我的kohana2应用程序创建一个登录表单。我在维基上做了所有类似的事情,但在提供用户名、密码和发送表单后,什么也没发生。没有错误,没有例外,什么都没有!完全相同,没有任何错误

这是控制器操作,我唯一更改的是添加模板功能:

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


谢谢。

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

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

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

确定问题已解决!我们需要做的就是使用此代码创建一个新用户(来自kohana2 docs的注册控制器):


不幸的是,它仍然不起作用。我仍然得到同样的结果。顺便说一句,
login($post)
methodhandling
$post['username']
<?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');
}