при логинизации в строку бразуера передается целая строка:
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 и какой у вас есть.
Данные для авторизации в скрипт заходят?
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() а выйти можно так public function action_logout() |
ох ты и говнокодишь)
Спустя 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:
в итоге получаю ошибку:
http://rghost.ru/37212383/image.png
и все что в 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 написал(а):
В твоем случае отличаться немного будет
у тебя username - это login
Лучше называть поля формы так же как они называются в БД, так будет проще пользоваться системой валидации Kohana.
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);
Думаю, что увидим "пустую-пустоту".
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="" что-то недописал.
Такое впечатление что я в форме action="" что-то недописал.
Спустя 1 минута, 44 секунды (25.03.2012 - 17:09) T1grOK написал(а):
metod="POST"
и
method="POST"
Чувствуешь разницу?
и
method="POST"
Чувствуешь разницу?
Спустя 48 секунд (25.03.2012 - 17:10) Stasonix написал(а):
чувствую 
а в action="home.php" прописал, уже не помню надо или нет, но заработало!!! (тут скорее всего больше не надо писать home.php чем надо, надо в видео заглянуть, что-т я подзабыл дей-но).

а в action="home.php" прописал, уже не помню надо или нет, но заработало!!! (тут скорее всего больше не надо писать home.php чем надо, надо в видео заглянуть, что-т я подзабыл дей-но).
Спустя 48 минут, 57 секунд (25.03.2012 - 17:59) T1grOK написал(а):
У тебя все в одном обработчике поэтому атрибут action можно не указывать.
Спустя 14 минут, 44 секунды (25.03.2012 - 18:14) Stasonix написал(а):
да T1grOK все верно, разобрались!