Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 05 июл 2025, 15:50

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: авторизация ...
СообщениеДобавлено: 10 авг 2012, 22:52 
Не в сети
Зеленый

Зарегистрирован: 07 авг 2012, 13:50
Сообщения: 6
Доброго времени суток!
Скрипт авторизует всех подряд... Не получается придумать правильный запрос к БД, или контроллер чтобы не зарегестрировнные пользователи не могли авторизоваться. Ошибку не выводит.
Модель
Код:
public function user_login($user_name, $user_password)
    {
        $result = DB::select()
            ->from($this->_tableUsers)
            ->where('user_name', '=', $user_name)
            ->and_where('user_password', '=', md5($user_password))
            ->execute();
       if($result)
        {
            return $result;
        }       
        else
            return false;
    }


Контроллер
Код:
      $check_login = Model::factory('User_Authorization');
      $check_login->user_login($user_name, $user_password);
                     
      if($check_login == true)
      {             
            $content = View::factory('user/login')
                  ->set('user_name', $user_name);
            $this->template->content = $content;   
      }

Вид
Код:
<?php if(!isset($user_name)): ?>
<h2>Войти</h2><hr /><br />
<form method="post" name="login" action="<?php echo URL::site('user/authorization/login'); ?>" >
<b>Логин:</b><br />
<input type="text" name="user_name" id="user_name" /><br />
<b>Пароль:</b><br />
<input type="password" name="user_password" id="user_password" /><br /><br />
<input type="checkbox" name="remember" value="remember_me" id="remember_me" />&nbsp;Запомнить<br /><br />
<input type="submit" value="  Войти  " name="login" id="login" /><br />
</form>

<!-- Приветствие пользователю -->
<?php
else : echo 'Добрый день, <b>' . $user_name . '</b>.<br /> ';
endif;
?>


P.S. Намного легче было придумать скрипт регистрации...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: авторизация ...
СообщениеДобавлено: 10 авг 2012, 23:18 
Не в сети
Супермодератор
Аватара пользователя

Зарегистрирован: 13 фев 2012, 22:24
Сообщения: 65
Откуда: оттуда
Проверьте, что содержиться в $result в модели в случае неправильного ввода. Мне кажется условие именно там не срабатывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: авторизация ...
СообщениеДобавлено: 11 авг 2012, 00:52 
Не в сети
Зеленый

Зарегистрирован: 07 авг 2012, 13:50
Сообщения: 6
а как можно проверить? и как обращаться к параметрам объекта класса МОДЕЛЬ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: авторизация ...
СообщениеДобавлено: 11 авг 2012, 06:05 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Код:
public function action_signin()
  {
    // Проверям, вдруг пользователь уже зашел
    if (Auth::instance()->logged_in())
    {
      // И если это так, то отправляем его сразу на страницу пользователей
      return $this->request->redirect('user');
    }

    // Если же пользователь не зашел, но данные на страницу пришли, то:
    if ($_POST)
    {
      // Создаем переменную, отвечающую за связь с моделью данных User
      $user = ORM::factory('user');
      // в $status помещаем результат функции login
      $status = Auth::instance()->login($_POST['username'], $_POST['password']);

      // Если логин успешен, то
      if ($status)
      {
        // Можем даже проверить, не админ ли это
        if (Auth::instance()->logged_in('admin'))
          // Если админ, редиректим в админку
          $this->request->redirect('admin');
        // Если логин успешен и это не админ, отправляем пользователя на его страницу
        $this->request->redirect('user');
      }
      else
      {
        // Иначе ничего не получилось, грузим CSS для вывода ошибки
          $this->template->styles['public/css/error.css'] = 'screen, projection';

          // И пишем ...
          // Только не забываем где нибудь определить $errors
          $this->errors[] = 'Неверный логин или пароль!';
      }
    }

    // Грузим view логина, передаем туда ошибку через bind
    $content = View::factory('sign/' . $this->request->action())
             ->bind('errors', $this->errors);
    // Общая CSS для авторизации
    $this->template->styles['public/css/signin.css'] = 'screen, projection';
    // Заголовок
    $this->template->title = 'Авторизация';
    $this->template->content = $content;

  }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: авторизация ...
СообщениеДобавлено: 11 авг 2012, 16:47 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Sergey - а вы всегда ORM используете ? :)

Цитата:
а как можно проверить?

Например, с помощью var_dump можно.

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: авторизация ...
СообщениеДобавлено: 12 авг 2012, 11:52 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
admin писал(а):
Sergey - а вы всегда ORM используете ? :)


А что в этом плохого?

admin писал(а):
Цитата:
а как можно проверить?
Например, с помощью var_dump можно.


Код:
Debug::vars($value);
Debug::dump($value)
Debug::trace($value);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: авторизация ...
СообщениеДобавлено: 30 авг 2012, 18:06 
Не в сети
Зеленый

Зарегистрирован: 07 авг 2012, 13:50
Сообщения: 6
Я пока что не использую ORM... хочу все сделать сам ... а получается как всегда...

Вывожу данные через $_POST
Код:
<?php print_r (Request::current()->post()); ?>

код выводит данные (вписанные в форму логина), но опять таки База Данных допускает такого пользователя....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: авторизация ...
СообщениеДобавлено: 30 авг 2012, 18:23 
Не в сети
Зеленый

Зарегистрирован: 07 авг 2012, 13:50
Сообщения: 6
Вот скрин:
Вложение:
di-9134633277316.jpg
di-9134633277316.jpg [ 67.21 КБ | Просмотров: 7149 ]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group