У меня есть переменная:
$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 проблемы.
Задача ещё не решена.
Других решений пока нет …