We have moved our forum to GitHub Discussions. For questions about Phalcon v3/v4/v5 you can visit here and for Phalcon v6 here.

Получение данных из POST/Getting data from POST

Здравствуйте/Hello

Как получить данные отправленные POST-ом.?/How to get the data sent by POST.? Вот скрипт отправляющий данные/Here's a script sending data: $request = '<?xml version="1.0" encoding="utf-8"?> <request> <header> <protocolVersion>1.0</protocolVersion> <clientType>J2ME</clientType> <requestType>1</requestType> <userName>test</userName> <userPassword method="md5">test</userPassword> <terminalId>1</terminalId> </header> </request>';

echo "REQUEST: $request \n";

Отправка запроса

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://esps.access.point'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_VERBOSE, 1);

Строка ответа

$response = curl_exec( $ch );

echo "RESPONSE $response \n";

if ($response === FALSE) { echo curl_error($ch); }

curl_close( $ch );

вот так/like this $content = file_get_contents('php://input'); я получаю весь запрос/I get the whole query

Если использую \Phalcon\Http\Request

$request = new \Phalcon\Http\Request();

if ($request->isPost() == true) { print_r($request->getPost()); }

Выводит Array ( [<?xml_version] => "1.0" encoding="utf-8"?> <request> <header> <protocolVersion>1.0</protocolVersion> <clientType>J2ME</clientType> <requestType>1</requestType> <userName>test</userName> <userPassword method="md5">test</userPassword> <terminalId>1</terminalId> </header> </request> )

Почему индекс массива [<?xml_version]???



11.9k

лучше все на английском пишите



11.9k

попробуйте принять по старинке $_POST, если проблема не решается - то вина не phalconphp и это вопрос уже по самому php



42.1k

Я английским не очень хорошо владею. Я переводчик не всегда точно переводит. Подскажите пожалуйста, в чем будет разница если передать функции ниже true и false третьему атрибуту Phalcon\DI\ServiceInterface set (string $name, mixed $definition, [boolean $shared])



11.9k

Пишут Sets if the service is shared or not - кажется что то про доступность (размещение или общедоступность). Я DI мало использовал, поэтому не знаю на что это сказывается.

Farkhod, Последний параметр гарантирует, что у регистрируемого сервиса будет только один экземпляр (Singleton) и предоставляет к нему глобальную точку доступа. Подробнее в документации https://goo.gl/06DjJ, а здесь можете почитать, что такое Singleton https://goo.gl/9j3wi.