Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Переадресовывать на главную если уже авторизован?

Переадресовывать на главную если уже авторизован?


     23.06.2016    Общие вопросы по PHP, Хаки    2067

вопрос
Здравствуйте

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

1. на странице регистрации (Вы уже авторизованы на сайте под зарегистрированным аккаунтом.)
2. на странице восстановления пароля (Вы успешно авторизованы на сайте.)

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

за ранее благодарю.

Ответил: Alexey.P


в шаблоне вставляем
[not-group=5]<script type="text/javascript">location.replace("/")</script>[/not-group]

13 комментариев

develop
Юзер

develop - 23 июня 2016 16:36 -

Хотелось бы решить вопрос правильно а не через скрипты

Alexey.P
Юзер

Alexey.P - 23 июня 2016 16:42 -

develop, немного поразмыслил тут, все равно более легкого решения не вижу. Чем Вас не устраивает данный метод? И что в Вашем понятии "правильно" ? Скрипт будет подгружаться исключительно только для авторизированого пользователя - который перейдет по ссылке (авторизации/регистрации) , если данные ссылки после авторизации скрываются - то попасть на них можно будет только напрямую через ввод url - что мало кому нужно.

develop
Юзер

develop - 23 июня 2016 16:45 -

Можно ли решить проблему с помощью конструкции @header("Location: /"); ?

develop
Юзер

develop - 23 июня 2016 16:49 -

Alexey.P,
Вот я реализовал так...
в файле engine/modules/lostpassword.php заменил
msgbox( $lang['all_info'], $lang['user_logged'] );

на
@header("Location: /");
    die();


Все работает, но правильно ли я сделал?

Alexey.P
Юзер

Alexey.P - 23 июня 2016 17:00 -

develop, а Вы мсье извращенец однако :) Ковырять двиг ради того что можно сделать 1 строчкой в шаблоне (с незаметной нагрузкой). В любом случае пусть поможет с вопросом "о правильности" кто-нибудь другой - Вы уж извините, в пыхе не смыслю и не лезу туда без надобности.

develop
Юзер

develop - 23 июня 2016 16:57 -

И заметил что на dle-faq.ru если перейти по ссылке https://dle-faq.ru/index.php?do=register будучи авторизованным на сайте, все равно показывает форму регистрации)

Alexey.P
Юзер

Alexey.P - 23 июня 2016 17:13 -

develop, есть такое, и зарегистрироваться вновь можно - сразу попадая на новый аккаунт. Только это не кому не нужно - поэтому 1) и оставлено 2) не было замечено .

develop
Юзер

develop - 23 июня 2016 17:17 -

Alexey.P,
Вы так и не ответили, правильно ли я решил проблему?

ПафНутиЙ
Админ

ПафНутиЙ - 23 июня 2016 20:16 -

Нет. Правильное решение, не ломающее обновления DLE приведено в ответе.

Каков вопрос - таков и ответ. Просто помните об этом.

develop
Юзер

develop - 23 июня 2016 22:15 -

ПафНутиЙ,
Не совсем понимаю Ваш комментарий
что значит (не ломающее обновления DLE)?

ПафНутиЙ
Админ

ПафНутиЙ - 23 июня 2016 22:30 -

Цитата: develop
Вот я реализовал так...
в файле engine/modules/lostpassword.php заменил
msgbox( $lang['all_info'], $lang['user_logged'] );

на
@header("Location: /");
    die();


Все работает, но правильно ли я сделал?


Как долго этот код будет работать?
Через год выйдет новая версия DLE, вы вспомните что делали для редиректа?

Каков вопрос - таков и ответ. Просто помните об этом.

develop
Юзер

develop - 23 июня 2016 22:57 -

ПафНутиЙ,
Дело в том что я и не планирую обновлять версию, так как уже очень много изменений сделаны в коде

nowheremany
Эксперт

nowheremany - 24 июня 2016 14:03 -

Ответ верный.
Смысла делать нет в PHP файлах, т. к. это совершенно не влияет на ботов. Если вы хотите что бы авторизованный юзер не видел страницу, до редиректа, то достаточно в head прописать

Благодарность принимаю тут Связь

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх