Chvalov
@Chvalov

Не работает авторизация — фреймворк Fat free Framework, что делать ?

Есть контролер:
<?php
class Controller {
    protected $f3;
    protected $db;
    function beforeroute() {
    }
    function afterroute() {
		echo Template::instance()->render('client_layout.html');
    }
    function __construct() {
        $f3=Base::instance();
        $db=new DB\SQL(
            $f3->get('db_host') . $f3->get('db_name'),
            $f3->get('db_user'),
            $f3->get('db_pass')
        );
        $this->f3=$f3;
        $this->db=$db;
    }
}

class UserController extends Controller {
	public function index()
	{
		$this->f3->set('page_head','Главная');
		$this->f3->set('view','client/index.html');
	}
// Страница входа (Авторизации)	
	public function auth()
	{
		$this->f3->clear('SESSION');
		$this->f3->set('page_head','Авторизация');
		$this->f3->set('view','client/auth.html');
	}

// Процесс авторизации	
	public function login()
	{
		$signin = new Signin($this->db);
		$signin->set('login',$this->f3->get('post.login'));          
		$signin->set('password',md5($this->f3->get('post.password')));                                                                     
		
		$auth=new \Auth($signin, array('id'=>'login','pw'=>'password'));                                                          
		if ($auth->login($this->f3->get('post.login'),md5($this->f3->get('post.password')))==1)
			$this->f3->reroute('/');
		
	}
}

Есть модель Siginin.php:
<?php
	class Signin extends DB\SQL\Mapper {
		public function __construct(DB\SQL $db) {
			parent::__construct($db,'users');
		}
}

Есть роутер:
GET /auth=UserController->auth
POST /auth=UserController->login
GET /logout=UserController->logout

Ну и форма:
<form action="{{ @BASE.'/auth' }}" method="post" class="form-horizontal" role="form">
                <fieldset>
                    <div class="clearfix">
                        <input type="text" id="login" name="login" class="input-block-level" placeholder="Username">
                    </div>
                    <div class="clearfix">
                        <input type="password"  id="password" name="password" class="input-block-level" placeholder="Password">
                    </div>

   <button type="submit"  class="btn btn-primary">
                        Sign in
                    </button>
                </fieldset>
            </form>

Что у меня не правильно ? При попитке авторизироваться кидает на эту же страницу, а должен бить редирект.
Или может у кого-то есть пример авторизации на Fat Free когда пароли в БД в MD5
  • Вопрос задан
  • 4051 просмотр
Решения вопроса 1
Chvalov
@Chvalov Автор вопроса
Вся проблема была в том что "post" у меня написан в нижнем регистре, а нужно в верхнем :)
// Процесс авторизации	
	public function login()
	{
		$signin = new Signin($this->db);
		$signin->set('login',$this->f3->get('POST.login'));          
		$signin->set('password',md5($this->f3->get('POST.password')));                                                                     
		
		$auth=new \Auth($signin, array('id'=>'login','pw'=>'password'));                                                          
		if ($auth->login($this->f3->get('POST.login'),md5($this->f3->get('POST.password')))==1)
			$this->f3->reroute('/');
		
	}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
passshift
@passshift
php, js, html5, css
Совершенно не знаком с этим фреймворком и до конца не понятен синтаксис, но мне кажется все дело в этих строках:

if ($auth->login($this->f3->get('post.login'),md5($this->f3->get('post.password')))==1)
			$this->f3->reroute('/');


1 - это успех авторизации? В таком случае редиректит $this->f3->reroute( ' /сюда ' );

А еще не понятна косая черта перед Auth:

$auth=new \Auth($signin, array('id'=>'login','pw'=>'password'));


Это такая "фишка" фреймворка?

Может не по теме будет, но если Вы новичок в работе с фреймворками и только лишь начинаете осваивать Fat free Framework, то могу посоветовать 2 хороших заменителя:

kohanaframework.org - скудное русскоязычное сообщество, НО красивый, понятный и логичный код без тонны мусора, есть парочка русскоязычных неофициальных руководств которые помогут взять успешный старт.

laravel.ru - отличное русскоязычное руководство, тоже хорош по всем пунктам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы