И так, есть 3 файла:
index.php,
a.php ,
b.php,
в файле (index.php) есть 3 функции, 2 из которих инклудят файлы (a.php) и (b.php), их можно вызвать по ID в адресной строке. Третяя функцыя: default - тоесть если id не задан то по умолчанию инклудится файл (a.php).
Все три файла лежат в одной "родительской" папке. По идее Вы заходите на сайт (автоматом попадаете в index.php) где есть две ссылки:
/index.php?id=a -инклудится a.php ;
/index.php?id=b -инклудится b.php ;
в обоих случаях переходя по ссылкам вы остаетесь в файле index.php. Но если в адресной строке ввести:
localhost/a.php или localhost/b.php
Тут вы уже не будете проходить в файле index.php
Внимание вопрос: Какую проверку (или каким способом) нужно прописать в файлах (a.php и b.php) чтобы единственным способом их просмотреть был инклуд через id, а если ктото попробует просмотреть файл на прямую (без index.php) чтоб оба эти файла выдавали ошыбку.?
В WordPress, например, такое прямое обращение затыкают объявлением некой константы в index.php. В файле a.php проверяем, есть константа или нет. Нет - на выход.
Файлы a.php и b.php начинаем с кода
<?php
if ( ! defined( 'INDEX' ) ) {
die( '-1' );
}
if(isset($_GET['id'])) {
//код страницы
}
Так?
Либо можно более конкретно
if($_GET['id']==имя_файла_без_расширения) {
//код страницы
}
Это должно быть в a.php
и b.php
Можно на уровне сервера запретить доступ к файлам к которым доступа быть не должно
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
<Files /index.php>
Order Allow,Deny
Allow from all
Ну или писать роуты для доступа к определенным контроллерам.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте мне нужно достать эти параметры(на скрине) как правильно это сделать ?