Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
I am using an xml rpc client to change a CCK field of an existing node.
I am posting an UTF-8 encoded request, the service responds fine (strings are not altered), but in the database all strings are truncated to their first char.
For example, the string value for "field_ragionesociale", "Ocrim spa" gets saved as "O" in the database, although services.module responds without truncating.
Editing the CCK node value from Drupal interface works normally. so I guess it's a problem from services.
Can you provide some info or workaround?
Thanks,
Pascal.
Here's the post:
POST /drupal/xmlrpc.php HTTP/1.1
Content-Type: text/xml
User-Agent: XML-RPC.NET
Host: 192.168.10.32
Cookie: SESSf8d000ba11a41c85cbb27cd334b78fc0=f7fa217fc31d97ac472660ac60c89555
Content-Length: 22521
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>node.save</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>field_responsabilequalita</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_normequalita</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>type</name>
<value>
<string>questionario</string>
</value>
</member>
<member>
<name>is_new</name>
<value>
<boolean>1</boolean>
</value>
</member>
<member>
<name>format</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>moderate</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>field_principaliattrezzature</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_inps</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_numerooperai</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_servizioprogettazione</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_ragionesociale</name>
<value>
<array>
<data>
<value>
<string>Ocrim spa</string>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_certificazioni</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>sticky</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>field_superficieoccupata</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>validated</name>
<value>
<boolean>1</boolean>
</value>
</member>
<member>
<name>field_normeprogettazione</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_sedelegale</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>teaser</name>
<value>
<string />
</value>
</member>
<member>
<name>field_postvendita</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_partitaiva</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>vid</name>
<value>
<string>49</string>
</value>
</member>
<member>
<name>field_email</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>email</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_indirizzostabilimento</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>nid</name>
<value>
<string>49</string>
</value>
</member>
<member>
<name>tnid</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>translate</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>comment</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>status</name>
<value>
<i4>1</i4>
</value>
</member>
<member>
<name>field_superficiecoperta</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_descrizioneproduzione</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_rappresentantecommerciale</name>
<value>
<array>
<data>
<value>
<string>Pippo</string>
</value>
</data>
</array>
</value>
</member>
<member>
<name>promote</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>title</name>
<value>
<string>ProvaPBR</string>
</value>
</member>
<member>
<name>field_fax</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_notegenerali</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_principaliclienti</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_numeroimpiegati</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_numerodipendenti</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_attivitapostvendita</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_certificazionequalita</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>body</name>
<value>
<string />
</value>
</member>
<member>
<name>uid</name>
<value>
<i4>288</i4>
</value>
</member>
<member>
<name>field_settoremerceologico</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_numerodirigenti</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>changed</name>
<value>
<i4>1210231217</i4>
</value>
</member>
<member>
<name>timestamp</name>
<value>
<i4>1210231217</i4>
</value>
</member>
<member>
<name>created</name>
<value>
<i4>1210231217</i4>
</value>
</member>
<member>
<name>field_capitalesociale</name>
<value>
<array>
<data>
<value>
<string>1000</string>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_codicefiscale</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_telefono</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>language</name>
<value>
<string />
</value>
</member>
<member>
<name>field_datacompilazione</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
<member>
<name>value2</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_servizioqualita</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_tiposocieta</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>log</name>
<value>
<string />
</value>
</member>
<member>
<name>field_altresedi</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>field_rappresentantelegale</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>value</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
Here's service response:
HTTP/1.1 200 OK
Date: Thu, 08 May 2008 07:20:18 GMT
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5 with Suhosin-Patch
X-Powered-By: PHP/5.2.4-2ubuntu5
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Thu, 08 May 2008 07:20:18 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Length: 8641
Content-Type: text/xml
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member><name>field_responsabilequalita</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_normequalita</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>type</name><value><string>questionario</string></value></member>
<member><name>is_new</name><value><boolean>0</boolean></value></member>
<member><name>format</name><value><int>0</int></value></member>
<member><name>moderate</name><value><int>0</int></value></member>
<member><name>field_principaliattrezzature</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_inps</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_numerooperai</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_servizioprogettazione</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_ragionesociale</name><value><array><data>
<value><string>Ocrim spa</string></value>
</data></array></value></member>
<member><name>field_certificazioni</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>sticky</name><value><int>0</int></value></member>
<member><name>field_superficieoccupata</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>validated</name><value><boolean>1</boolean></value></member>
<member><name>field_normeprogettazione</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_sedelegale</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>teaser</name><value><string></string></value></member>
<member><name>field_postvendita</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_partitaiva</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>vid</name><value><string>49</string></value></member>
<member><name>field_email</name><value><array><data>
<value><struct>
<member><name>email</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_indirizzostabilimento</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>nid</name><value><string>49</string></value></member>
<member><name>tnid</name><value><int>0</int></value></member>
<member><name>translate</name><value><int>0</int></value></member>
<member><name>comment</name><value><int>0</int></value></member>
<member><name>status</name><value><int>1</int></value></member>
<member><name>field_superficiecoperta</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_descrizioneproduzione</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_rappresentantecommerciale</name><value><array><data>
<value><string>Pippo</string></value>
</data></array></value></member>
<member><name>promote</name><value><int>0</int></value></member>
<member><name>title</name><value><string>ProvaPBR</string></value></member>
<member><name>field_fax</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_notegenerali</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_principaliclienti</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_numeroimpiegati</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_numerodipendenti</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_attivitapostvendita</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_certificazionequalita</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>body</name><value><string></string></value></member>
<member><name>uid</name><value><int>288</int></value></member>
<member><name>field_settoremerceologico</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_numerodirigenti</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>changed</name><value><int>1210231218</int></value></member>
<member><name>timestamp</name><value><int>1210231218</int></value></member>
<member><name>created</name><value><int>1210231218</int></value></member>
<member><name>field_capitalesociale</name><value><array><data>
<value><string>1000</string></value>
</data></array></value></member>
<member><name>field_codicefiscale</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_telefono</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>language</name><value><string></string></value></member>
<member><name>field_datacompilazione</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
<member><name>value2</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_servizioqualita</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_tiposocieta</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_altresedi</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
<member><name>field_rappresentantelegale</name><value><array><data>
<value><struct>
<member><name>value</name><value><string></string></value></member>
</struct></value>
</data></array></value></member>
</struct></value>
</param>
</params>
</methodResponse>
Comments
Comment #1
skaaal CreditAttribution: skaaal commentedThe problem came from my request, CCK is expecting a different array structure for its fields
Here's the correct way of submitting CCK fields: