Пишу API на PHP.
Есть файл functions.php с функциями и основной файл index.php, где эти функции вызываются.
Код файла index.php:
<?php
require_once './functions.php';
header('Access-Control-Allow-Origin: http://localhost:3000');
header('Access-Control-Allow-Headers: *');
header('Access-Control-Allow-Methods: *');
header('Content-type: application/json');
$conn = mysqli_connect("localhost", "root", "root", "vk_may20");
if($conn->connect_error) {
die("Ошибка соединения: " . $conn->connect_error);
}
$type = $_GET['q'];
$params = explode('/', $type);
$typeMain = $params[0];
if (count($params) > 1) {
$typeSecond = $params[1];
}
$method = $_SERVER['REQUEST_METHOD'];
if ($typeMain === 'products') {
switch ($method) {
case 'GET':
switch($typeSecond) {
case 'getAll':
getAllProducts($conn);
break;
}
break;
case 'POST':
$data = json_decode(file_get_contents('php://input'), true);
if (isset($typeSecond)) {
switch($typeSecond) {
case 'add':
addProduct($conn, $data);
break;
}
}
break;
}
}
Здесь я с помощью вот этого фрагмента кода:
$type = $_GET['q'];
$params = explode('/', $type);
$typeMain = $params[0];
if (count($params) > 1) {
$typeSecond = $params[1];
}
вытаскиваю тот кусок URI, который идёт после основного домена, после чего разбиваю его по слешу и полученные значения элементов массива присваиваю переменным, чтобы использовать их далее.
И здесь я получаю ошибку, которая вылезает при открытии в браузере того, что находится по адресу основного домена:
Undefined array key "q"
Если пытаюсь сделать запрос через Postman (Запрос на основной_домен/products/getAll), вижу это:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
Проблема в том, что такой способ получения адреса, идущего после основного домена, я применяю не впервые, и почему-то раньше всё работало, что странно, ведь это буквально скопированный из предыдущего (нормально работающего) проекта код. Может, я не замечаю какой-то ошибки?