Переменная URL GET имеет необходимый символ хэша

Я создаю ссылку url, и одна из переменных GET имеет в ней символ хэша. Веб-страница не будет считывать данные после метки хэша. Я не могу принять его по двум причинам.

  1. База данных веб-сайта (не созданная мной каким-либо образом) имеет хеш-символы для различных элементов данных. У меня нет разрешения на редактирование базы данных. И я уверен, что если бы я сделал что-то другое, это сломалось бы.
  2. Я не могу редактировать веб-страницу URL-адреса. Он был разработан кем-то еще и снова, у меня нет никаких прав на его редактирование.

URL выглядит примерно так:

www.example.com?datapoint1=abc&datapoint2=#def 

где требуется #def, поскольку веб-страница будет искать базу данных для этой точной строки. Если бы я мог редактировать веб-страницу php, я мог бы поставить хэш в случае необходимости, но, как я уже сказал, я этого не делаю.

Объяснить немного дальше. Пользователь собирает данные (в приложении Java), и данные помещаются в длинный URL-адрес (например, пример выше, но более сложный) и автоматически отправляются по электронной почте конкретному пользователю с этой ссылкой. Второй пользователь нажимает на ссылку и делает все, что он / она должен делать.

Я думаю, что единственный способ – отредактировать php или javascript веб-страницы. Любые идеи были бы хорошы.

Вам придется кодировать # как %23 , поэтому ваш URL-адрес будет выглядеть следующим образом:

 www.example.com?datapoint1=abc&datapoint2=%23def 

Чтобы упростить работу, вы можете использовать встроенную функцию urlencode PHP: http://php.net/urlencode

Вам нужно избежать хеша в URL-адресе, если вы не хотите, чтобы он стал хеш-частью. Символ urlencoded для # равен %23 .

Вы можете использовать urlencode() ( php.net doc ) в php для удаления значений в php.

Вам также может понравиться http_build_query_string (), который может генерировать запрос url и правильно закодировать значения из массива значений ключей. Ознакомьтесь с примерами php.net для получения дополнительной информации.

Если вы не можете получить доступ к PHP, но можете использовать JS (что является субоптимальным), вы можете создать небольшой скрипт, который перезаписывает URL-адрес, если он видит хеш-файл (будет работать только в том случае, если хеш никогда не присутствует)

 if(window.location.hash) { // Hash detected, lets rebuild the url window.location.href = window.location.href + '%23' + window.location.hash.slice(1); }