Почему строка запроса URL-адреса меняется при первой загрузке или страница открывается некоторое время?

Проблема в том; если человек нажимает ссылку на статью, событие, публикацию и т. д. на моем сайте, параметры URL-адреса (после «content?data=") ломаются. Я использую Google Chrome в качестве основного браузера во время тестирования и InifinityFree в качестве веб-хостинга.

Например, человек в WhatsApp или другом месте, кроме моего сайта, может нажать ссылку. Затем ссылка на какое-то время переходит на веб-страницу правильно. URL-адрес отображается в строке URL-адреса во время загрузки страницы. Однако после загрузки он меняет содержимое URL-адреса на беспорядок из 0%0 символов. Судя по исследованиям, это, очевидно, «нулевые» персонажи. Почему это происходит?

Ссылка нажата: https://clarity.rf.gd/i?i=test-invite

Ссылка открылась: https://clarity.rf.gd/i?i= 0%00%00%00%00%00%00%00%00

Для дальнейшего уточнения относительно ссылки параметры в конце верны. Файл называется «i.php», а не «invitation.php», а данные «GET» — «i», а не «url», чтобы минимизировать длину URL-адреса (https://clarity.rf.gd /inivtation?url=test-invite). Кроме того, игнорируйте одиночный пробел между «...i=" и «0%0...», ввод Stack Overflow приводит к исчезновению конечных параметров.

Вот основной код страницы:

я.php:

$page_url = urlencode($_GET['i']);

if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['i'])) {
    $myEvent = $mysqli->prepare('SELECT * FROM event WHERE url=?');
    $myEvent->bind_param('s', $page_url);

    if ($myEvent->execute()) {
        $result = $myEvent->get_result();
        if ($result->num_rows == 1) {
            $row = $result->fetch_assoc();
            // Fetch Primary Database Data
            $id = $row['id'];
            $account_id = $row['account_id'];
            $url = $row['url'];
            // Fetch Other Database Data
            $title = $row['title'];
            $desc = $row['description'];
            $date_time_start = $row['date_time_start'];
            $date_time_end = $row['date_time_end'];
            $location = $row['location'];
            $locationPin = $row['locationPin'];
            $colour = $row['bg_colour'];
            $image = $row['bg_image'];
        }
    }
    $myEvent->close();
}

Я пробовал использовать функцию «urlencode» и без нее, надеясь, что это поможет. Каждая страница работает совершенно нормально при навигации по сайту, только при нажатии на ссылку из внешнего места или если страница остается открытой в течение некоторого времени и страница обновляется. Я знаю, что это, скорее всего, какое-то кэширование или перенаправление, но понятия не имею, откуда это взялось.

Кроме того, дайте мне знать, если я делаю что-то не так, вообще говоря. Я изучаю различные способы отображения уникального контента на каждой странице, и если это неправильно, дайте мне знать.

Буду признателен за поддержку, спасибо!

Первая загрузка делает как вы говорите (замена параметров и т.д.). Однако последующие загрузки работают как положено. Проверьте свой код, чтобы убедиться, что вы не выполняете перенаправление, потому что сеанс или файл cookie не установлены.

FiddlingAway 06.04.2024 12:46

«Однако после загрузки он меняет содержимое URL-адреса» — URL-адрес не может измениться сам по себе. Если пользователь не щелкает где-либо, чтобы активировать навигацию, то, вероятно, это делает какой-то JavaScript. (Или элемент метаобновления, хотя это, вероятно, менее вероятно.)

CBroe 08.04.2024 09:22
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Приносим извинения за оплошность. Веб-хостинг, который я использую, на самом деле использует «?i=" для какой-то защиты; в результате получается "index.php?i=1". Он продолжал переписывать URL-адрес неожиданным образом.

С тех пор я переписал все свои буквы «i» на «l», чтобы свести ширину символов к минимуму, и, похоже, это сработало. URL-адрес теперь отображается при первой загрузке; "index.php?l=домашняя страница&i=1". За последнюю неделю тестирования у меня не было проблем.

~ Спасибо за ваши комментарии, я ценю их.

Другие вопросы по теме