Ответ 1
Я не могу сказать вам мотивы PayPal, но я могу догадаться: php любит менять ключи входящих переменных из HTTP-запроса.
Например, имя a.b [
будет отображаться как $_POST['a_b__']
. php заменит пробелы, точки и открытые скобки с символами подчеркивания:
источник: http://php.net/manual/en/language.variables.external.php
Кроме того, php будет анализировать хорошо сформированные совпадающие скобки в именах переменных во вложенные массивы. например, arr[a][b]
будет отображаться как $_POST['a']['b']
.
http://php.net/manual/en/faq.html.php#faq.html.arrays
Кроме того, php ведет себя все виды сумасшедших и багги, когда скобки не сформированы: https://bugs.php.net/bug.php?id=48597
Кроме того, magic_quotes_gpc
использовал свои когти в каждой установке php, также изменяя имена переменных в некоторых случаях. http://php.net/manual/en/security.magicquotes.php
Кроме того, php имеет параметр arg_seperator.input
, и некоторые люди предпочитают устанавливать его на &
вместо &
. Paypal не может знать, что вы предпочитаете, и, очевидно, всегда будет использовать &
http://php.net/manual/en/ini.core.php#ini.arg-separator.input
Кроме того, несмотря на то, что это плохая практика, в php для библиотек/библиотек не так уж редко встречается возможность автоматического изменения входных данных запроса, таких как $_POST
, например, для "дезинфекции" их или других подобных проблем с перекрестными разрезами.
Анализируя ввод вручную, вы избегаете всех этих потенциальных проблем. Это решение похоже на хорошую технику с их стороны.