Собственно вопрос: есть блок, в котором выводятся форма авторизации и форма регистрации. После нажатия на кнопку "Войти" при не существующем логине или неверном пароле не показываются ошибки, вообще ничего не происходит. То же самое при регистрации: если желаемый логин существует, ошибки об этом не выводятся.
При вводе правильных данных при авторизации всё нормально.
При вводе корректных данных при регистрации всё нормально.
Кто может подсказать, в чём дело и как побороть это недоразумение? Нужно как-то показывать ошибки.
Код вывода блока:
<?php
function mytheme_user_bar() {
global $user;
$output = '';
//Login form
if (!$user->uid) {
$output .= '<h2>Вход в систему</h2>';
$output .= drupal_get_form('user_login_block');
}
//Register form
if (!$user->uid) {
$output .= '<hr class="clear"/>';
$output .= '<h2>Быстрая регистрация</h2>';
$output .= drupal_get_form('user_register');
}
else {
$output .= t('<p class="user-info">Привет, !user.</p>', array('!user' => theme('username', $user)));
$output .= theme_image($user->picture, $alt = 'user pic', $title = 'user pic');
$output .= theme('item_list', array(
l(t('My Account'), 'user/'.$user->uid, array('title' => t('Edit your account'))),
l(t('Logout'), 'logout')));
}
$output = '<div id="user-bar">'.$output.'</div>';
return $output;
}
?>
UPD
Код обновлён: теперь не выводятся ошибки регистрации. С логином всё в порядке.
Комментарии
Есть подозрение что не отрабатывает drupal_set_message().
Продебажить бы, до куда доходите при неверном логине с паролем.
У меня подозрение что в начале валидации отваливается.
uid=0 присутствует? при его отсутствии замечал что не работает drupal_set_message().
Форма "Авторизация" заработало корректно. От формы "Регистрация" отказался
Нашёл решение здесь