Поддержка Проблемы и решения Вход через отдельный файл

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Использовать готовые плагины не позволяет устав секты костыльных велосипедостроителей?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    в админку не пускает (перенаправляет на главную)

    Всё в точности как написано:

    
    if ( !is_wp_error($user) ) { header('location:' . home_url('/')); exit; }
    

    Написал форму входа

    Какую задачу вы хотите решить?

    Для поддержания безопасности в общем случае достаточно:

    • Иметь надёжные пароли (от 24 символов, с цифрами и спецсимволами).
    • Не давать права администратора и редактора случайным людям.
    • Плагины и темы скачивать только с официальных ресурсов.
    • Своевременно обновляться.

    Можно также настроить двухэтапную аутентификацию с помощью Google Authenticator.

    Эта форма для всех…
    после входа в админку не пускает (перенаправляет на главную)

    При входе суперадминистратора тоже переадресовывается на главную. Панель админа присутствует но она не заводит в зону администрирования, как будто ты простой пользователь и функциями перенаправляет обратно на главную

    А если зайти через wp-login, то все в порядке.

    как будто что-то не подхватывает учетная запись. того что не хватает для входа в панель администрации.
    Версия 4.9.13

    • Ответ изменён 1 месяц, 3 недели назад пользователем Kachan.

    Причина была в том что функция wp_set_auth_cookie( $user_id ) не была присвоена при входе, соответственно вход в админ часть был не доступен
    Подскажите правильность кода, так как я новичок в этом деле
    Так вроде все ззаработало

    require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
    $log = isset($_POST['log']) ? $_POST['log'] : '';
    $pwd = isset($_POST['pwd']) ? $_POST['pwd'] : '';
    $rememberme = isset($_POST['rememberme']) ? $_POST['rememberme'] : '';
    if($rememberme)
    {
    	$rbme = true;
    }
    else
    {
    	$rbme = false;
    }
    $creds = array();
    $creds['user_login'] = $log;
    $creds['user_password'] = $pwd;
    $creds['remember'] = $rbme;
    $user = wp_signon( $creds, false );
    if ( !is_wp_error($user) )
    {
    	if( strpos($log,'@') !== false )
    	{
    		$user_by = get_user_by( 'email', $log );
    	}
    	else
    	{
    		$user_by = get_user_by( 'login', $log );
    	}
    	$user_id = $user_by->ID;
    	wp_set_auth_cookie( $user_id );
    	header('location:' . home_url('/'));
    	exit;
    }
    else
    {
    	header('location:' . home_url('/recovery/?auth=bad')); exit;
    }
    
    • Ответ изменён 1 месяц, 3 недели назад пользователем Kachan.
    • Ответ изменён 1 месяц, 3 недели назад пользователем Kachan.

    kachan, вам Сергей уже подсказку дал по данной проблеме)

    Кароче поменял
    wp_signon( $creds, false );
    на
    wp_signon( $creds, true );
    и все заработало..
    не знал что этот параметр для админа так важен

    • Ответ изменён 1 месяц, 3 недели назад пользователем Kachan.
Просмотр 6 ответов — с 1 по 6 (всего 6)