Кохана .. простая функция нужна помощь - PullRequest
0 голосов
/ 05 мая 2011

Я новичок в kohana .. Гайз плз указывает на ошибки в следующем коде .. я не могу его запустить .. Это простое соединение с базой данных .. Могу ли я сравнить результат запроса и элемент psot, как у меня естьсделано так .. плз исправить ..

<?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 ]

1 голос
/ 05 мая 2011
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 имеет другое соглашение о контроллерах и именах методов)

0 голосов
/ 05 мая 2011

Line:

$index = new View('Index')

отсутствует ";" в конце. Запись:

$index = new View('Index');

Линия:

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

Отсутствует $ перед именами переменных. $post должно быть $_POST или лучше, используйте Kohana Arr::get() (см. Ответ Биакаверона).

Совет:

Вместо того, чтобы писать defined('SYSPATH') or die('No direct script access.'); в верхней части каждого файла сценария, настройте Apache для скрытия этих файлов из «области действия» Apache или добавьте .htaccess для предотвращения прямого доступа к некоторым каталогам.

...