Twilio / PHP - Как правильно кодировать и декодировать URL-адреса? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть переменная:

$name = urlencode('é');

, которая вызывается Twilio:

array("url" => "example.com/test1.php?name=$name")

В test1.php мой TwiML выглядит так:

<Response> 
    <Gather numDigits="1" method="GET" action="example.com/test2.php?name=<?php echo urlencode($_GET["name"]);?>>
        <Say>Hello,<?php echo urldecode($name);?></Say>
        <Say>To repeat press 1. To confirm, press 2.</Say>
    </Gather>
</Response>

Если я не кодирую $_GET["name"] в действии, я получаю сообщение об ошибке приложения «Ошибка HTTP-поиска».Я не уверен, почему, потому что это не должно быть уже закодировано?Почему в сообщении отображается расшифрованный символ é, что приводит к ошибке?

Другая проблема, с которой я столкнулся, - echo $_GET["name"]; и echo urldecode($_GET["name"]);, оба печатают é вместо é в test2.php.

Наконец, для обработки повторения, если моя ссылка для перенаправления в test2.php обратно на test1.php содержит urlencoding для $_GET["name"]?

<Redirect>
    example.com/test1.php?name=<?php echo urlencode($_GET["name"]);?
</Redirect>

Я, вероятно, могу понять этоесли я знаю, как исправить мои первые 2 проблемы.

...