Как получить URL-путь в индексном файле PHP? - PullRequest
0 голосов
/ 11 июля 2020

Я использую cpanel и php для создания своего веб-сайта.

как я могу получить идентификатор из url http://example.com/id

проблема в том, что когда я пытаюсь получить url , я перенаправляюсь в файл с ошибкой id имя 404!

, и я не могу получить путь на странице index.php?

, например, когда я пытаюсь получить этот URL

http://example.com/01OWUY

Я хочу получить 01OWUY с кодом

$link .= $_SERVER['REQUEST_URI']; 

, но выхожу на ошибку 404

обновление:

у каждого пользователя есть идентификатор

с этим идентификатором он может видеть свою информацию

например, пользователь с идентификатором 01OWUY может видеть свою информацию из базы данных, например ->

<?php

require 'config.php';

//Database connection
$conn = mysqli_connect(SERVERNAME, USERNAME, PASSWORD, DBNAME);

$user = handle_user($conn, $_SERVER['REQUEST_URI'])
?>

и функция такая ->

// Return true if link is active
function handle_user($conn, $linkId)
{
    $sql = "SELECT *FROM users WHERE link_id = '" . $linkId . "'";
    $result = $conn->query($sql);

    // get user data from db
    if ($result->num_rows > 0) {
        return $result;
    }
    return false;
}

, но я получаю ошибку 404 !!!

1 Ответ

1 голос
/ 11 июля 2020

Вам нужно будет загрузить index. php, если файл не существует.

это очень распространенная практика в php фреймворках, таких как Laravel.

.htaccess file

# Not for real file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

, чтобы это работало, у вас должен быть mod_rewrite включен

Тогда у вас будут данные, доступные в вашем index. php файле. вам все равно нужно дезинфицировать вход $_SERVER["REQUEST_URI"]

Рекомендация для облегченной структуры включает функции маршрутизации :

Люмен

https://lumen.laravel.com/

...