Проблема в том; если человек нажимает ссылку на статью, событие, публикацию и т. д. на моем сайте, параметры 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» и без нее, надеясь, что это поможет. Каждая страница работает совершенно нормально при навигации по сайту, только при нажатии на ссылку из внешнего места или если страница остается открытой в течение некоторого времени и страница обновляется. Я знаю, что это, скорее всего, какое-то кэширование или перенаправление, но понятия не имею, откуда это взялось.
Кроме того, дайте мне знать, если я делаю что-то не так, вообще говоря. Я изучаю различные способы отображения уникального контента на каждой странице, и если это неправильно, дайте мне знать.
Буду признателен за поддержку, спасибо!
«Однако после загрузки он меняет содержимое URL-адреса» — URL-адрес не может измениться сам по себе. Если пользователь не щелкает где-либо, чтобы активировать навигацию, то, вероятно, это делает какой-то JavaScript. (Или элемент метаобновления, хотя это, вероятно, менее вероятно.)
Приносим извинения за оплошность. Веб-хостинг, который я использую, на самом деле использует «?i=" для какой-то защиты; в результате получается "index.php?i=1". Он продолжал переписывать URL-адрес неожиданным образом.
С тех пор я переписал все свои буквы «i» на «l», чтобы свести ширину символов к минимуму, и, похоже, это сработало. URL-адрес теперь отображается при первой загрузке; "index.php?l=домашняя страница&i=1". За последнюю неделю тестирования у меня не было проблем.
~ Спасибо за ваши комментарии, я ценю их.
Первая загрузка делает как вы говорите (замена параметров и т.д.). Однако последующие загрузки работают как положено. Проверьте свой код, чтобы убедиться, что вы не выполняете перенаправление, потому что сеанс или файл cookie не установлены.