URLENCODING в проблеме URL - PullRequest
       1

URLENCODING в проблеме URL

0 голосов
/ 07 сентября 2011

Я пользуюсь сервисом, где примерно каждый час их сервер связывается с моим, вот так:

/check.php?id=1&name=anonyme&country=us

Поэтому я собираю информацию вот так:

$id = @$_GET['id'];
$name = @$_GET['name'];
$country = @$_GET['country'];

Отлично,все работает просто отлично.Но когда в имени есть пробел, скажем:

/check.php?id=1&name=MR Anonymous&country=us

Тогда в php я могу получить только идентификатор и первую часть имени, которая называется «MR».И я не могу получить другие значения (страна и т. Д.), Они остаются пустыми из-за этого места.

Я связался с компанией, которая отправляет эту информацию, я сказал им, может быть, это их проблема, и они сказали,нет, мне просто нужно URLENCODE мой URL ..

Я все еще думаю, что это их проблема, а не моя, потому что, когда я вижу журналы Apache, я вижу пробел в их URL, они должны исправить это.(Потому что, когда я использую один и тот же URL в любом браузере, это пространство превращается в% 20, с компанией это не так)

Это моя проблема?Или их проблема?Как это исправить, если он мой?

Ответы [ 3 ]

1 голос
/ 07 сентября 2011

Я думаю, что им (другому серверу) потребуется urlencode() данные перед отправкой на ваш сервер, и тогда вы будете urldecode() это.

1 голос
/ 07 сентября 2011

Если они отправляют эти запросы на ваш сервер (и вы не можете контролировать эти запросы), то это определенно не ваша вина.

Пробелы в URI запрещены.Apache разрешает им , но PHP запутывается и принимает роль после пробела в качестве протокола.

Вы можете решить эту проблему, добавив $_SERVER['SERVER_PROTOCOL'] к $_SERVER['QUERY_STRING'], удалив все после последний пробел и последующий анализ этого URL (см. parse_url и parse_str).Лучшим, однако, будет то, что они исправят свои запросы.

1 голос
/ 07 сентября 2011

В URI недопустимые пробелы не допускаются (даже если некоторые клиенты и некоторые серверы могут восстанавливать ошибки при обращении к ним).

Вам необходимо urlencode данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...