Здравствуйте! Есть у меня регистрация пользователей PHP+MYSQL как мне сделать, если клиент не прошел авторизацию и открыл страницу https://профи-продвижение.рф/acount/index.php его перебросило на страницу авторизации ? Спасибо большое
Самый тупой и простой способ, после проверки авторизации(не знаю как у тебя через куки например), ставить хэдер: header("Location: https://example.com/login");
Короче там адрес куда перенаправить бразуер. Важно только чтобы не было никакого другого вывода, либо тегов до выполнения этой команды. Короче говоря важно чтобы передача хэдера в бразуер юзеру шло первой.
kiril9011, в смысле? Советовать что-то вам сложно, так как нужно погружаться во всю архитектуру вашего приложения.
Грубо говоря у вас должен быть механизм который проверяет атворизацию и пускает юзера либо редиректит на логин. Грубо говоря вам нужно реализовать свой Middleware для этого. Это типа прослойки которая выполняется до (хотя есть и случае когда после) отдачи данных или чего еще пользователю, возможно меняя данные перед их показом. Аутентификация это один из случаев когда нужно использовать этот подход.
kiril9011, так у тебя вордпрес? Там кстати есть своя функция auth_redirect, можешь посмотреть как они ее реализовали, со всеми проверками (через поиск найди auth_redirect).
if (!isset($_SESSION['auth']) || $_SESSION['auth'] != true)
{
# если нет -> перекидываем его на форму авторизации
header("Location: https://профи-продижение.рф/login.php");
exit();
}
if (!isset($_SESSION['auth']) || $_SESSION['auth'] != true)
{
# если нет -> перекидываем его на форму авторизации
header("Location: https://профи-продижение.рф/login.php");
exit();
}
что конкретно не работает? Проверьте переменные сессии, проверьте не выводится ли что-либо перед вызовом переадресации, найдите в каком месте проблема, потом можно будет говорить о решении.
Т.е. если зарегистрирован - перебрасывает. А можно ведь код index.php увидеть ?
Потому как странно это - если там 5 строчек, то как же определяется - зарегистрирован или нет.
Ну или попробуйте первый - его хоть на стороне клиента можно увидеть.