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 - отличное русскоязычное руководство, тоже хорош по всем пунктам.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 11:20
1000 руб./за проект
25 апр. 2024, в 11:02
5000 руб./за проект
25 апр. 2024, в 10:42
150000 руб./за проект