PHP-фреймворк Slim-3 показывает ошибку «страница не найдена», даже если URL-адрес правильный?

#php #slim-3

#php #slim-3

Вопрос:

PHP-фреймворк Slim-3 показывает ошибку «страница не найдена», даже если URL-адрес правильный. Я пишу веб-сервис для приложения Android на php, используя slim3 framework. за несколько дней до этого все работало нормально.тот же код сейчас не работает.Он всегда возвращает страницу, которая не найдена.я думаю, что ошибка в index.php файл, но я не могу в этом разобраться.

Я перепробовал почти все, что мог, чтобы решить эту проблему. Я изменил структуру каталогов и файл .htaccess, но все еще не решен.я использую сервер xampp.

 index.php

<?php

use PsrHttpMessageServerRequestInterface as Request;
use PsrHttpMessageResponseInterface as Response;


require '../ChickenShop/vendor/autoload.php';
require_once '../ChickenShop/public/includes/DbOperations.php';


//Creating a new app with the config to show errors
 $app = new SlimApp([
    'settings' => [
        'displayErrorDetails' => true
    ]
]);


//registering a new user
$app->post('/register', function (Request $request, Response $response) {
    if (isTheseParametersAvailable(array('name', 'email', 'password', 'phone','address'))) {
        $requestData = $request->getParsedBody();
        $name = $requestData['name'];
        $email = $requestData['email'];
        $password = $requestData['password'];
        $phone = $requestData['phone'];
        $address = $requestData['address'];
        $db = new DbOperations();
        $responseData = array();

        $result = $db->registerUser($name, $email, $password, $phone, $address);

        if ($result == USER_CREATED) {
            $responseData['error'] = false;
            $responseData['message'] = 'Registered successfully';
            $responseData['user'] = $db->getUserByEmail($email);
        } elseif ($result == USER_CREATION_FAILED) {
            $responseData['error'] = true;
            $responseData['message'] = 'Some error occurred';
        } elseif ($result == USER_EXIST) {
            $responseData['error'] = true;
            $responseData['message'] = 'This email already exist, please login';
        }

        $response->getBody()->write(json_encode($responseData));
    }
});


//user login route
$app->post('/login', function (Request $request, Response $response) {
    if (isTheseParametersAvailable(array('email', 'password'))) {
        $requestData = $request->getParsedBody();
        $email = $requestData['email'];
        $password = $requestData['password'];

        $db = new DbOperations();

        $responseData = array();

        if ($db->userLogin($email, $password)) {
            $responseData['error'] = false;
            $responseData['user'] = $db->getUserByEmail($email);
        } else {
            $responseData['error'] = true;
            $responseData['message'] = 'Invalid email or password';
        }

        $response->getBody()->write(json_encode($responseData));
    }
});

//getting all products
$app->get('/products', function (Request $request, Response $response) {
    $db = new DbOperations();
    $products = $db->getAllProducts();
    $response->getBody()->write(json_encode(array("products" => $products)));
});

//function to check parameters
function isTheseParametersAvailable($required_fields)
{
    $error = false;
    $error_fields = "";
    $request_params = $_REQUEST;

    foreach ($required_fields as $field) {
        if (!isset($request_params[$field]) || strlen(trim($request_params[$field])) <= 0) {
            $error = true;
            $error_fields .= $field . ', ';
        }
    }

    if ($error) {
        $response = array();
        $response["error"] = true;
        $response["message"] = 'Required field(s) ' . substr($error_fields, 0, -2) . ' is missing or empty';
        echo json_encode($response);
        return false;
    }
    return true;
}

// Run app
$app->run();

  

URL, к которому я пытался получить доступ:

http://localhost/ChickenShop/public/

 Content of .htaccess file:



        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^ index.php [QSA,L]
  

Структура каталога проекта

я ожидал, что это будет работать нормально.

Комментарии:

1. Кто-нибудь здесь жив … : (

2. Ваш вопрос не предоставляет четкой информации. Например, к какому URL-адресу вы пытались получить доступ, к содержимому вашего .htaccess, к структурам каталогов вашего проекта и т.д.

3. вопрос отредактирован. теперь предоставляется почти каждая информация.