2016-04-03 4 views
0

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

session_start(); 
$_SESSION['login'] = "1"; 

Для проверки того, зарегистрирован пользователь или нет на странице, я использую этот код в начале страницы:

session_start(); 
if($_SESSION['login']=='') 
{ 
    @header("location:login.php"); 
} 

Однако страница не перенаправляет даже если пользователь не вошел в систему ошибка показана

Примечание:. Undefined индекс: войти в XXXX/XXXX/XXXX/XXXX

Есть ли какой-либо другой способ перенаправления пользователей, кроме header(), или, возможно, какой-либо другой код может использоваться для достижения той же цели?

+0

ли вы создать login.php в качестве шаблона или только пользовательский файл? ИЛИ вы можете попробовать с is_user_logged_in(). – user1990

+0

Используйте функцию is_user_logged_in(), чтобы проверить, является ли пользователь логином или нет. затем используйте функцию wp_redirect для перенаправления на местоположение желания –

+0

Я использую login.php в качестве настраиваемого файла. – NewLander

ответ

0

Он появляется login индекс $_SESSION не установлен в то время, вы проверяете его, скорее всего, $_SESSION['login'] = "1"; немного приходит после проверки, так что вы будете иметь, чтобы убедиться, что вы проверить является ли это установить или не использовать функция array_key_exists следующим образом:

if (array_key_exists('login', $_SESSION) && $_SESSION['login']=='') { 
    @header("location:login.php"); 
} 

в качестве альтернативы вы можете задать явно $_SESSION['login'] = 0, например, по умолчанию, и установить только $_SESSION['login'] = "1"; если Войти успешно.

В то же время я не рекомендую использовать свой собственный механизм входа, вместо этого используйте скрипты и методы, изначально разработанные знающими кодировщиками Wordpress и хорошо протестированные сообществом. Один такой подход описан в this question on the wordpress support site (добавить это к вашей темы functions.php):

add_action('init', 'redirect_visitors'); 

function redirect_visitors() { 
    if (! is_user_logged_in()) { 
    wp_redirect('http://your-site.com/wp-login.php'); 
    exit; 
    } 
} 
Смежные вопросы