Как вызвать аяксом функцию внутри РНР-класса с запрещённым прямым доступом

212
03 января 2018, 20:26

Есть РНР-файл с классом и функцией внутри класса, который подключается к файлу с главным классом:

if(defined('VERSION'))
    define('version', VERSION);
    defined('version') OR die('Direct access is forbidden!');
class addClass extends mainClass {
    private function some_method() {
        return 'Result';
    }
}

И есть Аякс-запрос на чистом Джаваскрипте:

var request = new XMLHttpRequest();
var params = "filter=true";
request.open('POST', '/addclass.php', true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.onload = function(data) {
    console.log(this.responseText);
}
request.send(params);

Вопрос: как получить аяксом ответ функции some_method() ?

Если вставить

if($_REQUEST['filter'] == true) {
   echo addClass::some_method();
}

в самом начале файла addclass.php еще перед class addClass {} (при этом не важно перед if(defined('VERSION')) или после), тогда в консоле получаю ошибку

POST http://mydomain.com/addclass.php 500 (Internal Server Error)

А если вставить эти строки после class addClass {} тогда в качестве аякс-ответа получаю только

Direct access is forbidden!

READ ALSO
Как добавить нужно условие MySQL?

Как добавить нужно условие MySQL?

Есть поиск на сайте по тегам:

200
Как получить данные от пользователя php

Как получить данные от пользователя php

Можно ли получить данные от пользователя, не используя html формы? Благодарю за ответы

194