@WebDeveloper2016

Как сделать GET запрос?

Есть сайт test, в корне есть файл test.php, в нем есть функция test с параметром a.

Файл выглядит так:
<?php

function test($a) {
	echo $a;
}


Почему мне никак не удается сделать к нему GET запрос вызывающий эту функцию??? Делаю так: "test/test.php/test?a=123" - ничего. Пробовал еще так: "test/test.php?test?a=123" - тоже ничего вообще. При этом запросы возвращают код 200 - т.е. успешно. Но функция не вызывается. В нее не заходит в отладчике (xdebug) и не выводится эхом переменная.

В общем использовав ниже приведенный код и гугл сделал такое решение:
<?php

$action = $_GET['action'];
unset($_GET['action']);
$refFunc = new ReflectionFunction($action);
$refFunc->invokeArgs($_GET);

function test($a, $b) {
	echo $a + $b;
}

test/test.php?action=test&a=123&b=321
444
Это конечно не роутинг, но... В общем завтра будет возможность спрошу у создателя того самописного CMS не предусмотрел ли он в нем роутинг (благо это как раз мой начальник :D). Если нет буду юзать это...
  • Вопрос задан
  • 698 просмотров
Пригласить эксперта
Ответы на вопрос 3
Tchort
@Tchort
Свободный поэт
в файле вызов функции сделайте
<?
test($_GET['a']);
?>
Ответ написан
alsopub
@alsopub
Что-то не припомню чтобы в php когда-то был такой способ вызова функций через GET запрос.
Вот доступ к параметрам типа test.php?a=123 когда-то был возможен через $a, сейчас для этого лучше использовать $_GET{'a'} (а еще лучше - потом проверить переданное значение на допустимость).
Если вы хотите вызывать несколько разных функций - вызывайте test.php?func=test&param=123 а в коде уже сделайте if ($_GET{'func'} == 'test') { test($_GET{'param'}); } и так далее в этом духе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы