Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="uran26"]Решил сделать авторизацию на сайте как описано вот тут [url]http://book.cakephp.org/view/172/Authentication[/url]. То есть есть таблица users с полями username и password, Контроллер Users и его методы isAuthorized, login(пустой) и logout. [code] function isAuthorized() { return true; } [/code] [code] function logout () { $this->redirect ( $this->Auth->logout () ); } [/code] Вид login: [code] <?php if ( $session->check ( "Message.flash" ) ) $session->flash (); if ( $session->check ( "Message.auth" ) ) $session->flash ( "auth" ); echo $session->read ( "Auth.user" ); echo $form->create ( array ( 'controller' => 'users', 'action' => 'login' ) ); ?> Name: <?php echo $form->input ( 'User.username', array ( 'size' => 64, 'label'=>false ) ); ?> Password: <?php echo $form->password ( 'User.password', array ( 'size' => 64, 'label' => false ) ); echo $form->submit ( 'Login' ); ?> [/code] Пытаемся логинится - вводим логин и пароль (существующего пользователя с хешированным паролем sha1), получаем: [i]Login failed. Invalid username or password.[/i] Решил посмотреть какие данные приходят в login, добавил такое: [code] $this->set ( "data", $this->data['User'] ); [/code] И в вид соответственно: [code]var_dump ( $data );[/code] Что показало мне: [i]array(2) { ["username"]=> string(4) "test" ["password"]=> NULL } [/i] Dedug сообщает что был выполнен вот такой запрос к базе: [code] SELECT `User`.`id`, `User`.`username`, `User`.`password` FROM `users` AS `User` WHERE `User`.`username` = 'test' AND `User`.`password` = '20ec9b017e09672c62365b1374f3d42322d05cca' LIMIT 1 [/code] Объясните мне почему password = null ??? Где он теряется??? с моей стороны с $this->data['User']['password'] в контроллере никаких действий не производится.[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
mayar
Добавлено: 09 Сен 2009 10:48:41
Заголовок сообщения:
А ты настроил сам компонент Auth?
app_controller.php
Код:
<?php
class AppController extends Controller {
var $components = array('Acl', 'Auth');
function beforeFilter() {
//Configure AuthComponent
$this->Auth->authorize = 'actions';
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'posts', 'action' => 'add');
}
}
?>
Делай прямо по шагам:
http://book.cakephp.org/view/643/Preparing-to-Add-Auth
uran26
Добавлено: 30 Авг 2009 14:17:04
Заголовок сообщения: Компонент Auth
Решил сделать авторизацию на сайте как описано вот тут http://book.cakephp.org/view/172/Authentication.
То есть есть таблица users с полями username и password,
Контроллер Users и его методы isAuthorized, login(пустой) и logout.
Код:
function isAuthorized() {
return true;
}
Код:
function logout () {
$this->redirect ( $this->Auth->logout () );
}
Вид login:
Код:
<?php
if ( $session->check ( "Message.flash" ) )
$session->flash ();
if ( $session->check ( "Message.auth" ) )
$session->flash ( "auth" );
echo $session->read ( "Auth.user" );
echo $form->create ( array ( 'controller' => 'users', 'action' => 'login' ) );
?>
Name:
<?php echo $form->input ( 'User.username', array ( 'size' => 64, 'label'=>false ) ); ?>
Password:
<?php
echo $form->password ( 'User.password', array ( 'size' => 64, 'label' => false ) );
echo $form->submit ( 'Login' );
?>
Пытаемся логинится - вводим логин и пароль (существующего пользователя с хешированным паролем sha1), получаем:
Login failed. Invalid username or password.
Решил посмотреть какие данные приходят в login, добавил такое:
Код:
$this->set ( "data", $this->data['User'] );
И в вид соответственно:
Код:
var_dump ( $data );
Что показало мне:
array(2) { ["username"]=> string(4) "test" ["password"]=> NULL }
Dedug сообщает что был выполнен вот такой запрос к базе:
Код:
SELECT `User`.`id`, `User`.`username`, `User`.`password` FROM `users` AS `User` WHERE `User`.`username` = 'test' AND `User`.`password` = '20ec9b017e09672c62365b1374f3d42322d05cca' LIMIT 1
Объясните мне почему password = null ??? Где он теряется??? с моей стороны с $this->data['User']['password'] в контроллере никаких действий не производится.
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».