В PHP я хотел бы иметь возможность доступа к PUT
и DELETE
переменным во всем мире подобно тому, как GET
и POST
переменные доступны во всем мире. Первоначально я рассматривал добавление данных к $_PUT
и $_DELETE
соответственно в глобальном пространстве имен, но потом я понял, что данные для каждого запроса хранятся в теле сообщения, поэтому нет возможности получить более одного набора данных из POST
, PUT
или DELETE
запрос.
Есть ли побочные эффекты от перезаписи $_POST
переменной?
т.е. str_parse( file_get_contents( 'php://input' ), $_POST );
Я глупый или есть лучший способ получить доступ к данным PUT
и DELETE
?
Изменить, чтобы уточнить мои мысли:
Я очень хорошо знаю источник данных в $_POST
, на самом деле я упоминал об этом ранее в своем вопросе. Если на сервер отправляется запрос HTTP POST, данные сохраняются в php://input
. Если на сервер отправляется запрос HTTP PUT или DELETE, данные сохраняются в том же месте, что означает, что $_POST
будет пустым (поскольку данные не были POSTed
, несмотря на то, что данные были доступны.
Запрос GET
, с другой стороны, передается через строку запроса. Это позволяет одновременно передавать переменные $_POST
и $_GET
. не можно одновременно передавать POST
и PUT or DELETE
переменные.
Если я перезаписываю $_POST
из php://input
на PUT
и / или DELETE
запросах, потеря данных не происходит.
Альтернатива добавления:
global $_PUT;
global $_DELETE;
начало функций кажется глупым, так как я смогу использовать только одну за раз в любом случае .
Мой первый вопрос, на который я действительно хочу ответить, о том, какие побочные эффекты или проблемы существуют при перезаписи $_POST
. Я не могу быть первым человеком, который попробует что-то глупое, как:
$_POST['foo'] = 'bar';
Я просто обеспокоен тем, что, если я сделаю что-то похожее, это может не сохраниться во всех областях.