Я создаю ссылку url, и одна из переменных GET имеет в ней символ хэша. Веб-страница не будет считывать данные после метки хэша. Я не могу принять его по двум причинам.
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); }