[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Kohana, модуль авторизации
Stasonix
как проверить почему не логинит, точнее где искать причины?
при логинизации в строку бразуера передается целая строка:
http://mydomen.ua/test/kohana/main?login=a...btnsubmit=войти
пасс и логин: admin & admin
если логинизация прошла успешно то на странице должна появится надпись
"Залогинен", если нет, то "Незалогинен", так вот я ввожу все правильно
login admin
password admin
но почему-то всегда возвращает "Незалогинен", не пойму в чем дело?
хэш пароля сохранил и записал куда надо (и в БД пробовал и в auth.php)
как проверить же все-таки с чем связана данная проблема, потому что все вроде чисто, ошибок никаких на экран не выводится

исходник контроллера main.php


<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Main extends Controller_Template {

public $template = 'basic';

public function action_index()
{

$auth = Auth::instance();

if ($auth->logged_in())
{
$data["msg"] = "Залогинен";
}
else
{
$data["msg"] = "Незалогинен";
}

if (isset($_POST['btnsubmit'])){
$login = Arr::get($_POST,'login','');
$password = Arr::get($_POST,'password','');
$auth->login($login,$password);
}

$this->template->content = View::factory('home',$data);
}

public function action_hpass(){

$auth = Auth::instance();

$this->template->content = $auth->hash_password('admin');
}

public function action_logout(){

$auth = Auth::instance();

$this->template->content = $auth->hash_password('admin');
$auth->logout();
$this->template->content ='разлогинились';
}

}
// End Welcome


в БД тоже роль 1 прописано, я просто по курсам Морковина делаю, учусь можно сказать и вот столкнулся с такой проблемой, правда она не одна, но это уже как-нть в след. раз...



Спустя 11 часов, 9 минут, 18 секунд (25.03.2012 - 09:34) T1grOK написал(а):
Вообще по коду, если залогинились, то увидите правильное сообщение, только после обновления страницы.

Salt в конфигурации авторизации меняли?

Посмотрите какой хеш генерит Auth и какой у вас есть.

Данные для авторизации в скрипт заходят?

Спустя 1 минута, 53 секунды (25.03.2012 - 09:35) johniek_comp написал(а):
проверка на вход
 public function action_index()
{

if(Auth::instance()->logged_in())
{
echo 'Залогинен!';
}
else
{
echo 'Не залогинен!';
}

if ($_POST)
{

$user = ORM::factory('user');

$status = Auth::instance()->login($_POST['username'], $_POST['password']);

if ($status)
{
echo 'вошли!';
}
else
{

echo 'не верно';
}
}

}


а выйти можно так
public function action_logout()
{

if (Auth::instance()->logout())
{
echo 'разлогинились';
}
}

Спустя 11 минут, 29 секунд (25.03.2012 - 09:47) T1grOK написал(а):
johniek_comp бессмысленно создавать модель, если она не используется

$user = ORM::factory('user');

Спустя 4 часа, 19 минут, 44 секунды (25.03.2012 - 14:07) Stasonix написал(а):
вот код auth.php


<?php defined('SYSPATH') or die('No direct access allowed.');

return array(

'driver' => 'ORM',
'hash_method' => 'sha256',
'hash_key' => '2, 4, 5, 6, 7, 8, 9, 10',
'lifetime' => 1209600,
'session_type' => Session::$default,
'session_key' => 'auth_user',

// Username/password combinations for the Auth File driver
//'users' => array(
// 'admin' => '5ab44273e0eba982940a235097b549820b4a73274e382ce6982020c4b84ea87a',
// ),


);

вот это хэш моей соли, когда было не через БД, естественно это было расскомментено, но результат тот же самый.

Спустя 33 минуты, 56 секунд (25.03.2012 - 14:41) alexbel2404 написал(а):
Цитата (johniek_comp @ 25.03.2012 - 10:35)
проверка на вход
 public function action_index()
{

if(Auth::instance()->logged_in())
{
echo 'Залогинен!';
}
else
{
echo 'Не залогинен!';
}

if ($_POST)
{

$user = ORM::factory('user');

$status = Auth::instance()->login($_POST['username'], $_POST['password']);

if ($status)
{
echo 'вошли!';
}
else
{

echo 'не верно';
}
}

}


а выйти можно так
public function action_logout()
{

if (Auth::instance()->logout())
{
echo 'разлогинились';
}
}

ох ты и говнокодишь)

Спустя 4 минуты, 16 секунд (25.03.2012 - 14:45) T1grOK написал(а):
Данные для авторизации заходят в скрипт?

Хеши пароля совпадают с теми что в бд?

var $auth;
public function action_index()
{
......
$this->auth = Auth::instance();
echo $this->auth->hash_password($_POST['password'], $this->auth->find_salt($this->auth->password($_POST['username'])));
.....

}

Спустя 24 минуты, 31 секунда (25.03.2012 - 15:09) Stasonix написал(а):
да, вот копи паст спец. из БД 5ab44273e0eba982940a235097b549820b4a73274e382ce6982020c4b84ea87a

и все что в main.php:
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Main extends Controller_Template {

public $template = 'basic';

var $auth; // добавлено

public function action_index()
{

$auth = Auth::instance();

$this->auth = Auth::instance(); // добавлено
echo $this->auth->hash_password($_POST['password'], $this->auth->find_salt($this->auth->password($_POST['username']))); // добавлено


if ($auth->logged_in())
{
$data["msg"] = "Залогинен";
}
else
{
$data["msg"] = "Незалогинен";
}

if (isset($_POST['btnsubmit'])){
$login = Arr::get($_POST,'login','');
$password = Arr::get($_POST,'password','');
$auth->login($login,$password);
}

$this->template->content = View::factory('home',$data);
}

public function action_hpass(){

$auth = Auth::instance();

$this->template->content = $auth->hash_password('admin');
}

public function action_logout(){

$auth = Auth::instance();

$this->template->content = $auth->hash_password('admin');
$auth->logout();
$this->template->content ='разлогинились';
}

}
// End Welcome


в итоге получаю ошибку:
http://rghost.ru/37212383/image.png

Спустя 1 час, 7 минут, 30 секунд (25.03.2012 - 16:17) johniek_comp написал(а):
alexbel2404
это не мой код, это с интернета

Спустя 19 минут, 55 секунд (25.03.2012 - 16:37) Stasonix написал(а):
не знаю что с этим делать, не хочется идти дальше не исправив ситуацию, это какой-то недоурок будет, а там все последовательно.

Спустя 15 минут, 9 секунд (25.03.2012 - 16:52) T1grOK написал(а):
В твоем случае отличаться немного будет

echo $this->auth->hash_password($_POST['password'], $this->auth->find_salt($this->auth->password($_POST['login']))); // добавлено

у тебя username - это login
Лучше называть поля формы так же как они называются в БД, так будет проще пользоваться системой валидации Kohana.

Спустя 4 минуты, 4 секунды (25.03.2012 - 16:56) Stasonix написал(а):
без толку все, тот же самый ErrorException [ Notice ]: Undefined index: password

Спустя 5 минут, 8 секунд (25.03.2012 - 17:01) T1grOK написал(а):
ВЫВОД. Данные в скрипт не попадают!!! Форму авторизации саму покажи.

Спустя 1 минута, 42 секунды (25.03.2012 - 17:03) T1grOK написал(а):
Выведи содержимое $_POST

print_r($_POST);

Думаю, что увидим "пустую-пустоту".

Спустя 31 секунда (25.03.2012 - 17:03) Stasonix написал(а):

<p style="text-align: center"> Это главная Страница! </p>
<p>
значение переменной messege: <?php echo $msg; ?> </p>

<FORM
action="" metod="POST">
<table
class="login">
<th
colspan="2" style="padding-bottom: 10px">Авторизация</th>
<tr>
<td>
Логин:</td><td><input type="text" name="login"/></td>
</tr>
<tr>
<td>
Пароль:</td>
<td><Input
type="password" name="password"/> </td>
</tr>
<th
colspan="2" style="text-align:right"><input type="submit" name="btnsubmit" style="width: 170px; height: 30px;" value="Войти" /></th>
</table>
</FORM>


Спустя 3 минуты, 54 секунды (25.03.2012 - 17:07) Stasonix написал(а):
нда, print_r($_POST); дей-но пуст.

Такое впечатление что я в форме action="" что-то недописал.

Спустя 1 минута, 44 секунды (25.03.2012 - 17:09) T1grOK написал(а):
metod="POST"
и
method="POST"
Чувствуешь разницу?

Спустя 48 секунд (25.03.2012 - 17:10) Stasonix написал(а):
чувствую biggrin.gif
а в action="home.php" прописал, уже не помню надо или нет, но заработало!!! (тут скорее всего больше не надо писать home.php чем надо, надо в видео заглянуть, что-т я подзабыл дей-но).

Спустя 48 минут, 57 секунд (25.03.2012 - 17:59) T1grOK написал(а):
У тебя все в одном обработчике поэтому атрибут action можно не указывать.

Спустя 14 минут, 44 секунды (25.03.2012 - 18:14) Stasonix написал(а):
да T1grOK все верно, разобрались!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.