PHP urlencode поле URL-адреса - PullRequest
0 голосов
/ 10 января 2019

Я использую curl для вызова API POST и передаю 15 полей сообщений, одно из которых является фактическим URL-адресом сайта. Например

https://www.test.com? URL = https://www.myurl.com;&Name=John

Использование urlencode преобразует символы в поле публикации URL, и API, получающий вызов POST, не распознает его как фактический URL. Есть ли способ сохранить строку URL как есть при отправке?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Вы можете использовать встроенный метод php для декодирования закодированных данных url.

$actualUrl = urldecode ($_GET ['url']);
0 голосов
/ 10 января 2019

Если вы используете GET аргументы запроса, вам необходимо urlencode значения, а затем декодировать его в бэкэнде:

https://www.test.com?URL=https%3A%2F%2Fwww.myurl.com

А потом:

urldecode($_GET['url'])

Для POST то же самое верно для application/x-www-form-urlencoded, но не имеет значения для application/json.

Кроме того, просто наперед, у вас есть дополнительный ; в вашем URL, который сделает его недействительным, если вы включите его.

Edit:

Я дополнительно добавлю, что в общем случае рекомендуется всегда значения urldecode, полученные из данных запроса / формы. Общая мысль здесь заключается в том, что, хотя вы можете не хотеть данные в кодировке urlen-кода, именно так сеть строит - вы должны создавать свой код так, чтобы он был на стороне клиента. Это считается важным шагом в санации данных, и всегда должно происходить до проверки.

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