DomenForum.net

DomenForum.net (https://domenforum.net/index.php)
-   Программирование (https://domenforum.net/forumdisplay.php?f=26)
-   -   Определить наличие /#/ в адресной строке (https://domenforum.net/showthread.php?t=232789)

Port_Artur 11.04.2024 19:23

Определить наличие /#/ в адресной строке
 
Как определить с помощью php, что в адресной строке есть знак #

https://site/cаtalog/#/32/



Подскажите кто знает?

estic 11.04.2024 19:55

Никак. Фрагмент (якорь) не передается на сервер.

добавлено через 1 минуту
Можно на JS переводить в куку и т.п. Но я не вижу в этом смысла.

Port_Artur 11.04.2024 22:18

У меня просто при запуске одного стороннего JS скрипта, на новой странице, используется знак /#/, хотел это как-то отследить.

alex8 12.04.2024 13:23

Здесь нужна смесь JavaScript и PHP.

На страницу, где нужно проверить наличие #, нужно добавить примерно такой код:

<script>
document.addEventListener('DOMContentLoaded', function() {
let currentUrl = window.location.href;
let position = currentUrl.search('#');
if (position == -1) {
let data = JSON.stringify({"result": "Symbol # Not Found"});
} else {
let data = JSON.stringify({"result": "Symbol # Found"});
}
let xhr = new XMLHttpRequest();
let url = "url"; // url to PHP file
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
let json = JSON.parse(xhr.responseText);
console.log(json.email + ", " + json.password);
}
};
xhr.send(data);
}, false);
</script>

После чего нужно создать php файл, который будет получать информацию о наличии символа # в адресной строке.

Этот php файл будет получать $_POST, который ему отравит JavaScript.

Ссылку на это php нужно добавить в вышеуказанный код.

добавлено через 11 минут
Строку
console.log(json.email + ", " + json.password);
в коде нужно заменить на свои значение - на то, что возвращает PHP в виде json.
Далее в js скрипте, проанализировав полученный json, можно делать необходимые действия с текущей страницей.

Richman 12.04.2024 15:28

Спросил у ИИ Copilot ради интереса. Интересно насколько ИИ правильно ответил? Я мало разбираюсь в кодировании.

Вот ответ AI:

Цитата:

Как я уже упоминал, PHP не может напрямую отследить знак # в URL, поскольку он обрабатывается на стороне клиента. Однако, вы можете использовать JavaScript для получения этой информации и затем отправить ее на сервер с помощью AJAX. Вот пример такого кода:

JavaScript
Код:

// Получаем фрагмент URL после знака #
var hash = window.location.hash;

// Отправляем AJAX-запрос на сервер
$.ajax({
    url: 'your_server_script.php',
    type: 'POST',
    data: {hash: hash},
    success: function(data) {
        // Обрабатываем ответ сервера
    }
});


На стороне сервера вы можете использовать следующий PHP-код для получения данных из AJAX-запроса:


PHP код:

if(isset($_POST['hash'])) {
    
$hash $_POST['hash'];
    
// Теперь вы можете использовать $hash для своих нужд


Пожалуйста, учтите, что вам потребуется библиотека jQuery для работы с AJAX в данном примере. Если вы не хотите использовать jQuery, вы можете выполнить AJAX-запрос с помощью чистого JavaScript. Этот код предназначен для иллюстрации и может потребовать дополнительной настройки в зависимости от вашего конкретного приложения и среды.

alex8 12.04.2024 16:07

Цитата:

Сообщение от Richman (Сообщение 1556109)
Спросил у ИИ Copilot ради интереса. Интересно насколько ИИ правильно ответил? Я мало разбираюсь в кодировании.

В принципе правильный ответ). Просто уже сейчас большинство программистов не используют jQuery.

Вообщем еще лет 10 развития ИИ и всех программистов ждет завод)))

Port_Artur 12.04.2024 18:09

Спасибо всем за помощь.

xalar 30.04.2024 23:34

Цитата:

Вообщем еще лет 10 развития ИИ и всех программистов ждет завод)))
Это вряд ли. Потому что промты будут писать как раз программисты будущего. И я бы на вашем месте так не радовался, потому что ИИ отберет профессии у многих.
И 10 лет много, уже chatGPT выдает практически готовый код, немного напильника и все работает.


Текущее время: 01:25. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Техническая поддержка — DevArt.PRO. Перевод: zCarot.