moodle-1.9, php-5.4.30, mnet

moodle-1.9, php-5.4.30, mnet

от Виталий Лавров -
Количество ответов: 0
Изображение пользователя Эксперт по Moodle

Найдены замечательные грабли.

Есть связка 2-х через mnet  moodle-1.9.19 и 2.7+

После апгрейда php до 5.4.30 перестал работать логин через mnet в 2.7 через 1.9

3 часа поисков дали результаты.

diff --git a/mnet/xmlrpc/server.php b/mnet/xmlrpc/server.php

index a7cce24..d896fde 100644
--- a/mnet/xmlrpc/server.php
+++ b/mnet/xmlrpc/server.php
@@ -733,7 +733,8 @@ function mnet_server_invoke_method($includefile, $methodname, $method, $payload,
     if (RPC_OK == $permission) {
         $xmlrpcserver = xmlrpc_server_create();
         $bool = xmlrpc_server_register_method($xmlrpcserver, $method, 'mnet_server_dummy_method');
-        $response = xmlrpc_server_call_method($xmlrpcserver, $payload, $methodname, array("encoding" => "utf-8"));
+       $response = xmlrpc_server_call_method($xmlrpcserver, $payload, $methodname,
+                    array("encoding" => "utf-8","escaping" => array("cdata")));
         $bool = xmlrpc_server_destroy($xmlrpcserver);
         return $response;
     }


Смысл патча в том, что строки передаем через cdata, иначе уродуются данные в utf-8 (firstname,lastname и т.д)

Возможно эта же проблема есть и в moodle-2.7, но пока не могу проверить.