Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Переадресовывать на главную если уже авторизован?

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


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

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

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

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

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

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

Ответил: Alexey.P


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

Комментарии пользователей (13)

develop
36 | 6

develop - 23 июня 2016 16:36 - Юзер

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

Alexey.P
6 | 1

Alexey.P - 23 июня 2016 16:42 - Юзер

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

develop
36 | 6

develop - 23 июня 2016 16:45 - Юзер

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

develop
36 | 6

develop - 23 июня 2016 16:49 - Юзер

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

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


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

Alexey.P
6 | 1

Alexey.P - 23 июня 2016 17:00 - Юзер

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

develop
36 | 6

develop - 23 июня 2016 16:57 - Юзер

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

Alexey.P
6 | 1

Alexey.P - 23 июня 2016 17:13 - Юзер

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

develop
36 | 6

develop - 23 июня 2016 17:17 - Юзер

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

ПафНутиЙ
1065

3396 | 2434

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

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

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

develop
36 | 6

develop - 23 июня 2016 22:15 - Юзер

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

ПафНутиЙ
1065

3396 | 2434

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

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

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


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


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

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

develop
36 | 6

develop - 23 июня 2016 22:57 - Юзер

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

nowheremany
192

1659 | 1292

nowheremany - 24 июня 2016 14:03 - Эксперт

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

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

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

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