Как узнать откуда идет запрос PHP

238
23 мая 2017, 04:31

И так, есть 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) чтоб оба эти файла выдавали ошыбку.?

Answer 1

В WordPress, например, такое прямое обращение затыкают объявлением некой константы в index.php. В файле a.php проверяем, есть константа или нет. Нет - на выход.

Файлы a.php и b.php начинаем с кода

<?php
if ( ! defined( 'INDEX' ) ) {
    die( '-1' );
}
Answer 2
if(isset($_GET['id'])) {
    //код страницы
}

Так?

Либо можно более конкретно

if($_GET['id']==имя_файла_без_расширения) {
    //код страницы
}

Это должно быть в a.php и b.php

Answer 3

Можно на уровне сервера запретить доступ к файлам к которым доступа быть не должно

Order Deny,Allow
Deny from all
Allow from 127.0.0.1
<Files /index.php>
Order Allow,Deny
Allow from all

Ну или писать роуты для доступа к определенным контроллерам.

READ ALSO
Достать параметры из массива php, json_decode

Достать параметры из массива php, json_decode

Здравствуйте мне нужно достать эти параметры(на скрине) как правильно это сделать ?

198
Авторизация пользователя Facebook вручную

Авторизация пользователя Facebook вручную

Отправляю первоначальный запрос

289
Сохранить страницу в html

Сохранить страницу в html

Нужно сохранить страницу по url в html-файлСохраняю так:

281
Вывод записей с помощью get_queried_object

Вывод записей с помощью get_queried_object

Если в шаблоне taxonomyphp прописать так:

212