KOhana ..简单的功能需要帮助

时间:2011-05-05 09:32:58

标签: php kohana

我是kohana的新手.. Guyz plz指出以下代码中的错误..我无法运行它..它与数据库的简单连接..我可以比较查询结果和psot项目,因为我已经这样做了.. plz正确..

<?php defined('SYSPATH') or die('No direct script access.');
/**
* Default Kohana controller.
*/
class index_Controller extends Controller {
public function index()
{
$db = new Database();
$index = new View('Index')
$db->connect();
name = $post['name'];
password = $post['password'];
$result = $db->query('name');
foreach($result as $row)
{
  if($row->Password === password)
  {
    echo "login Successful" ;
   }

        }
}

}
?> 

2 个答案:

答案 0 :(得分:1)

public function index()
{
   $db = new Database();
   $index = new View('Index'); // unused var?
   //$db->connect();
   $name = Arr::get($_POST, 'name');
   $password = Arr::get($_POST, 'password');
   if ( ! $name OR !$password)
   {
      die('name and password required!');
   }
   $user = $db->select('*')   // use Query Builder!
           ->from('users')
           ->where('username', $name)
           ->get();
   if ( empty($user))
   {
      die('user '.$user.' not found!');
   }
   $user = current($user);
   if ($user['password'] == $password)
   {
       // correct password
   }
   else
   {
       die('wrong username/password combination!');
   }

}

它适用于Kohana v2.3.4(3.x有另一个控制器和方法名称约定)

答案 1 :(得分:0)

行:

$index = new View('Index')

缺少“;”在末尾。写:

$index = new View('Index');

行:

name = $post['name'];
password = $post['password'];

在变量名称前缺少$$post应为$_POST或更好,请使用Kohana Arr::get()(请参阅biakaveron的回答)。

建议:

不是在每个脚本文件的顶部写defined('SYSPATH') or die('No direct script access.');,而是将Apache配置为从Apache的“范围”隐藏这些文件,或添加 .htaccess 以防止直接访问某些目录