Этот вопрос закрыт для ответов, так как повторяет вопрос PHP единая точка входа?
Nickname-no
@Nickname-no

PHP Единая точка входа?

В корне сайта есть 3 папки
all - доступна всем
guest - доступно только не авторизированным
auth - доступна только авторизованным

Также в корне есть скрипт обработчик
index.php В нем такой код
d4393a5a1a0a4a9db096a597cbfddaa9.pngВ корне
Всё бы хорошо но не могу использовать $_GET
При переходе по ссылке mysite.ru/login/?key=1
Меня бросает на 404
Как исправить?

if ($_SERVER['REQUEST_URI'] == '/') 
	$page = 'home'; 
	else
	$page = substr($_SERVER['REQUEST_URI'], 1); 
	if (file_exists("all/$page.php")) 
	include "all/$page.php"; 
	else if ($_SESSION['logged_user'] and file_exists("auth/$page.php"))
	include "auth/$page.php";
	else if (!$_SESSION['logged_user'] and file_exists("guest/$page.php"))
	include "guest/$page.php";
	else
	header('Location: /404');
  • Вопрос задан
  • 2180 просмотров
Ответы на вопрос 2
@ugodrus
Ничего удивительного. Вы передаете переменную через ГЕТ key=1
Внутри PHP $_SERVER['REQUEST_URI'] = /login/?key=1
Далее по коду
$page = 'login/?key=1'; 
if (file_exists("all/login/?key=1.php")) 
  include "all/login/?key=1.php"; 
  else if ($_SESSION['logged_user'] and file_exists("auth/login/?key=1.php"))
  include "auth/login/?key=1.php";
  else if (!$_SESSION['logged_user'] and file_exists("guest/login/?key=1.php"))
  include "guest/login/?key=1.php";
  else
  header('Location: /404');

Не думаю что у вас в auth/login/ найдется файл ?key=1.php
Не знаю с каких времён у вас такая дремучая конструкция. Такие городулины со времени похорон 4.3 не практиковал и не встречал.
Вердикт один - либо подбирайте другую переменную с корректным значением $page. Либо чистите эту. Убирая лишнее и анализируя подходит ли значение после фильтрации.
Ответ написан
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
PHP Start | Практика: Урок 1. Реализация MVC
https://www.youtube.com/watch?v=ba3M3_Myrqg&index=...
там тебе расскажут и покажут как реализовать то что ты хочешь
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы