Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Доступ только после авторизации


Recommended Posts

Как можно сделать основную страницу с вводом логина и пароля (она отражается всегда, если человек не вошел под свои логином и паролем), а страницы магазина отображаются только зарегистрированным пользователям после входа?

 

Дублирую вопрос с 

т.к. в моём случае после добавления этого кода возникает ошибка:

Цитата

Страница недоступна

Сайт ************ выполнил переадресацию слишком много раз.

 

  • Удалите файлы cookie..

 

ERR_TOO_MANY_REDIRECTS

подскажите пожалуйста как еще можно реализовать или как можно исправить данную ошибку?

Link to post
Share on other sites

Ну главную как и все остальные, можно сделать проверкой $this->customer->isLogged(); Если да, то показывается, если нет, то редирект на страницу входа

Link to post
Share on other sites

В /catalog/controller/common/header.php в начале файла после 

public function index() {

Добавить 

if(!$this->customer->isLogged()) {
	if(empty($this->request->get['route']) || $this->request->get['route'] != 'account/login') {
		$this->response->redirect($this->url->link('account/login', '', 'SSL'));
	}
}

Сохранить, обновить модификаторы.

Link to post
Share on other sites

  • 3 years later...

Спасибо за подсказку.

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

 

Для того чтобы добавить страницу регистрации и восстановления пароля в исключения нужно подправить код примерно так:

if(!$this->customer->isLogged()) {
	if(empty($this->request->get['route']) || ($this->request->get['route'] != 'account/login' && $this->request->get['route'] != 'account/register' && $this->request->get['route'] != 'account/forgotten')) {
		$this->response->redirect($this->url->link('account/login', '', 'SSL'));
	}
}
Link to post
Share on other sites

1 час назад, Easyme сказал:

Спасибо за подсказку.

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

 

Для того чтобы добавить страницу регистрации и восстановления пароля в исключения нужно подправить код примерно так:


if(!$this->customer->isLogged()) {
	if(empty($this->request->get['route']) || ($this->request->get['route'] != 'account/login' && $this->request->get['route'] != 'account/register' && $this->request->get['route'] != 'account/forgotten')) {
		$this->response->redirect($this->url->link('account/login', '', 'SSL'));
	}
}

Правильный код ниже. Добавлена еще функция сброса пароля.

if(!$this->customer->isLogged()) {
	if(empty($this->request->get['route']) || ($this->request->get['route'] != 'account/login' && $this->request->get['route'] != 'account/register' && $this->request->get['route'] != 'account/forgotten' && $this->request->get['route'] != 'account/reset')) {
		$this->response->redirect($this->url->link('account/login', '', 'SSL'));
	}
}
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.