我是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" ;
}
}
}
}
?>
答案 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 以防止直接访问某些目录