#php #get
#php #получить
Вопрос:
У меня есть доступ к серверу, который запускает PHP-скрипт для анализа данных, отправленных из приложения, к которому у меня нет доступа. Данные отправляются через HTTP GET, и это не конфиденциальные данные. Проблема в том, что иногда пользователь вставляет «недопустимые» символы, такие как «#», и это полностью нарушает синтаксический анализ PHP get. Например: если сервер получает «input.php?name=John#Doeamp;email=test@gmail.com «, все, что анализируется, это name=»John». Остальное потеряно. Мой план состоит в том, чтобы «отфильтровать» неверные символы из входных данных до того, как будет проанализирован массив GET. Я пытался использовать $_SERVER[‘QUERY_STRING’] и $_SERVER[‘REQUEST_URI’], но ничего не получилось. Мой вопрос: возможно ли использовать PHP для фильтрации символов из «необработанных» строковых данных, полученных сервером? Спасибо
Комментарии:
1. Нет, вам нужно
urlencode
получить данные, прежде чем помещать их в строку get URL.2. Это обрабатывается веб-сервером, а не PHP.
3. Если это форма использования
method="POST"
, которая будет кодировать данные для вас.4. @AbraCadaver проблема в том, что у меня нет доступа к приложению, которое отправляет данные. Я не могу закодировать строку до отправки данных.
5. Тогда вы ничего не можете сделать (кроме поиска или написания собственного расширения для веб-сервера). Определенные символы имеют особое значение в URL-адресе и должны быть закодированы перед отправкой на веб-сервер. т. Е. Все, что после
#
является «фрагментом» и используется только браузером, а не отправляется на веб-сервер, поэтомуDoeamp;email=test@gmail.com
никогда не будет доступно.